Accordion-Komponente: Barrierefreiheit
Diese Dokumentation beschreibt die Barrierefreiheitsfunktionen der Accordion-Komponente und gibt Hinweise zur korrekten Verwendung für eine optimale Zugänglichkeit.
ARIA-Attribute und Rollen
Die Accordion-Komponente verwendet folgende ARIA-Attribute und Rollen, um die Barrierefreiheit zu verbessern:
Accordion
role="region"
: Identifiziert den Accordion-Container als Regionaria-multiselectable="true|false"
: Gibt an, ob mehrere Panels gleichzeitig geöffnet sein können
AccordionItem Button
aria-expanded="true|false"
: Gibt an, ob das Panel geöffnet istaria-controls="PANEL_ID"
: Verweist auf die ID des zugehörigen Panelsaria-disabled="true|false"
: Gibt an, ob das Panel deaktiviert istid="BUTTON_ID"
: Eindeutige ID für den Button
AccordionItem Content
role="region"
: Identifiziert den Inhaltsbereich als Regionaria-hidden="true|false"
: Gibt an, ob der Inhalt sichtbar istaria-labelledby="BUTTON_ID"
: Verweist auf die ID des zugehörigen Buttonsaria-describedby="DESCRIPTION_ID"
(optional): Verweist auf die ID einer zusätzlichen Beschreibung
Tastaturnavigation
Die Accordion-Komponente unterstützt folgende Tastaturinteraktionen:
- Tab: Navigiert zu den Accordion-Buttons und dann zu den geöffneten Inhalten
- Shift+Tab: Navigiert rückwärts durch fokussierbare Elemente
- Enter/Space: Öffnet oder schließt das Panel
- Home: Bewegt den Fokus zum ersten Accordion-Button (wenn implementiert)
- End: Bewegt den Fokus zum letzten Accordion-Button (wenn implementiert)
Fokus-Management
Die Accordion-Komponente implementiert folgende Fokus-Management-Strategien:
- Fokussierbare Inhalte: Geöffnete Panels sind fokussierbar (
tabIndex={0}
) - Visueller Fokus-Indikator: Deutliche visuelle Anzeige des Fokus
- Fokus-Reihenfolge: Logische Tab-Reihenfolge durch die Accordion-Elemente
Beispiele für barrierefreie Verwendung
Standard-Accordion
<Accordion>
<AccordionItem id="section1" title="Abschnitt 1">
Inhalt von Abschnitt 1...
</AccordionItem>
<AccordionItem id="section2" title="Abschnitt 2">
Inhalt von Abschnitt 2...
</AccordionItem>
</Accordion>
Accordion mit mehreren geöffneten Panels
<Accordion allowMultiple>
<AccordionItem id="section1" title="Abschnitt 1">
Inhalt von Abschnitt 1...
</AccordionItem>
<AccordionItem id="section2" title="Abschnitt 2">
Inhalt von Abschnitt 2...
</AccordionItem>
</Accordion>
Accordion mit Icons
<Accordion iconStyle="plus">
<AccordionItem id="section1" title="Abschnitt 1" icon={<InfoIcon />}>
Inhalt von Abschnitt 1...
</AccordionItem>
<AccordionItem id="section2" title="Abschnitt 2" icon={<SettingsIcon />}>
Inhalt von Abschnitt 2...
</AccordionItem>
</Accordion>
Accordion mit deaktiviertem Panel
<Accordion>
<AccordionItem id="section1" title="Abschnitt 1">
Inhalt von Abschnitt 1...
</AccordionItem>
<AccordionItem id="section2" title="Abschnitt 2" disabled>
Inhalt von Abschnitt 2...
</AccordionItem>
</Accordion>
Accordion mit Screenreader-Beschreibung
<Accordion>
<AccordionItem
id="section1"
title="Abschnitt 1"
description="Dieser Abschnitt enthält wichtige Informationen"
>
Inhalt von Abschnitt 1...
</AccordionItem>
</Accordion>
Internationalisierung
Die Accordion-Komponente unterstützt Internationalisierung durch das i18n
-Prop:
<Accordion
i18n={{
expand: "Erweitern",
collapse: "Einklappen"
}}
>
{/* ... */}
</Accordion>
Best Practices
- Aussagekräftige Titel: Verwenden Sie klare und präzise Titel für die Panels
- Konsistente Reihenfolge: Halten Sie die Reihenfolge der Panels logisch und konsistent
- Visuelle Unterscheidung: Stellen Sie sicher, dass geöffnete Panels visuell deutlich erkennbar sind
- Tastaturzugänglichkeit: Testen Sie die Komponente mit der Tastatur
- Screenreader-Unterstützung: Stellen Sie sicher, dass die Komponente mit Screenreadern zugänglich ist
- Responsive Design: Stellen Sie sicher, dass das Accordion auf allen Bildschirmgrößen gut funktioniert
Bekannte Einschränkungen
- Verschachtelte Accordions: Können zu Verwirrung bei der Tastaturnavigation führen
- Zu viele Panels: Können die Benutzerfreundlichkeit beeinträchtigen
- Dynamische Panels: Änderungen in der Panel-Anzahl können zu Problemen mit dem Fokus führen