it-swarm.com.de

Wann und wie werden Formulare in einer Usability-Perspektive validiert?

Ich implementiere eine Geschäftsanwendung und frage mich, wie und wann Formulare am besten validiert werden können.

Ein Beispiel ist ein Formular mit drei Textfeldern, in denen ein Währungsbetrag erwartet wird. Eine gültige Eingabe hat die Form D.dd wobei d eine Ziffer ist und D eine oder mehrere Ziffern ist.

Wann validieren?

  • Wenn der Benutzer tippt (z. B. die Eingabe überprüfen, nachdem jedes Zeichen eingegeben wurde). Ein Problem besteht darin, dass sich die Eingabe in einem ungültigen Zustand befinden muss, bevor sie gültig wird.

  • Wenn der Fokus des Textfeldes verloren geht.

  • Wenn die Benutzer die Senden-Taste drücken.

Wie validiere ich?

  • Verhindern Sie, dass "ungültige" Zeichen eingegeben werden, z. Buchstaben in einer Zahl oder einem Währungsfeld.

  • Zeigen Sie eine Fehleranzeige an (z. B. roter Rand oder zeigen Sie den Eingabewert in roter Textfarbe an).

  • Verhindern Sie, dass der Benutzer den Fokus verschiebt (in diesem Fall ist es wichtig, dass der Standardwert gültig ist) und zeigen Sie eine Fehleranzeige an.

Meine aktuelle Lösung besteht darin, einen gültigen Standardwert zu haben, z. 0.00 für Währung und 1 für Menge. Und verhindern Sie, dass Buchstaben in Währungs- und Zahlenfelder eingegeben werden. Manchmal muss sich die Eingabe in einem ungültigen Zustand befinden, daher überprüfe ich nur, wenn der Fokus das Feld verlässt. Wenn der Wert ungültig ist, behalte ich den Fokus und zeige eine Anzeige. Ein leeres Feld wird mit dem Standardwert gefüllt. Aber ich weiß nicht, ob dies eine gute Usability-Praxis ist.

3
Jonas

Eine Lösung besteht darin, in diesem Formularfeld (z. B. 1 Sekunde) auf ein Inaktivitätszeitraum zu warten, bevor Sie es validieren. Natürlich sollten Sie auch validieren, sobald sich der Fokus verschoben hat.

  • Es ist keine gute Idee, zu verhindern, dass ungültige Zeichen eingegeben werden, wenn die tippende Person keinen eindeutigen Hinweis darauf hat, warum dieses Zeichen nicht funktioniert. Zeigen Sie lieber einen Validierungsfehler für das Feld an, der das Problem erklärt. So etwas wie "Bitte keine Zahlen verwenden". Eine Ausnahme ist, wenn es sehr klar ist. So etwas wie $ _ macht deutlich, dass ich nach einer Nummer suche. Ob Sie es in einer D.dd-Form benötigen sollten (wie Sie vorschlagen), ist eine andere Geschichte. Wenn ich 1 $ oder 1,0 $ oder 1,00 $ sage, können Sie davon ausgehen, dass es sich um einen Dollar handelt. Wenn es Ihnen klar ist, zwingen Sie niemanden, entsprechend Ihrem Format auszufüllen, nur weil Sie es so möchten. Lassen Sie die Computer das tun.

  • Es gibt verschiedene Möglichkeiten, Fehler anzuzeigen. Eine übliche Möglichkeit besteht darin, Hintergrund oder Rahmenfarbe des Felds zu ändern, und eine andere zeigt einen Fehler Symbol rechts im Feld an. Nur Tests machen deutlich, welches für Ihre Kunden angesichts Ihres Designs am besten geeignet ist.

  • Verhindern Sie nicht, dass jemand den Fokus bewegt. Es ist ärgerlich und nur sehr wenig erkennbar, warum der Fokus nicht verschoben werden kann. Lassen Sie die Leute das Formular in beliebiger Reihenfolge ausfüllen. Sie können immer verhindern, dass das Formular gesendet wird, wenn etwas ausgelassen wird.

8
JohnGB

Es gibt ein Kernproblem bei der Validierung auf Zeichenebene, das nicht ausreicht. Wenn Sie dies, wie ich vermute, mit Javascript tun, müssen Sie auch überprüfen, wann die Daten im Code-Backend angezeigt werden, da der Benutzer Javascript deaktivieren kann.

Daher ist es üblicher geworden, beim Senden zu validieren - und an beiden Enden (ungefähr) dieselbe Validierung durchzuführen. Dies hat auch den Vorteil, dass alles, was sie eingegeben haben, sofort validiert wird - so können dann alle Abhängigkeiten vorgenommen werden.

Wenn Sie es erst validieren, nachdem Sie mindestens ein Feld ausgefüllt haben, können Sie die gesamten eingegebenen Werte daraufhin überprüfen, ob es möglicherweise kompatibel ist.

5

Ich würde nicht nur Feedback zu falschen Eingaben verwenden, sondern gegebenenfalls auch zeigen, was die Eingabe bewirkt. Dies ist ein guter Weg, um Internationalisierungsprobleme zu vermeiden.

Wenn Sie also Datumsangaben haben, lehnen Sie nicht nur bestimmte Formate ab, sondern geben Sie das Text-analysierte Datum daneben aus. Wenn Sie daneben die 10/02/11 Show 'So, 2. Oktober 2011' eingeben, gibt es absolut keine Möglichkeit, sie als 10. Februar falsch zu interpretieren. Zeigen Sie in Währungen $ 1,00 an - dann kann es keine Verwirrung über die Dezimalzahl geben Trennzeichen.

Nicht-invasive Methoden zur Bereitstellung von Feedback sollten an erster Stelle stehen (Hinweise auf Probleme beim Tippen oder beim Entfernen des Fokus), aber nicht zu stark blockieren und nicht verhindern, dass der Fokus verschoben wird.

Die Validierung bei (oder vor) der Übermittlung könnte blockierender sein: Erst wenn die Probleme behoben sind. Ich bin nicht sicher, ob Benutzer eine deaktivierte Schaltfläche zum Senden bevorzugen, bis das Formular gegenüber Fehlermeldungen beim Senden korrekt ausgefüllt ist oder umgekehrt. Wenn Sie jedoch die Senden-Schaltfläche deaktivieren, müssen Sie möglicherweise angeben, warum in der Nähe der Schaltfläche (und nicht nur in der Nähe der Felder, die nicht korrekt sind), insbesondere bei längeren Formularen.

Validieren Sie dann auch bei der Annahme, da die clientseitige Validierung niemals sicher ist, und geben Sie dem Benutzer auch in diesem Fall genaue Informationen zurück.

3
Inca