Input Barrierefreiheit
Implementierte Verbesserungen
Die Input-Komponente wurde mit folgenden Barrierefreiheitsverbesserungen aktualisiert:
ARIA-Attribute
aria-labelledby- Verknüpft das Label mit dem Input-Elementaria-describedby- Verknüpft Hilfetexte, Fehlermeldungen und andere Beschreibungenaria-invalid- Zeigt an, ob der Input ungültig istaria-required- Zeigt an, ob der Input erforderlich istaria-disabled- Zeigt an, ob der Input deaktiviert istaria-readonly- Zeigt an, ob der Input schreibgeschützt istaria-errormessage- Verknüpft Fehlermeldungen mit dem Inputrole="alert"- Markiert Fehlermeldungen für Screenreaderrole="status"- Markiert Statusmeldungen für Screenreaderrole="progressbar"- Definiert den Fortschrittsbalken mit entsprechenden Attributenrole="button"- Definiert klickbare Elemente wie Icons
Tastaturunterstützung
- Vollständige Tastaturnavigation für alle interaktiven Elemente
- Unterstützung für Enter/Space zum Aktivieren von Buttons
- Escape-Taste zum Löschen des Inputs (wenn isClearable aktiviert ist)
- Fokus-Management für alle interaktiven Elemente
Screenreader-Unterstützung
- Versteckte Labels mit
sr-only-Klassen für visuelle Layouts ohne sichtbare Labels - Versteckte Hilfetexte für zusätzliche Informationen
- Ankündigungen für Statusänderungen
- Beschreibende Texte für Icons und Aktionen
- Zähler mit zusätzlichen Informationen für Screenreader
Formular-Validierung
- Barrierefreie Fehlermeldungen mit korrekten ARIA-Attributen
- Visuelle und textuelle Darstellung von Validierungszuständen
- Sofortige Rückmeldung bei Validierungsfehlern
Zusätzliche Funktionen
- Barrierefreier Passwort-Toggle mit korrekten ARIA-Attributen
- Barrierefreier Clear-Button mit korrekten ARIA-Attributen
- Barrierefreier Fortschrittsbalken mit korrekten ARIA-Attributen
- Barrierefreier Zähler mit zusätzlichen Informationen für Screenreader
Beispiel-Implementierung
<InputA11y
label="Email"
placeholder="name@example.com"
type="email"
helperText="Wir werden Ihre Email niemals teilen."
isRequired
/>
<InputA11y
label="Passwort"
type="password"
showPasswordToggle
showCounter
maxLength={20}
/>
<InputA11y
label="Suche"
type="search"
isClearable
leftIcon={<SearchIcon />}
/>
Barrierefreiheitstests
Die Input-Komponente wurde mit folgenden Tests auf Barrierefreiheit geprüft:
- Automatisierte Tests mit jest-axe zur Überprüfung der ARIA-Attribute
- Tastaturnavigation zur Sicherstellung der vollständigen Bedienbarkeit ohne Maus
- Screenreader-Tests zur Überprüfung der korrekten Ankündigungen
- Fokus-Management-Tests zur Sicherstellung der korrekten Fokusreihenfolge
Bekannte Einschränkungen
- Bei komplexen Inputs mit vielen Zusatzfunktionen kann die Tastaturnavigation umständlich werden
- Die Formatierungsfunktionen müssen vom Entwickler implementiert werden, um barrierefrei zu sein
- Datalist-Unterstützung variiert je nach Browser und Screenreader