Switch Barrierefreiheit
Implementierte Verbesserungen
Die Switch-Komponente wurde mit folgenden Barrierefreiheitsverbesserungen aktualisiert:
ARIA-Attribute
role="switch"
- Definiert das Element als Switcharia-checked
- Gibt an, ob der Switch eingeschaltet istaria-label
- Bietet eine Beschreibung des Switchesaria-describedby
- Verknüpft eine ausführliche Beschreibung mit dem Switcharia-errormessage
- Verknüpft eine Fehlermeldung mit dem Switcharia-invalid
- Zeigt an, ob der Switch ungültig istaria-required
- Zeigt an, ob der Switch erforderlich istaria-disabled
- Zeigt an, ob der Switch deaktiviert istaria-busy
- Zeigt an, ob der Switch im Ladezustand istaria-pressed
- Zeigt an, ob der Switch gedrückt ist (optional)
Tastaturunterstützung
- Vollständige Tastaturnavigation mit Tab-Taste
- Umschalten mit Leertaste oder Enter-Taste
- Visuelle Fokus-Indikatoren
- Unterstützung für Tastatur-Events (keydown, keyup)
- Unterstützung für Fokus-Management
Screenreader-Unterstützung
- Versteckte Beschreibungen für zusätzliche Informationen
- Ankündigung des Schaltzustands (eingeschaltet/ausgeschaltet)
- Benutzerdefinierte Texte für Schaltzustände
- Live-Regionen für Statusänderungen
- Korrekte Ankündigung von Fehlermeldungen
Zusätzliche Funktionen
- Benutzerdefinierte Labels für den Switch
- Benutzerdefinierte Beschreibungen für Screenreader
- Unterstützung für verschiedene Größen und Farben
- Unterstützung für verschiedene Label-Positionen
- Unterstützung für vertikale und horizontale Layouts
- Unterstützung für Icons und Labels im Switch
- Unterstützung für verschiedene visuelle Stile
Beispiel-Implementierung
// Einfacher Switch
<SwitchA11y
label="Benachrichtigungen aktivieren"
ariaLabel="Benachrichtigungen"
checkedStateText="aktiviert"
uncheckedStateText="deaktiviert"
/>
// Switch mit Icons
<SwitchA11y
label="Dunkelmodus"
icons
checkedIcon={<MoonIcon />}
uncheckedIcon={<SunIcon />}
ariaLabel="Dunkelmodus"
/>
// Switch mit Labels
<SwitchA11y
label="WLAN"
labels={{ on: "AN", off: "AUS" }}
ariaLabel="WLAN-Verbindung"
/>
// Switch mit linkem Label
<SwitchA11y
label="Automatische Updates"
labelPosition="left"
labelAlign="end"
ariaLabel="Automatische Updates"
/>
// Switch mit Beschreibung
<SwitchA11y
label="Standort teilen"
description="Wenn aktiviert, wird Ihr Standort mit der App geteilt"
ariaLabel="Standort teilen"
/>
Barrierefreiheitstests
Die Switch-Komponente wurde mit folgenden Tests auf Barrierefreiheit geprüft:
- Automatisierte Tests mit jest-axe zur Überprüfung der ARIA-Attribute
- Tastatur-Tests zur Überprüfung der Tastaturnavigation und -bedienung
- Screenreader-Tests zur Überprüfung der korrekten Ankündigungen
- Visuelle Tests zur Überprüfung der Farbkontraste und Fokus-Indikatoren
Bekannte Einschränkungen
- Die Komponente unterstützt derzeit keine Gruppierung mit Fieldset und Legend
- Die Komponente unterstützt derzeit keine automatische Fokussierung auf den ersten Switch in einer Gruppe
- Die Komponente unterstützt derzeit keine Pfeiltasten-Navigation innerhalb einer Gruppe
- Die Komponente unterstützt derzeit keine automatische Umschaltung beim Fokussieren