Barrierefreie Formulare: Struktur, Logik und die einzelnen Elemente
Formulare sind eine der häufigsten Ursachen für Barrieren im Web. Diese Seite
erklärt die drei Grundprinzipien und geht durch die acht Elemente, die jedes
barrierefreie Formular ausmachen – von Labels bis zu Fehlermeldungen.
14 Minuten Lesezeit
Stand: Mai 2026
Warum Formulare so wichtig sind
Formulare sind die häufigste Stelle, an der Nutzer:innen aktiv mit einer
Website interagieren: Login, Kontaktanfrage, Bestellung, Buchung, Anmeldung.
Genau hier scheitern viele Menschen mit Behinderung – und damit auch viele
Geschäftsprozesse.
Wenn ein Formular nicht zugänglich ist, kommt es nicht nur zu einer schlechten
Nutzungserfahrung, sondern oft auch zu einem konkreten Ausschluss: Wer den
Pflichtfeld-Hinweis nicht hört, wer die Fehlermeldung nicht findet, wer das
CAPTCHA nicht lösen kann, kann die Aufgabe nicht abschließen. Bei einem
Kontaktformular ist das ärgerlich. Bei einem Online-Antrag, einer
Behördenmeldung oder einer Bestellung kann es existenziell sein.
Die gute Nachricht: Wer drei Prinzipien verstanden hat und acht Elemente
sorgfältig umsetzt, hat den größten Teil der Arbeit schon erledigt. Der
Rest ist Übung.
Drei Grundprinzipien
Hinter allen Detail-Regeln stehen drei einfache Ideen. Wenn du diese
verinnerlicht hast, kannst du auch bei neuen Komponenten gute
Entscheidungen treffen.
01
Klare Zuordnung
Jedes Eingabefeld muss eindeutig erkennbar machen, wozu es gehört.
Label, Hinweis und Fehlermeldung sind technisch mit dem Feld
verknüpft, nicht nur visuell daneben platziert.
02
Vorhersagbares Verhalten
Felder verhalten sich, wie es Nutzer:innen erwarten. Keine
spontanen Sprünge im Fokus, kein automatisches Absenden, keine
verschwundenen Daten beim Rückwärts-Navigieren.
03
Gute Fehlerkommunikation
Wenn etwas schiefgeht, ist sofort klar: welches Feld, was war
falsch, was muss anders sein. Die Information erreicht auch
Screenreader-Nutzer:innen und ist nicht nur farblich markiert.
Die acht Elemente eines Formulars
Die folgenden acht Bausteine kommen in fast jedem Formular vor. Pro
Element bekommst du eine kurze Erklärung, die wichtigsten WCAG-Bezüge
und die typische Stolperfalle.
01
Label – das wichtigste Element
Ein Label ist die Beschriftung eines Eingabefelds. Es muss programmatisch
mit dem Feld verbunden sein – nicht nur räumlich daneben. Diese
Verknüpfung passiert über das for
-Attribut am Label, das
auf die id
des Felds zeigt. Alternativ kannst du das Feld
in das Label hineinstecken – auch das verknüpft beide.
Wer ein Feld per Screenreader erreicht, hört dann den Label-Text
vorgelesen und weiß, was einzutragen ist. Wer das Label per Mausklick
antippt, springt automatisch ins Feld – das vergrößert die
Klickfläche und hilft besonders Menschen mit motorischen Einschränkungen.
WCAG 1.3.1 · 3.3.2 · 4.1.2
02
Eingabefelder mit dem richtigen Typ
HTML kennt eine ganze Reihe von Eingabe-Typen jenseits des reinen
Text-Felds: email
, tel
, url
, date
, number
. Diese Typen tun zwei Dinge
gleichzeitig: Sie signalisieren dem Browser eine Validierung, und sie
sorgen auf Smartphones für die passende Bildschirm-Tastatur (Zahlen,
E-Mail-Layout, Datums-Picker).
Ergänzend hilft das autocomplete
-Attribut. Es verrät dem
Browser und assistiven Technologien, welche Bedeutung ein Feld hat
– etwa given-name
, family-name
, postal-code
oder tel
. Das ist nicht nur
Komfort, sondern ein WCAG-AA-Kriterium (1.3.5).
WCAG 1.3.5
03
Pflichtfeld-Kennzeichnung
Welche Felder ausgefüllt werden müssen, muss sichtbar und für
Screenreader hörbar sein. Im HTML setzt du dazu das required
-Attribut – damit erfährt der Screenreader, dass
das Feld Pflicht ist, und der Browser blockiert das Absenden bei
leeren Pflichtfeldern.
Visuell wird Pflicht meist mit einem Sternchen markiert. Wichtig:
Das Sternchen am Label sollte für Screenreader ausgeblendet sein
( aria-hidden="true"
), weil required
die
Information bereits transportiert – sonst hörst du an jedem
Pflichtfeld doppelt „Stern erforderlich". Ergänzend sollte
irgendwo am Anfang des Formulars stehen, was das Sternchen bedeutet.
WCAG 3.3.2 · 4.1.2
04
Hilfstexte und Hinweise
Hinweise zu einem Feld – etwa „Bitte mit Vorwahl angeben", „Mindestens
acht Zeichen" – müssen mit dem Feld verknüpft sein. Sonst hören
Screenreader-Nutzer:innen den Hinweis nicht oder erst nach dem Feld,
wenn es zu spät ist.
Das Standardwerkzeug dafür ist aria-describedby
am
Eingabefeld. Das Attribut bekommt die id
des
Hinweis-Elements als Wert. Beim Fokussieren des Felds liest der
Screenreader Label und Hinweis nacheinander vor. Das funktioniert
gleich gut für Hilfstexte und für Fehlermeldungen.
WCAG 3.3.2
05
Gruppierung mit Fieldset und Legend
Wenn mehrere Felder logisch zusammengehören – etwa eine Adresse, eine
Gruppe von Radio-Buttons, eine Reihe von Checkboxen – fasse sie mit <fieldset>
zusammen und gib der Gruppe mit <legend>
eine Überschrift.
Das ist besonders wichtig bei Radio-Buttons und Checkbox-Gruppen, weil
einzelne Labels nicht reichen: Eine Radio-Frage wie „Versandart" muss
sowohl mit den Optionen verbunden sein (Express, Standard, Abholung)
als auch als Gesamtfrage erkennbar. Genau das leistet
Legend in Verbindung mit dem umgebenden Fieldset.
WCAG 1.3.1 · 3.3.2
06
Auswahlfelder – Radio, Checkbox, Select
Drei native Bausteine, drei klare Einsatzbereiche: Radio-Buttons
für eine Auswahl aus mehreren sich
ausschließenden Optionen. Checkboxen
für
unabhängige Ja/Nein-Entscheidungen oder Mehrfachauswahl. Select-Listen
für längere Listen, in denen eine
Option ausgewählt wird.
Die Faustregel: Bevorzuge native HTML-Elemente. Eigene Selects, die
per JavaScript aus <div>
-Konstruktionen
nachgebaut werden, müssen sehr sorgfältig zugänglich gemacht werden
– inklusive Tastatur-Navigation, ARIA-Rollen, Fokus-Management.
Das gelingt selten gut. Die native Variante erfüllt diese
Anforderungen ohne Zusatzaufwand.
WCAG 1.3.1 · 2.1.1 · 4.1.2
07
Buttons mit klarer Beschriftung
Der Absende-Button braucht eine Beschriftung, die die Aktion
beschreibt. „Absenden" geht, „Nachricht senden" ist besser, „Termin
verbindlich buchen" ist am klarsten. Vermeide nichtssagende
Beschriftungen wie „OK" oder „Weiter" – sie verraten der Person
nicht, was passieren wird, und werden außerhalb des Kontexts
unverständlich.
Technisch nutze ein echtes <button type="submit">
oder <input type="submit">
. Beide sind nativ
tastaturbedienbar, werden von Screenreadern als Schaltflächen
angekündigt und übernehmen das Absende-Verhalten automatisch. Ein
gestyltes <div>
mit Klick-Handler kann das alles
nicht.
WCAG 2.4.6 · 4.1.2
08
Fehlermeldungen
Wenn ein Feld nicht korrekt ausgefüllt ist, muss die Fehlermeldung
drei Dinge leisten: Sie muss auffallen, sie muss verständlich erklären, was zu korrigieren ist, und
sie muss mit dem Feld verknüpft sein, damit
Screenreader-Nutzer:innen sie hören.
Die technische Verknüpfung läuft über zwei Attribute am Eingabefeld: aria-invalid="true"
signalisiert „dieses Feld ist
gerade fehlerhaft", und aria-describedby
verweist auf
die id
des Fehlermeldungs-Elements. Sobald die Person
das Feld fokussiert, liest der Screenreader Label und Fehlertext
nacheinander vor. Wichtig: Setze aria-invalid
erst nach
der Validierung, nicht von Anfang an – sonst hörst du beim ersten
Tab durch das leere Formular „ungültig, ungültig, ungültig".
Visuell sollte die Fehlermeldung nicht ausschließlich farblich
markiert sein. Ein farbiger Rahmen am Feld in Kombination mit einem
Icon und Klartext ist eine zuverlässige Lösung – sie funktioniert
auch für Menschen mit Farbsehschwäche.
WCAG 1.4.1 · 3.3.1 · 3.3.3 · 4.1.3
WCAG-Pflichten und Best Practices im Überblick
Die folgende Tabelle ordnet die wichtigsten WCAG-Kriterien für
Formulare ein: was rechtlich Pflicht ist (BFSG, BITV verweisen über
EN 301 549 auf WCAG 2.1 AA, demnächst 2.2 AA) und was darüber hinaus
gute Praxis ist.
WCAG-Kriterien für Formulare nach Konformitätsstufe
Kriterium
Was es fordert
Stufe
1.3.1 Info und Beziehungen
Strukturelle Beziehungen (Label zu Feld, Gruppen) sind programmatisch erkennbar.
A
1.3.5 Eingabezweck
Häufige Felder (Name, E-Mail, Adresse) sind mit autocomplete
ausgezeichnet.
AA
1.4.1 Verwendung von Farbe
Information (z. B. Fehler) wird nicht nur durch Farbe vermittelt.
A
2.4.6 Überschriften und Beschriftungen
Labels beschreiben Thema oder Zweck eindeutig.
AA
3.3.1 Fehlererkennung
Fehler werden erkannt und in Textform beschrieben.
A
3.3.2 Beschriftungen oder Anweisungen
Eingabefelder haben sichtbare Beschriftungen oder Anleitungen.
A
3.3.3 Fehler-Korrekturhinweis
Bei erkanntem Fehler wird ein Vorschlag zur Korrektur angeboten.
AA
3.3.4 Fehlervermeidung
Bei rechtlichen, finanziellen oder Daten-Aktionen: Rücknahme oder Bestätigung möglich.
AA
3.3.7 Redundante Eingabe (neu in 2.2)
Bereits eingegebene Daten müssen im selben Vorgang nicht erneut eingetippt werden.
A
3.3.8 Barrierefreie Authentifizierung (neu in 2.2)
Login darf kein kognitives Rätsel sein (keine CAPTCHA-Pflicht ohne Alternative, Passwort-Manager erlauben).
AA
4.1.2 Name, Rolle, Wert
Alle Bedienelemente haben einen erreichbaren Namen, eine Rolle und einen Wert.
A
4.1.3 Statusmeldungen
Erfolgsmeldungen, Fehlerzusammenfassungen werden Screenreadern angekündigt (Live Regions).
AA
Häufige Fehler – und wie du sie vermeidest
Die folgenden fünf Muster begegnen mir in Audits immer wieder. Sie
sind nicht selten – sie sind die Regel. Wenn du nur diese fünf
vermeidest, hast du den größten Teil typischer Formular-Barrieren
ausgeräumt.
Placeholder als Label verwenden
Der graue Text im leeren Feld („Ihre E-Mail-Adresse") verschwindet,
sobald jemand tippt. Wer beim Korrigieren noch wissen muss, was in
das Feld gehört, hat Pech – das Label ist weg. Zudem ist der
Kontrast von Placeholder-Text in den meisten Browsern zu schwach
(WCAG 1.4.3) und Screenreader behandeln Placeholder uneinheitlich.
Stattdessen
Ein sichtbares Label über oder neben dem Feld. Placeholder kann
zusätzlich ein Format-Beispiel zeigen („01.06.2026"), ersetzt aber
kein Label.
Fehler nur durch Farbe markieren
Ein roter Rahmen am Feld reicht nicht. Wer eine Rot-Grün-Sehschwäche
hat, sieht keinen Unterschied zum normalen Rahmen. Wer einen
Screenreader nutzt, sieht ihn ohnehin nicht. Ohne Text-Erklärung
bleibt unklar, was korrigiert werden soll.
Stattdessen
Farbiger Rahmen plus Icon plus Klartext-Fehlermeldung, technisch
verknüpft über aria-describedby
und aria-invalid
.
Automatisches Verhalten ohne Warnung
Felder, die nach drei Zeichen automatisch ins nächste Feld springen
(z. B. bei Code-Eingaben). Selects, die beim Auswählen sofort
absenden. Modale Dialoge, die spontan auftauchen. Solche
Automatismen brechen die Erwartung – und stoßen Screenreader und
Tastatur-Nutzer:innen besonders hart.
Stattdessen
Felder reagieren nur auf Tastatureingabe, nicht auf Fokus-Wechsel.
Aktionen werden durch einen expliziten Button ausgelöst, nicht
durch Nebeneffekte (WCAG 3.2.1, 3.2.2).
CAPTCHAs ohne Alternative
„Wählen Sie alle Bilder mit Ampeln aus" ist für blinde Menschen
nicht lösbar, für Menschen mit kognitiven Einschränkungen
anstrengend bis unmöglich. Audio-Alternativen sind oft kaum
verständlich. Mit WCAG 2.2 (Kriterium 3.3.8) ist Login
per CAPTCHA als einziger Weg nicht mehr konform – es muss eine
Alternative geben.
Stattdessen
Honeypot-Felder (versteckte Felder, die nur Bots ausfüllen),
Zeitprüfung, serverseitige Bot-Erkennung oder moderne Lösungen
wie hCaptcha mit Privacy-Pass. Wenn ein CAPTCHA wirklich nötig
ist, mindestens eine alternative Methode anbieten.
Custom-Selects statt nativem <select>
Aus optischen Gründen werden Auswahllisten oft als <div>
-Konstruktionen nachgebaut. Das sieht
schöner aus, ist aber technisch sehr aufwendig zugänglich zu
machen: ARIA-Rollen, Tastatur-Navigation, Fokus-Management,
Such-Funktion per Tastatur. In den meisten Fällen ist mindestens
eines davon kaputt.
Stattdessen
Native <select>
mit CSS gestaltet. Wenn das
nicht reicht: bewährte, dokumentiert getestete Bibliotheken
nutzen (z. B. Combobox-Pattern aus dem ARIA Authoring
Practices Guide). Eigene Implementierung nur, wenn dafür
wirklich Ressourcen für Tests mit echten Hilfstechnologien
eingeplant sind.
Spezialfälle kurz angerissen
Drei Themen, die jeweils einen eigenen Artikel verdienen würden – hier
die Kurzfassung:
Mehrseitige Formulare
Bei langen Formularen, die über mehrere Seiten verteilt sind: eine
Fortschrittsanzeige am Anfang („Schritt 2 von 4") gibt Orientierung.
Eingaben aus früheren Schritten dürfen beim Zurückspringen nicht
verlorengehen. WCAG 3.3.7 (neu in 2.2) verbietet ausdrücklich,
bereits eingegebene Daten im selben Vorgang noch einmal abzufragen –
„Versandadresse = Rechnungsadresse" muss als Checkbox vorhanden sein.
Live-Validierung
Validierung während der Eingabe ist verlockend, aber heikel. Wer beim
ersten Tippen schon „ungültig" zu hören bekommt, fühlt sich angemeckert.
Besser: Validierung beim Verlassen des Felds ( blur
-Event)
oder beim Absenden. Wenn doch live validiert wird, dann nur positiv
bestätigend („Passwort stark genug") und Fehler erst nach erstmaliger
Eingabe melden.
Barrierefreie Authentifizierung
WCAG 3.3.8 fordert seit Version 2.2, dass der Login-Vorgang
keine kognitive Funktion abfragt (Erinnerung, Rätsel-Lösung), für die
es keine Alternative gibt. Konkret heißt das: Passwort-Manager müssen
funktionieren (kein Verbot von Kopieren-und-Einfügen ins
Passwortfeld), und reine CAPTCHA-basierte Logins sind nicht mehr
zulässig. Magic-Links per E-Mail, biometrische Anmeldung,
Passkeys oder OAuth-Single-Sign-on sind gute Alternativen.
Silta Beratung
Formulare auf eurer Website prüfen oder neu konzipieren?
Wir auditieren bestehende Formulare gegen WCAG 2.2 AA, geben
Empfehlungen zur Umsetzung und schulen Entwicklungsteams – von der
Single-Page-Anwendung bis zum mehrseitigen Behörden-Antrag.