Menu Barrierefreiheit
Implementierte Verbesserungen
Die Menu-Komponente wurde mit folgenden Barrierefreiheitsverbesserungen aktualisiert:
ARIA-Attribute
role="menu"
- Definiert das Element als Menüaria-orientation
- Gibt an, ob das Menü horizontal oder vertikal ausgerichtet istaria-label
- Bietet eine Beschreibung des Menüsaria-describedby
- Verknüpft eine ausführliche Beschreibung mit dem Menürole="menuitem"
- Definiert die Menüeinträgearia-disabled
- Zeigt an, ob ein Menüeintrag deaktiviert istaria-selected
- Zeigt an, ob ein Menüeintrag ausgewählt istaria-haspopup
- Zeigt an, ob ein Menüeintrag ein Untermenü hataria-expanded
- Zeigt an, ob ein Untermenü geöffnet istaria-controls
- Verknüpft ein Untermenü mit seinem übergeordneten Menüeintrag
Tastaturunterstützung
- Vollständige Tastaturnavigation mit Pfeiltasten
- Unterstützung für Home/End-Tasten zur Navigation zum ersten/letzten Element
- Escape-Taste zum Schließen von Untermenüs
- Enter/Space zum Aktivieren von Menüeinträgen
- Pfeiltasten zum Öffnen/Schließen von Untermenüs
- Korrektes Fokus-Management zwischen Menüeinträgen
Screenreader-Unterstützung
- Versteckte Beschreibungen für zusätzliche Informationen
- Korrekte Ankündigung von Menüstrukturen
- Beschreibende Texte für Icons und Aktionen
- Korrekte Ankündigung von Untermenüs
- Korrekte Ankündigung von Tastenkombinationen
Zusätzliche Funktionen
- Unterstützung für horizontale und vertikale Menüs
- Barrierefreie Untermenüs
- Barrierefreie Tastenkombinationen
- Barrierefreie Badges und Icons
Beispiel-Implementierung
<MenuA11y ariaLabel="Hauptnavigation" direction="horizontal">
<MenuItemA11y id="home">Home</MenuItemA11y>
<MenuItemA11y
id="products"
submenu={
<>
<MenuItemA11y id="product1">Product 1</MenuItemA11y>
<MenuItemA11y id="product2">Product 2</MenuItemA11y>
</>
}
>
Products
</MenuItemA11y>
<MenuItemA11y id="about" description="Über uns und unsere Mission">About</MenuItemA11y>
<MenuItemA11y id="contact" disabled>Contact</MenuItemA11y>
</MenuA11y>
Barrierefreiheitstests
Die Menu-Komponente wurde mit folgenden Tests auf Barrierefreiheit geprüft:
- Automatisierte Tests mit jest-axe zur Überprüfung der ARIA-Attribute
- Tastaturnavigation zur Sicherstellung der vollständigen Bedienbarkeit ohne Maus
- Screenreader-Tests zur Überprüfung der korrekten Ankündigungen
- Fokus-Management-Tests zur Sicherstellung der korrekten Fokusreihenfolge
Bekannte Einschränkungen
- Bei sehr komplexen verschachtelten Menüs kann die Tastaturnavigation umständlich werden
- Die Komponente unterstützt derzeit keine Drag-and-Drop-Funktionalität
- Bei sehr vielen Menüeinträgen kann die Navigation für Tastaturbenutzer zeitaufwändig sein
- Die Komponente unterstützt derzeit keine automatische Positionierung von Untermenüs basierend auf dem verfügbaren Platz