Barrierefreiheit in der Smolitux UI Bibliothek
Übersicht
Die Smolitux UI Bibliothek wurde mit einem starken Fokus auf Barrierefreiheit entwickelt, um sicherzustellen, dass alle Benutzer, unabhängig von ihren Fähigkeiten oder Einschränkungen, die Komponenten effektiv nutzen können. Diese Dokumentation bietet einen Überblick über die implementierten Barrierefreiheitsverbesserungen und bewährte Praktiken.
Implementierte Komponenten
Die folgenden Komponenten wurden mit Barrierefreiheitsverbesserungen implementiert:
- Carousel - ARIA-Attribute, Tastaturnavigation, Pause-Funktion
- ColorPicker - ARIA-Attribute, Tastaturnavigation, Screenreader-Unterstützung
- Drawer - ARIA-Attribute, Fokus-Management
- Dropdown - ARIA-Attribute, Tastaturnavigation
- Fade - ARIA-Attribute für Animation
- FileUpload - ARIA-Attribute, Tastaturunterstützung
- Flex - Semantische Struktur und ARIA-Attribute
- Form - ARIA-Attribute, Fehlerbehandlung
- FormControl - ARIA-Attribute, Fehlerbehandlung
- FormField - ARIA-Attribute, Fehlerbehandlung
- Input - Verbesserte ARIA-Attribute, Fehlerbehandlung
- LanguageSwitcher - Tastaturnavigation und Screenreader-Unterstützung
- List - ARIA-Attribute, Tastaturnavigation
- MediaPlayer - Untertitel, Tastatursteuerung und ARIA-Attribute
- Menu - ARIA-Attribute, Tastaturnavigation
- Pagination - ARIA-Attribute, Tastaturnavigation
- Popover - Fokus-Management und ARIA-Attribute
- ProgressBar - ARIA-Attribute, Screenreader-Unterstützung
- Radio - Verbesserte ARIA-Attribute, Tastaturunterstützung
- Select - ARIA-Attribute, Tastaturnavigation
- Skeleton - ARIA-Attribute, Screenreader-Unterstützung
- Slide - ARIA-Attribute für Animation
- Slider - ARIA-Attribute, Tastatursteuerung
- Spinner - ARIA-Attribute, Screenreader-Unterstützung
- Stepper - ARIA-Attribute, Tastaturnavigation
- Switch - Verbesserte ARIA-Attribute, Tastaturunterstützung
- TabView - ARIA-Attribute, Tastaturnavigation
- TextArea - Verbesserte ARIA-Attribute, Fehlerbehandlung
- TimePicker - ARIA-Attribute, Tastaturnavigation, Screenreader-Unterstützung
- Zoom - ARIA-Attribute für Animation
Allgemeine Barrierefreiheitsverbesserungen
ARIA-Attribute
Alle barrierefreien Komponenten unterstützen die folgenden ARIA-Attribute:
aria-label
- Bietet eine Beschreibung des Elementsaria-labelledby
- Verknüpft ein Label mit dem Elementaria-describedby
- Verknüpft eine ausführliche Beschreibung mit dem Elementaria-live
- Definiert eine Live-Region für Ankündigungenaria-atomic
- Definiert, ob eine Live-Region als Ganzes aktualisiert wirdaria-relevant
- Definiert, welche Änderungen in einer Live-Region relevant sindaria-busy
- Zeigt an, ob ein Element im Ladezustand istaria-hidden
- Versteckt ein Element vor Screenreadernaria-expanded
- Zeigt an, ob ein Element erweitert istaria-haspopup
- Zeigt an, ob ein Element ein Popup hataria-controls
- Verknüpft ein Element mit einem anderen Element, das es steuertaria-owns
- Definiert Elemente, die zu einem Element gehörenaria-current
- Zeigt an, ob ein Element der aktuelle Kontext istaria-roledescription
- Bietet eine benutzerdefinierte Rollenbeschreibung
Tastaturunterstützung
Alle interaktiven Komponenten unterstützen die folgenden Tastaturinteraktionen:
- Fokussierbarkeit mit der Tab-Taste
- Aktivierung mit der Enter- oder Leertaste
- Schließen von Popups mit der Escape-Taste
- Navigation in Listen mit den Pfeiltasten
- Sprung zum Anfang/Ende mit Home/End-Tasten
- Benutzerdefinierte Tastaturkürzel für komplexe Komponenten
Screenreader-Unterstützung
Alle Komponenten bieten Unterstützung für Screenreader durch:
- Semantisch korrekte HTML-Elemente
- Aussagekräftige ARIA-Attribute
- Ankündigungen für Statusänderungen
- Versteckte Beschreibungen für zusätzliche Informationen
- Korrekte Fokusreihenfolge
Reduzierte Bewegung
Animationskomponenten respektieren die Einstellung prefers-reduced-motion
des Benutzers und bieten:
- Deaktivierung von Animationen für Benutzer mit Bewegungsempfindlichkeit
- Sofortige Darstellung ohne Übergangseffekte
- Alternative statische Darstellungen
Testen auf Barrierefreiheit
Wir verwenden verschiedene Methoden, um die Barrierefreiheit unserer Komponenten zu testen:
Automatisierte Tests
# Führe alle Barrierefreiheitstests aus
npm run test:a11y
# Generiere einen Barrierefreiheitsbericht
npm run test:a11y:report
Manuelle Tests
Für manuelle Tests empfehlen wir:
- Tastaturnavigation - Testen Sie die Komponenten ohne Maus
- Screenreader - Testen Sie mit NVDA, JAWS oder VoiceOver
- Zoom - Testen Sie mit verschiedenen Zoomstufen (bis zu 200%)
- Kontrast - Überprüfen Sie den Farbkontrast mit Tools wie dem WAVE Browser-Plugin