Tabs-Komponente: Barrierefreiheit
Diese Dokumentation beschreibt die Barrierefreiheitsfunktionen der Tabs-Komponente und gibt Hinweise zur korrekten Verwendung für eine optimale Zugänglichkeit.
ARIA-Attribute und Rollen
Die Tabs-Komponente verwendet folgende ARIA-Attribute und Rollen, um die Barrierefreiheit zu verbessern:
TabList
role="tablist"
: Identifiziert die Gruppe von Tabsaria-orientation="horizontal"
oderaria-orientation="vertical"
: Gibt die Orientierung der Tabs an
Tab
role="tab"
: Identifiziert ein Tab-Elementaria-selected="true|false"
: Gibt an, ob das Tab ausgewählt istaria-disabled="true|false"
: Gibt an, ob das Tab deaktiviert istaria-controls="PANEL_ID"
: Verweist auf die ID des zugehörigen Panelsid="TAB_ID"
: Eindeutige ID für das Tab
TabPanel
role="tabpanel"
: Identifiziert ein Panel-Elementaria-hidden="true|false"
: Gibt an, ob das Panel sichtbar istaria-labelledby="TAB_ID"
: Verweist auf die ID des zugehörigen Tabsid="PANEL_ID"
: Eindeutige ID für das Panel
Tastaturnavigation
Die Tabs-Komponente unterstützt folgende Tastaturinteraktionen:
Horizontale Tabs
- Tab: Fokussiert das aktive Tab und dann die weiteren fokussierbaren Elemente
- Shift+Tab: Navigiert rückwärts durch fokussierbare Elemente
- Pfeil rechts: Bewegt den Fokus zum nächsten Tab
- Pfeil links: Bewegt den Fokus zum vorherigen Tab
- Home: Bewegt den Fokus zum ersten Tab
- End: Bewegt den Fokus zum letzten Tab
- Enter/Space: Aktiviert das fokussierte Tab
Vertikale Tabs
- Tab: Fokussiert das aktive Tab und dann die weiteren fokussierbaren Elemente
- Shift+Tab: Navigiert rückwärts durch fokussierbare Elemente
- Pfeil unten: Bewegt den Fokus zum nächsten Tab
- Pfeil oben: Bewegt den Fokus zum vorherigen Tab
- Home: Bewegt den Fokus zum ersten Tab
- End: Bewegt den Fokus zum letzten Tab
- Enter/Space: Aktiviert das fokussierte Tab
Fokus-Management
Die Tabs-Komponente implementiert folgende Fokus-Management-Strategien:
- Fokus-Falle: Der Fokus bleibt innerhalb der Tabs, wenn mit Pfeiltasten navigiert wird
- Initialer Fokus: Der Fokus wird automatisch auf das aktive Tab gesetzt
- Fokus-Wiederherstellung: Der Fokus kehrt zum aktiven Tab zurück, wenn ein neues Tab ausgewählt wird
Beispiele für barrierefreie Verwendung
Standard-Tabs
<Tabs>
<TabList>
<Tab>Tab 1</Tab>
<Tab>Tab 2</Tab>
<Tab>Tab 3</Tab>
</TabList>
<TabPanels>
<TabPanel>Inhalt 1</TabPanel>
<TabPanel>Inhalt 2</TabPanel>
<TabPanel>Inhalt 3</TabPanel>
</TabPanels>
</Tabs>
Vertikale Tabs
<Tabs orientation="vertical">
<TabList>
<Tab>Tab 1</Tab>
<Tab>Tab 2</Tab>
<Tab>Tab 3</Tab>
</TabList>
<TabPanels>
<TabPanel>Inhalt 1</TabPanel>
<TabPanel>Inhalt 2</TabPanel>
<TabPanel>Inhalt 3</TabPanel>
</TabPanels>
</Tabs>
Tabs mit Icons
<Tabs>
<TabList>
<Tab leftIcon={<HomeIcon />}>Home</Tab>
<Tab leftIcon={<SettingsIcon />}>Einstellungen</Tab>
<Tab leftIcon={<ProfileIcon />}>Profil</Tab>
</TabList>
<TabPanels>
<TabPanel>Home-Inhalt</TabPanel>
<TabPanel>Einstellungen-Inhalt</TabPanel>
<TabPanel>Profil-Inhalt</TabPanel>
</TabPanels>
</Tabs>
Tabs mit deaktiviertem Tab
<Tabs>
<TabList>
<Tab>Tab 1</Tab>
<Tab isDisabled>Tab 2</Tab>
<Tab>Tab 3</Tab>
</TabList>
<TabPanels>
<TabPanel>Inhalt 1</TabPanel>
<TabPanel>Inhalt 2</TabPanel>
<TabPanel>Inhalt 3</TabPanel>
</TabPanels>
</Tabs>
Tabs mit manueller Aktivierung
<Tabs isManual>
<TabList>
<Tab>Tab 1</Tab>
<Tab>Tab 2</Tab>
<Tab>Tab 3</Tab>
</TabList>
<TabPanels>
<TabPanel>Inhalt 1</TabPanel>
<TabPanel>Inhalt 2</TabPanel>
<TabPanel>Inhalt 3</TabPanel>
</TabPanels>
</Tabs>
Tabs mit Lazy-Loading
<Tabs isLazy>
<TabList>
<Tab>Tab 1</Tab>
<Tab>Tab 2</Tab>
<Tab>Tab 3</Tab>
</TabList>
<TabPanels>
<TabPanel>Inhalt 1</TabPanel>
<TabPanel>Inhalt 2</TabPanel>
<TabPanel>Inhalt 3</TabPanel>
</TabPanels>
</Tabs>
Internationalisierung
Die Tabs-Komponente unterstützt Internationalisierung durch das i18n
-Prop:
<Tabs
i18n={{
tabSelected: "Tab ausgewählt",
tabDisabled: "Tab deaktiviert"
}}
>
{/* ... */}
</Tabs>
Best Practices
- Aussagekräftige Tab-Beschriftungen: Verwenden Sie klare und präzise Beschriftungen für Tabs
- Konsistente Reihenfolge: Halten Sie die Reihenfolge der Tabs konsistent
- Visuelle Unterscheidung: Stellen Sie sicher, dass aktive Tabs visuell deutlich hervorgehoben 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 die Tabs auf allen Bildschirmgrößen gut funktionieren
Bekannte Einschränkungen
- Verschachtelte Tabs: Können zu Verwirrung bei der Tastaturnavigation führen
- Zu viele Tabs: Können die Benutzerfreundlichkeit beeinträchtigen
- Dynamische Tabs: Änderungen in der Tab-Anzahl können zu Problemen mit dem Fokus führen