Wann Sie das Muster einsetzen
Für die Hauptnavigation einer Website empfiehlt das W3C das Disclosure-Muster, nicht das Muster „Menu“ mit role="menu". Das Menu-Muster ist für Anwendungsmenüs gedacht, wie man sie aus Programmen kennt, und verlangt eine aufwendige Pfeiltasten-Steuerung. Viele Screenreader-Nutzer erwarten auf Websites einfache Listen mit Links.
Unsere eigene Hauptnavigation oben auf dieser Seite folgt demselben Muster.
Rollen, Zustände, Eigenschaften
- Die Navigation steht in
<nav>mit einem Namen, wenn es mehrere gibt (aria-label). - Jeder Menüpunkt mit Untermenü ist ein
<button>mitaria-expandedundaria-controls. - Das Untermenü ist eine normale Liste (
<ul>) mit Links, ausgeblendet mithidden. - Keine Rollen
menu,menubarodermenuitemfür Website-Navigation. - Die aktuelle Seite trägt
aria-current="page".
Tastaturbedienung
| Taste | Wirkung |
|---|---|
| Tab | Geht von Button zu Button und durch die Links eines geöffneten Untermenüs. |
| Enter / Leertaste | Öffnet oder schließt das Untermenü. |
| Escape | Schließt das offene Untermenü und setzt den Fokus auf seinen Button. |
Code
<nav aria-label="Hauptnavigation">
<ul>
<li>
<button type="button" aria-expanded="false"
aria-controls="sub-wissen">Wissen</button>
<ul id="sub-wissen" hidden>
<li><a href="/wissen/kriterien/">Kriterien</a></li>
<li><a href="/wissen/glossar/">Glossar</a></li>
</ul>
</li>
<li><a href="/preise/">Preise</a></li>
</ul>
</nav>Häufige Fehler
- Untermenü öffnet nur bei
:hover: per Tastatur und auf Touchgeräten nicht erreichbar. - Der Hauptpunkt ist gleichzeitig Link und Aufklapper: ein Klick soll zwei Dinge tun, Tastaturnutzer kommen nur an eines.
role="menu"ohne die dazugehörige Pfeiltasten-Steuerung: Screenreader schalten in einen Modus, in dem Tab nicht mehr wie erwartet funktioniert.- Untermenü, das beim Verlassen mit der Maus sofort zuklappt, bevor man es erreicht (Hover-Falle, siehe 1.4.13 Eingeblendete Inhalte bei Hover oder Fokus).
Passende WCAG-Kriterien
Quellen
Sind Ihre Komponenten so gebaut?
Der kostenlose Check findet viele Fehler automatisch. Im Audit prüft ein Mensch jede Komponente mit Tastatur und Screenreader.