Spinner Barrierefreiheit
Implementierte Verbesserungen
Die Spinner-Komponente wurde mit folgenden Barrierefreiheitsverbesserungen aktualisiert:
ARIA-Attribute
role="status"
- Definiert das Element als Statusanzeigearia-label
- Bietet eine Beschreibung des Spinnersaria-busy
- Zeigt an, ob der Spinner aktiv istaria-live
- Definiert, wie der Spinner von Screenreadern angekündigt wirdaria-atomic
- Sorgt dafür, dass der gesamte Inhalt des Elements angekündigt wirdaria-relevant
- Definiert, welche Änderungen angekündigt werden sollenaria-describedby
- Verknüpft eine ausführliche Beschreibung mit dem Spinner
Screenreader-Unterstützung
- Versteckte Beschreibungen für zusätzliche Informationen
- Live-Regionen für Statusänderungen
- Korrekte Ankündigung von Ladezuständen
- Unterstützung für verschiedene Dringlichkeitsstufen (polite/assertive)
- Unterstützung für verschiedene Relevanztypen (additions/removals/text/all)
Zusätzliche Funktionen
- Benutzerdefinierte Labels für den Spinner
- Benutzerdefinierte Beschreibungen für Screenreader
- Unterstützung für verschiedene Größen und Farben
- Unterstützung für verschiedene Varianten (border, grow, dots, ring)
- Unterstützung für benutzerdefinierte Animationsgeschwindigkeiten
Beispiel-Implementierung
<SpinnerA11y
ariaLabel="Daten werden geladen"
description="Bitte warten Sie, während die Daten geladen werden"
size="md"
color="primary"
variant="border"
/>
<SpinnerA11y
ariaLabel="Hochladen"
text="Datei wird hochgeladen..."
liveRegionPoliteness="assertive"
color="success"
variant="dots"
/>
<SpinnerA11y
ariaLabel="Verarbeitung läuft"
busy={isProcessing}
centered
size="lg"
color="warning"
variant="ring"
/>
Barrierefreiheitstests
Die Spinner-Komponente wurde mit folgenden Tests auf Barrierefreiheit geprüft:
- Automatisierte Tests mit jest-axe zur Überprüfung der ARIA-Attribute
- Screenreader-Tests zur Überprüfung der korrekten Ankündigungen
- Visuelle Tests zur Überprüfung der Farbkontraste und Größen
Bekannte Einschränkungen
- Animierte Elemente können bei einigen Nutzern mit vestibulären Störungen Probleme verursachen
- Bei sehr schnellen Statusänderungen können Screenreader möglicherweise nicht alle Änderungen ankündigen
- Die Komponente unterstützt derzeit keine Anpassung der Animation für Nutzer, die reduzierte Bewegung bevorzugen
- Die Komponente unterstützt derzeit keine Fortschrittsanzeige (nur unbestimmte Ladezustände)