ARIA in der Navigation

Bereiche benennen, Wiederholtes überspringen

Kopfmenü, Sprunglink, Symbollinks: drei Stellen in jeder Navigation.

Website prüfen
Beispiel im Prüfbericht Markierter Befund
Markierter Befund · Kritisch · WCAG 4.1.2Ungültige Rolle an der Markerkarte

Landmark-Plan

Dieselbe Seite. Zwei Arten, sich darin zu bewegen.

Die sichtbare Anordnung und die Bereichsliste eines Vorleseprogramms müssen dieselben Wege verständlich benennen.

Konzeptskizze: links die Seite, rechts ihre ausgegebenen Landmarken
BereichslisteLandmarken
  1. 01

    HauptmenüNavigation

  2. 02

    ServiceNavigation

  3. 03

    HauptinhaltMain

  4. 04

    FußbereichNavigation

Berichteaktuelle Seite

HauptmenüHauptmenü, Navigation

ServiceService, Navigation

HauptinhaltHauptinhalt, Main

FußbereichFußbereich, Navigation

A

nav erzeugt die Landmarke

Das HTML-Element bringt die Rolle navigation bereits mit. Schreiben Sie nicht zusätzlich role="navigation" an dasselbe Element. Nur wenn ein neutrales Bestandselement bleiben muss, kann die Rolle die Landmarke ergänzen.

B

Der Bereichsname trennt die Wege

Gibt es mehrere nav-Bereiche, benennt ein sichtbarer Titel mit aria-labelledby oder ein knappes aria-label ihren Zweck.

C

aria-current markiert den Standort

In einem Satz zusammengehöriger Links trägt nur der Link zur geöffneten Seite aria-current="page".

Namensprobe

Was ein Vorleseprogramm daraus bildet

HTML<nav aria-label="Hauptmenü">
AusgabeHauptmenü, Navigation

Nicht „Hauptnavigation“ oder „Navigation Hauptmenü“: Die Rolle wird ohnehin angesagt. Das Wort Navigation im Namen führt oft zu einer Dopplung.

Eine wichtige Ausnahme: Wiederholen zwei Landmarken exakt dieselben Links, empfiehlt die APG denselben Namen. Verschiedene Linkgruppen brauchen verschiedene Namen.

Ein vollständiges Seitengerüst

Der Sprunglink steht vor dem wiederholten Kopfbereich. Das Ziel main trägt dieselbe ID wie der Link. Die Bereichsnamen bleiben kurz und unterscheiden ihre Aufgabe.

<body>
  <a class="sprunglink" href="#inhalt">Zum Inhalt springen</a>

  <header>
    <a href="/">Wasserwerk</a>

    <nav aria-label="Hauptmenü">
      <ul>
        <li><a href="/messwerte">Messwerte</a></li>
        <li><a href="/berichte" aria-current="page">Berichte</a></li>
        <li><a href="/kontakt">Kontakt</a></li>
      </ul>
    </nav>

    <nav aria-label="Service">
      <ul>
        <li><a href="/suche">Suche</a></li>
        <li><a href="/konto">Konto</a></li>
      </ul>
    </nav>
  </header>

  <main id="inhalt" tabindex="-1">
    <h1>Berichte</h1>
  </main>

  <footer>
    <nav aria-label="Fußbereich">
      <ul>
        <li><a href="/impressum">Impressum</a></li>
        <li><a href="/datenschutz">Datenschutz</a></li>
      </ul>
    </nav>
  </footer>
</body>
.sprunglink {
  position: absolute;
  transform: translateY(-120%);
  padding: 0.75rem 1rem;
  border: 2px solid currentColor;
  background: Canvas;
  color: CanvasText;
}

.sprunglink:focus-visible {
  transform: none;
  outline: 3px solid currentColor;
  outline-offset: 2px;
}

[aria-current="page"] {
  font-weight: 700;
  border-bottom: 2px solid currentColor;
}

So prüfen Sie es

  1. Laden Sie die Seite neu und drücken Sie einmal Tab. Der Sprunglink muss sichtbar werden; Enter setzt den Fokus an den Hauptinhalt.
  2. Öffnen Sie die Landmarken- oder Bereichsliste Ihres Vorleseprogramms. Hauptmenü, Service und Fußbereich müssen unterscheidbar sein.
  3. Gehen Sie die Links einzeln durch. Nur „Berichte“ darf auf dieser Seite als aktuelle Seite angesagt und zusätzlich sichtbar markiert sein.
  4. Vergleichen Sie Navigationen mit gleichem Namen. Enthalten sie verschiedene Links, brauchen sie verschiedene Namen; enthalten sie dieselben Links, behalten sie denselben.

Aus dem Prüfbericht

Drei Stellen, drei Befunde

Zum Mitnehmen

Die Navigation, korrigiert

Ein Bereich mit Namen, ein Sprunglink, benannte Symbollinks.

Korrektur in 3 Schritten ansehen
  1. nav statt erfundener Rolle

    Das Element nav bringt die Rolle mit. aria-label trennt mehrere Navigationen voneinander, etwa Kopf und Fuß.

    KorrekturvergleichSchritt 1 · HTML

    Vorher

    <div role="navigation-menu">
      <a href="/preise">Preise</a>
    </div>

    Nachher

    <nav aria-label="Hauptmenü">
      <a href="/preise">Preise</a>
    </nav>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Lassen Sie sich die Bereiche einer Seite auflisten. Dort steht „Hauptmenü, Navigation“.

  2. Einen Sprunglink an den Anfang

    Der erste fokussierbare Link führt direkt zum Inhalt. Er darf unsichtbar sein, muss aber bei Fokus erscheinen.

    KorrekturvergleichSchritt 2 · HTML

    Vorher

    <body>
      <nav aria-label="Hauptmenü">…</nav>
      <main id="inhalt">…</main>
    </body>

    Nachher

    <body>
      <a class="sprunglink" href="#inhalt">Zum Inhalt springen</a>
      <nav aria-label="Hauptmenü">…</nav>
      <main id="inhalt">…</main>
    </body>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Laden Sie die Seite und drücken Sie einmal die Tabulatortaste. Der Sprunglink wird sichtbar.

  3. Symbollinks benennen

    Das Symbol bleibt für Vorleseprogramme verborgen, aria-label nennt das Ziel. Dadurch wird die Linkliste wieder lesbar.

    KorrekturvergleichSchritt 3 · HTML

    Vorher

    <a href="/warenkorb">
      <svg aria-hidden="true"><use href="#korb"></use></svg>
    </a>

    Nachher

    <a href="/warenkorb" aria-label="Warenkorb">
      <svg aria-hidden="true"><use href="#korb"></use></svg>
    </a>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Öffnen Sie die Linkliste eines Vorleseprogramms. Jeder Eintrag nennt sein Ziel.

Werbung

Kostenloser Website-Barrierefreiheits-Check

Website auf Barrierefreiheit prüfen.

Technische WCAG-Warnsignale erkennen. Kritische Stellen zuerst prüfen.

Der Website-Check ist bereit.

Werbung

Ein letzter Schritt

Prüfen, bevor Sie gehen.

Finden Sie automatisch erkennbare Barrieren auf Ihrer eigenen Website.

Website prüfen

Kostenlos starten · keine Installation

Automatisches Screening. Tastaturbedienung und Screenreader bleiben manuelle Prüfung.