Toast-Komponente: Barrierefreiheit
Diese Dokumentation beschreibt die Barrierefreiheitsfunktionen der Toast-Komponente und gibt Hinweise zur korrekten Verwendung für eine optimale Zugänglichkeit.
ARIA-Attribute und Rollen
Die Toast-Komponente verwendet folgende ARIA-Attribute und Rollen, um die Barrierefreiheit zu verbessern:
Toast-Container
role="alert"
: Identifiziert den Toast als wichtige Benachrichtigungaria-live="polite|assertive"
: Bestimmt, wie dringend der Toast von Screenreadern angekündigt wirdpolite
: Für Info- und Success-Toasts (wartet, bis der Screenreader fertig ist)assertive
: Für Error- und Warning-Toasts (unterbricht den Screenreader)
aria-atomic="true"
: Gibt an, dass der gesamte Inhalt als eine Einheit gelesen werden sollaria-labelledby="ID"
: Verweist auf die ID des Toast-Titels (falls vorhanden)aria-describedby="ID"
: Verweist auf die ID der Toast-Nachrichtdata-type="info|success|warning|error"
: Gibt den Typ des Toasts andata-testid="toast"
: Für Testbarkeit
Titel und Nachricht
- Eindeutige IDs für Titel und Nachricht durch Verwendung von
useId()
id="toast-title-[uniqueId]"
: Eindeutige ID für den Titelid="toast-message-[uniqueId]"
: Eindeutige ID für die Nachrichtdata-testid="toast-title"
: Für Testbarkeit des Titelsdata-testid="toast-message"
: Für Testbarkeit der Nachricht
Fortschrittsbalken
role="progressbar"
: Identifiziert den Fortschrittsbalkenaria-valuemin="0"
: Minimaler Wertaria-valuemax="100"
: Maximaler Wertaria-valuenow="[value]"
: Aktueller Wert (dynamisch aktualisiert)aria-label="Automatisches Schließen"
: Beschreibt den Zweck des Fortschrittsbalkensdata-testid="toast-progress"
: Für Testbarkeit
Schließen-Button
aria-label="Schließen"
: Beschreibt den Zweck des Buttonstype="button"
: Definiert den Button-Typdata-testid="toast-close-button"
: Für Testbarkeit
Icons
aria-hidden="true"
: Versteckt die Icons vor Screenreaderndata-testid="toast-icon-container"
: Für Testbarkeit des Icon-Containersdata-testid="toast-[type]-icon"
: Für Testbarkeit des spezifischen Icons
Tastaturnavigation
Die Toast-Komponente unterstützt folgende Tastaturinteraktionen:
- Tab: Fokussiert den Schließen-Button und Aktions-Buttons
- Enter/Space: Aktiviert den fokussierten Button
- Escape: Schließt den Toast (wenn implementiert)
Fokus-Management
Die Toast-Komponente implementiert folgende Fokus-Management-Strategien:
- Fokus-Indikatoren: Deutliche visuelle Anzeige des Fokus durch einen Ring um Buttons
- Fokus-Reihenfolge: Logische Tab-Reihenfolge durch die native Button-Funktionalität
- Kein Fokus-Stealing: Toasts stehlen nicht automatisch den Fokus vom aktuellen Element
- Fokus-Trap: Bei modalen Toasts (falls implementiert) wird der Fokus innerhalb des Toasts gehalten
Beispiele für barrierefreie Verwendung
Standard-Toast
<Toast
type="info"
message="Dies ist eine Informationsmeldung."
/>
Toast mit Titel
<Toast
type="warning"
title="Achtung"
message="Diese Aktion kann nicht rückgängig gemacht werden."
/>
Toast mit Aktionen
<Toast
type="error"
title="Fehler"
message="Die Datei konnte nicht hochgeladen werden."
actions={
<Button size="sm" onClick={handleRetry}>Erneut versuchen</Button>
}
/>
Toast mit automatischem Schließen
<Toast
type="success"
message="Die Aktion wurde erfolgreich durchgeführt."
duration={5000}
/>
Best Practices
-
Passenden Toast-Typ wählen: Verwenden Sie den richtigen Typ für die Wichtigkeit der Nachricht
error
: Für kritische Fehler, die sofortige Aufmerksamkeit erfordernwarning
: Für potenzielle Probleme oder wichtige Warnungensuccess
: Für erfolgreiche Aktioneninfo
: Für allgemeine Informationen
-
Klare und präzise Nachrichten: Formulieren Sie Nachrichten klar und präzise
- Vermeiden Sie technischen Jargon
- Erklären Sie, was passiert ist und was der Benutzer tun kann
-
Angemessene Anzeigedauer: Wählen Sie eine angemessene Anzeigedauer
- Längere Nachrichten benötigen mehr Zeit zum Lesen
- Wichtige Nachrichten sollten länger angezeigt werden
- Kritische Fehler sollten möglicherweise nicht automatisch geschlossen werden
-
Aktionen anbieten: Bieten Sie bei Bedarf Aktionen an
- Ermöglichen Sie dem Benutzer, auf Fehler zu reagieren
- Bieten Sie eine "Rückgängig"-Option für bestimmte Aktionen
-
Position beachten: Wählen Sie eine Position, die nicht mit wichtigen Inhalten kollidiert
- Vermeiden Sie das Überdecken von Formularelementen oder Buttons
- Berücksichtigen Sie die Leserichtung (links nach rechts, oben nach unten)
Bekannte Einschränkungen
- Mehrere Toasts: Wenn mehrere Toasts gleichzeitig angezeigt werden, kann dies für Screenreader-Benutzer verwirrend sein
- Automatisches Schließen: Automatisches Schließen kann problematisch sein, wenn der Benutzer nicht genug Zeit zum Lesen hat
- Animation: Animationen können für manche Benutzer ablenkend sein