Formularvalidierungen prüfen die Eingaben von Nutzerinnen auf Korrektheit, Vollständigkeit und Plausibilität. Sie geben bei Fehlern klare, verständliche Rückmeldungen und Hinweise, wie die Eingaben korrigiert werden können. So wird sichergestellt, dass Formulare zuverlässig verarbeitet werden können und Nutzerinnen nicht durch unklare Fehlermeldungen oder unerwartete Verhalten behindert werden.
Informationen für den Aufbau von barrierefreien Formularen befinden sich in einem weiteren Eintrag.
Screenreader geben Nutzer:innen direkt Rückmeldung zu Formularfeldern, damit sie verstehen, ob die Eingaben korrekt sind oder korrigiert werden müssen. Im nachfolgenden Video wird dargestellt, wie eine Formularvalidierung beispielsweise aussehen und im Screenreader ausgegeben werden sollte. Dadurch wird ermöglicht, dass alle Nutzer:innen Formulare gut nutzen können.
Im Video wird der Screenreader VoiceOver von Apple genutzt in Zusammenhang mit dem Browser Safari.
Video der Harvard University IT über die Ausgabe von Validierungsfehlern eines Formulars mit Safari und Voiceover
Was muss beachtet werden?
Deutsches Gesetz: Anforderungen der Konformitätsstufe A und AA müssen umgesetzt werden.
A
Hohe Priorität
Formularfelder, bei denen es sich um Pflichteingaben handelt, müssen entsprechend ausgezeichnet werden.
requird-Attribut nie alleine nutzen
Das HTML-Attribut required allein ist für die Barrierefreiheit nicht ausreichend, da nicht alle Hilfsmittel oder Browser es zuverlässig interpretieren. Außerdem liefert es meist nur standardisierte Fehlermeldungen, die nicht angepasst oder ausreichend erklärt werden können.
Bei Pflichtfeldern in Formularen muss dies auch für assistive Technologien kenntlich gemacht werden. Dafür sollte das ARIA-Attribut aria-required genutzt werden. Zudem sollte auch visuell erkenntlich sein, bei welchen Eingabefeldern es sich um Pflichtfelder handelt. Dafür gibt es unterschiedliche Möglichkeiten.
Textlicher Zusatz im Label
Arterisk/Sternchen, dabei muss allerdings erklärt werden, was das Sternchen bedeutet.
<!-- ✅ Correct: use text -->
<label for="username">Username (required):</label>
<input type="text" id="username" autocomplete="username" aria-required="true">
Code-Beispiel für die korrekte Auszeichnung von Pflichtfeldern mit textlichen Zusatz
<!-- ✅ Correct: use arterisk -->
<p>Required fields are marked with an asterisk
(<abbr class="req" title="required">*</abbr>).</p>
<form>
<label for="username">
Username <abbr class="req" title="required">*</abbr>:
</label>
<input type="text" id="username" autocomplete="username" aria-required="true">
</form>
Code-Beispiel für die korrekte Auszeichnung von Pflichtfeldern mit Arterisk
Required fields are marked with an asterisk
(*).
A
AA
Hohe Priorität
Die native Browser-Validierung sollte vermieden werden, da sie oft keine barrierefreien Fehlermeldungen liefert. Stattdessen ist eine individuelle Validierung nötig.
Live-Validierungen möglichst vermeiden
Formular-Felder können entweder direkt (live) validiert werden oder Client- oder Serverseitig nachdem alle Eingaben getätigt wurden. Grundsätzlich wird von Live-Validierung abgeraten, da es oft zu einer zu frühen, fehlerhaften Validierung kommen kann und für Menschen mit Beeinträchtigungen oft überfordernd ist.
Auszeichnung von fehlerhaften Feldern
Nach einer Client- oder Serverseitigen Validierung müssen fehlerhafte Eingabefelder entsprechend mit aria-invalid=”true” auszeichnet werden. Fehlerhafte Eingabefelder müssen nicht nur identifiziert, sondern auch die Fehler beschrieben und für assistive Technologien bereitgestellt werden.
Für die grundlegende Bereitstellung der Fehler gibt es unterschiedliche Möglichkeiten, die auch zusammen eingesetzt werden können.
1. Möglichkeit: Fehlermeldung bei Eingabefeld
Fehlermeldungen können direkt an einem Formularelement angehängt werden und mithilfe von aria-describedby zugänglich gemacht werden. Dabei werden die Fehler meistens unter dem Eingabefeld visuell ausgegeben.
<label for="email">Your Mail:</label>
<input
type="email"
id="email"
autocomplete="email"
aria-describedby="email-description-error"
aria-invalid="true"
/>
<span id="email-description-error">Please enter a valid e-mail address.</span>
Code-Beispiel zur Anzeige von Validierungsfehlern direkt am Eingabefeld
Please enter a valid e-mail address.
2. Möglichkeit: Fehlermeldung gebündelt am Anfang des Formulars
Alle Fehlermeldungen können auch gebündelt direkt am Anfang eines Formulars ausgegeben werden. Dabei muss es sich um eine Landmark (z. B. <section>, <aside>) handeln, die nach Validierung automatisch fokussiert wird.
<section role="region" aria-labelledby="headline-error" tabindex="0">
<h2 id="headline-error">Issues found in form</h2>
<ul>
<li><a href="#email">Your mail address is missing an @ sign.</a><li>
<li><a href="#username">The username is already used.</a><li>
</ul>
</section>
Code-Beispiel für eine gebündelte Darstellung aller Validierungsfehler
Nach einer Formularvalidierung müssen konkrete Verbesserungsvorschläge und Hilfestellungen genannt werden, um die fehlerhaften Eingaben zu korrigieren.