Homepage-Navigation

Vom Seitenanfang direkt zum Ziel

Sprunglink, Menüliste, Linktexte: drei Stellen im Kopf Ihrer Startseite.

Website prüfen
Beispiel im Prüfbericht Manuell nachprüfen
Manueller Prüfhinweis · Manuell prüfen · WCAG 2.4.1Abschnitt ohne Überschriftensemantik

Navigationsplan

Eine Kopfzeile, drei Wege zum Ziel

Die sichtbare Leiste, die HTML-Struktur und der Tastaturweg müssen dieselbe Reihenfolge erzählen. Diese Blaupause zeigt alle drei Ebenen.

Anatomie der Startseiten-Navigation

Konzeptansicht · keine Produktoberfläche
1Sprunglinkvor dem wiederholten Kopf
2Logo-LinkZiel im Alternativtext
3nav + ulein Link je Listeneintrag
4Suchesichtbar beschriftetes Feld
5MenütasteZustand über aria-expanded
Der Sprunglink führt direkt zu main. Das Menü bleibt in beiden Ansichten dieselbe Liste; nur seine Darstellung und Sichtbarkeit ändern sich.

Fokus-Reihenfolge

Was nach jedem Tab folgt

Breit
  1. Sprunglink
  2. Logo
  3. Start
  4. Leistungen
  5. Referenzen
  6. Kontakt
  7. Suche
  8. Los
Schmal · zu
  1. Sprunglink
  2. Logo
  3. Menü
  4. Suche
  5. Los
Schmal · offen
  1. Sprunglink
  2. Logo
  3. Menü
  4. Start
  5. Leistungen
  6. Referenzen
  7. Kontakt
  8. Suche
  9. Los

Tab → Sprunglink, dann Entermain#inhalt

HTML

Die vollständige Struktur

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

  <header class="site-head">
    <a class="logo" href="/">
      <img src="/logo.svg" alt="Muster GmbH – Startseite"
        width="140" height="32">
    </a>

    <button id="menu-toggle" type="button" hidden
      aria-expanded="false" aria-controls="main-menu">
      Menü
    </button>

    <nav id="main-menu" aria-label="Hauptnavigation">
      <ul>
        <li><a href="/" aria-current="page">Start</a></li>
        <li><a href="/leistungen">Leistungen</a></li>
        <li><a href="/referenzen">Referenzen</a></li>
        <li><a href="/kontakt">Kontakt</a></li>
      </ul>
    </nav>

    <form class="search" action="/suche" role="search">
      <label for="site-search">Suchen</label>
      <input id="site-search" name="q" type="search">
      <button type="submit">Los</button>
    </form>
  </header>

  <main id="inhalt" tabindex="-1">
    <h1>Willkommen bei Muster</h1>
  </main>
</body>

CSS

Struktur reagiert, Reihenfolge bleibt

.skip {
  position: absolute;
  transform: translateY(-150%);
}
.skip:focus { transform: translateY(0); }

.site-head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1rem;
}
nav ul {
  display: flex;
  gap: 1.5rem;
  list-style: none;
}
[aria-current="page"] {
  font-weight: 700;
  text-decoration: underline;
}

@media (max-width: 48rem) {
  .site-head { grid-template-columns: 1fr auto; }
  nav, .search { grid-column: 1 / -1; }
  nav ul { flex-direction: column; }
}

JavaScript

Ein Zustand steuert Taste und Liste

const taste = document.querySelector('#menu-toggle');
const menue = document.querySelector('#main-menu');
const schmal = matchMedia('(max-width: 48rem)');

function anpassen() {
  taste.hidden = !schmal.matches;
  menue.hidden = schmal.matches;
  taste.setAttribute('aria-expanded', String(!schmal.matches));
}

taste.addEventListener('click', () => {
  const offen = menue.hidden;
  menue.hidden = !offen;
  taste.setAttribute('aria-expanded', String(offen));
});

document.addEventListener('keydown', (event) => {
  if (event.key !== 'Escape' || !schmal.matches || menue.hidden) return;
  menue.hidden = true;
  taste.setAttribute('aria-expanded', 'false');
  taste.focus();
});

schmal.addEventListener('change', anpassen);
anpassen();

Prüfroute

So prüfen Sie es

  1. Neu laden, Tab drücken: Der Sprunglink wird sichtbar.
  2. Enter drücken: Ansicht und Fokus wechseln zu main#inhalt.
  3. Breit durch alle Ziele tabben: Die Reihenfolge folgt der oberen Route.
  4. Schmal öffnen: aria-expanded wechselt mit der sichtbaren Liste.
  5. Escape drücken: Die Liste schließt, der Fokus kehrt zur Menütaste zurück.
  6. Auf 200 % zoomen: Kein Ziel wird verdeckt oder horizontal abgeschnitten.

Aus dem Prüfbericht

Drei Stellen, drei Befunde

Zum Mitnehmen

Die Navigation, korrigiert

Ein Sprunglink, eine Liste, ein benanntes Symbol.

Korrektur in 3 Schritten ansehen
  1. Sprunglink an den Seitenanfang setzen

    Der Sprunglink steht als erstes Element im body und zeigt auf den Hauptbereich. Mit der Tastatur ist der Inhalt so in einem Schritt erreichbar.

    KorrekturvergleichSchritt 1 · HTML

    Vorher

    <body>
      <header class="kopf">
        <nav>…</nav>
      </header>
      <div id="inhalt">…</div>
    </body>

    Nachher

    <body>
      <a class="sprunglink" href="#inhalt">Zum Inhalt springen</a>
      <header class="kopf">
        <nav>…</nav>
      </header>
      <main id="inhalt">…</main>
    </body>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Laden Sie die Startseite neu und drücken Sie Tab. Der erste Fokus liegt sichtbar auf dem Sprunglink.

  2. Das Menü als Liste auszeichnen

    Ein ul mit einem li je Menüpunkt macht aus einer Reihe von Links eine Liste. Das Vorleseprogramm sagt dann die Anzahl der Ziele an.

    KorrekturvergleichSchritt 2 · HTML

    Vorher

    <nav>
      <div class="menue">
        <a href="/leistungen">Leistungen</a>
        <a href="/kontakt">Kontakt</a>
      </div>
    </nav>

    Nachher

    <nav aria-label="Hauptmenü">
      <ul class="menue">
        <li><a href="/leistungen">Leistungen</a></li>
        <li><a href="/kontakt">Kontakt</a></li>
      </ul>
    </nav>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Ein Vorleseprogramm kündigt beim Betreten des Menüs eine Liste mit der Zahl der Einträge an.

  3. Symbol-Links im Kopf benennen

    Das Symbol bleibt sichtbar und für Vorleseprogramme verborgen. Das aria-label liefert den Namen, den die Linkliste anzeigt.

    KorrekturvergleichSchritt 3 · HTML

    Vorher

    <a class="kopf-symbol" href="/suche">
      <svg aria-hidden="true"><use href="#lupe"></use></svg>
    </a>

    Nachher

    <a class="kopf-symbol" href="/suche" aria-label="Suche öffnen">
      <svg aria-hidden="true"><use href="#lupe"></use></svg>
    </a>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Öffnen Sie die Linkliste eines Vorleseprogramms. Statt eines leeren Eintrags steht dort „Suche öffnen“.

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.