zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > Barrierefreiheit
Seite neu laden Usability von Formularfeldern: Fokus auf Validität, Erforderlichkeit u. Meldungstext

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 05.04.2019, 08:31
Benutzerbild von AndreasB
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 29.11.2005
Beiträge: 1.314
AndreasB wird schon bald berühmt werden
Standard Usability von Formularfeldern: Fokus auf Validität, Erforderlichkeit u. Meldungstext

In diesem Thread soll es um die Usability von Formularfeldern gehen, mit dem Fokus auf Validität, Erforderlichkeit und Meldungstexten.

Die Merkmale von Formularfelder sind komplex.

1. Hat es den Fokus?
2. Ist es erforderlich?
3. Ist es valide?
(Diese ersten drei Merkmale können in Kombination auftreten.)
4. Hovertext?
5. Unter dem Formular angezeigter Meldungstext?
6. Placeholder?
7. Sollen Standards des Browsers überschrieben werden oder nicht?

Hat jemand von Euch dieses Thema schonmal für eine andere Site durchgearbeitet und kann eine Empfehlung aussprechen oder eine vorbildliche Beispielseite nennen?

Testcase:

https://borumat.de/-/fahrradzukunft/...required-focus


1. Fokus
FF+GC: Jedes Feld im Fokus erhält einen blauen Rahmen, das finde ich gut, es erleichtert die Orientierung.

2. Pattern
FF+GC: Ohne Pattern findet offenbar keine (vernünftige) Validierung im Feld Mail statt. "foo@bar" geht als valide durch.

3. Erforderlichkeit
FF+GC: Sie wird ausschließlich durch einen Hovertext signalisiert.
Das finde ich zu wenig.
Etabliert ist das *.
Ich habe das per generated content einfügen lassen.

4. Invalidität
FF: Kennzeichnung mit rotem Rahmen und Hovertext "Bitte halten Sie das angegebene Format ein"
GC: Kennzeichnung mit roter Wellenlinie als Unterstrich und Hovertext "Ihre Eingabe muss mit dem geforderten Format übereinstimmen"

Ich halte es für sinnvoll, den Hinweistext nicht als Hovertext sondern als normalen dauerhaft sichtbaren Text direkt unter dem Formularfeld auszugeben. Und dazu auch den Text verständlich zu formulieren wie z.B.:
""Bitte korrigieren Sie die Telefonnummer. Am Anfang kann ein "+" stehen. Ansonsten sind Ziffern, Leerzeichen oder "-" möglich."

Ich habe per generated content eine Meldung einfügen lassen. Leider werden auch leere Felder als "invalid" betrachtet. Das muss ich also noch lösen.

Wie man die Hovernachrichten deaktiviert - sie sind ja überflüssig, wenn es ausgegeben Text gibt - weiß ich noch nicht.

5. Leere Felder
FF+GC: Leere Felder werden nicht als invalide gekennzeichnet. Gut so.

FF: Sobald man jedoch einmal etwas in ein Feld eingegeben hat, was invalide ist, bleibt die Kennzeichnung als invalide auch dann erhalten, wenn man den Inhalt ganz wieder löscht.
Das ist inkonsistent.
GC: Dort verschwindet die Kennzeichnung
__________________

Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 05.04.2019, 08:54
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 30.01.2014
Beiträge: 1.964
cloned ist jedem bekanntcloned ist jedem bekanntcloned ist jedem bekanntcloned ist jedem bekanntcloned ist jedem bekanntcloned ist jedem bekannt
Standard

Es ist durchaus ausreichend, die standardvalidierungen zu verwenden. Bzw anders ausgedrückt: Verwendet man lediglich die Standardformatierungen und Standardfehlermeldungen dann ist ein Formular Usable genug laut Accessibility Guidelines

Zusätzlich dazu: Diese generierten "bubbles" genügen in den seltensten Fällen nicht den Anforderungen ans design und auch das Verhalten ist oft nicht das wirklich gewünschte, da es zB verschwindet, wenn man raustabbt... Da gibt es leider keine Möglichkeiten, diese Nachrichten zu beeinflussen. Deshalb werden die auch auf keiner größeren Seite wirklich verwendet. Persönlich finde ich es schade, dass es hier keine Gestaltungsmöglichkeiten gibt, aber ist leider so.
Man bekommt diese Hinweise weg, indem man <form novalidate> verwendet.

Deshalb wird Formularvalidierung heutzutage eigentlich immer mit JS umgesetzt. Mittels parsleyjs (Parsley - The ultimate JavaScript form validation library) kannst du jeden Art von Validierung haben, die du möchtest.

Die Validierung einer Mail brauchst du nicht mit einer pattern anpassen, foo@bar ist durchaus eine gültige Mailadresse. Siehe auch: https://stackoverflow.com/questions/...-without-a-dot

Der einzige Weg eine Mailadresse zu validieren ist, eine Mail an die Adresse zu schicken und auf eine Bestätigung des Users zu warten.


Bezüglich generated Content: Der wird in IE11 zb nicht vorgelesen. https://tink.uk/accessibility-suppor...rated-content/

Zusammenfassend: Entweder man nimmt die im Browser vorhandene Validierung, dann muss man aber auch mit dem Verhalten zufrieden sein, ändern kann man das nicht.
Oder man verwendet JS zur Formvalidierung, das funktioniert gut und man kann auch jeglichen Spezialfall damit abdecken den man braucht.
Natürlich ist es auch möglich beide Varianten auf einmal zu nutzen (progressive enhancement)
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 07.04.2019, 00:04
Benutzerbild von AndreasB
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 29.11.2005
Beiträge: 1.314
AndreasB wird schon bald berühmt werden
Standard

Danke erstmal für Deine Antwort

Meinst Du mit "bubbles" die Texte, die beim Hovern eines Formularfeldes gezeigt werden?

Wirklich schade, dass man sie nicht beeinflussen kann.

Das Attribute "novalidate" als radikale Maßnahme werde ich wohl nicht anwenden.

Denn die Validierung via parsleyjs übersteigt meine Fähigkeiten. Ich kann nicht programmieren.

Danke auch für Deinen Hinweis, dass "foo@bar" eine valide Mailadresse ist. Das wußte ich nicht.

Ein regulären Ausdruck für die Telefonnummer habe ich selber geschrieben, das werde ich verwenden. Und für Mail eben den Standard.

Die im Ausgangsposting genannten Details zur Usability werde ich aufgeben.

Es wird schon Mühe/Herausforderung genug, ein PHP-Skript für das Kontaktformular zu finden und dessen Anwendung zu verstehen.

Insbesondere, weil ich gerne ein logisches ODER für die Felder MAIL und TELEFON verwirklichen möchte.
__________________

Mit Zitat antworten
  #4 (permalink)  
Alt 08.04.2019, 10:04
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 30.01.2014
Beiträge: 1.964
cloned ist jedem bekanntcloned ist jedem bekanntcloned ist jedem bekanntcloned ist jedem bekanntcloned ist jedem bekanntcloned ist jedem bekannt
Standard

Ja, damit meine ich diese vom Browser generierten Hilfe-Bubbles. Die schauen überall anders aus und verhalten sich leider auch etwas anders.

Für parsleyjs muss man nicht viel programmieren können, da wird das meiste über data- attribute gesteuert. Du deklarierst zB ein Formular, welches validiert werden soll so:
Code:
<form id="demo-form" data-parsley-validate="">
Leute, die kein JS haben, bekommen die standard-validierungen angezeigt (soweit möglich)

Dann kannst du so zB die standardvalidierung erweitern, dass mindestens zwei ausgewählt werden sollen:

Code:
<input type="checkbox" name="hobbies[]" id="hobby1" value="ski" data-parsley-mincheck="2"> <!-- data-parsley-mincheck -->
Leider ist ein entweder-oder ist nicht ganz so trivial auszuführen und nicht standardmäßig enthalten, kann aber auch realisiert werden.

Code-Beispiele von diesem einfachen Formular:
Parsley - Examples | Simple form demo

Parsley - The ultimate documentation Liste der vorhandenen Validatoren,
Mit Zitat antworten
  #5 (permalink)  
Alt 08.04.2019, 11:11
Benutzerbild von AndreasB
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 29.11.2005
Beiträge: 1.314
AndreasB wird schon bald berühmt werden
Standard

Vielen Dank! Wenn die Verwendung von parsleyjs weniger kompliziert ist als ich dachte, werde ich mir das mal ansehen.


Zur Entweder-Oder-Logik bei einem Kontaktformular, werde ich mal in einem PHP-Forum anfragen, da es ja unwahrscheinlich ist, dass hier noch jemand antwortet.


Schönen Tag!
__________________

Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus



Alle Zeitangaben in WEZ +2. Es ist jetzt 02:49 Uhr.