Kein Skip-Link (keyboard:skip-link)

Die Regel keyboard:skip-link meldet eine Seite, deren erster Tab-Halt kein funktionierender Link zum Hauptinhalt ist. Tastatur-Nutzende tabben dann auf jeder Seite durch Logo, das ganze Menü und die Suche, bevor sie etwas Neues erreichen. Die Lösung ist ein Link „Zum Inhalt springen“ als erstes fokussierbares Element, der auf ein vorhandenes Element zeigt.

Was die Regel bedeutet

WCAG 2.4.1 verlangt eine Möglichkeit, Inhaltsblöcke zu überspringen, die sich auf jeder Seite wiederholen. Genau genommen sind auch Landmarks und Überschriften anerkannte Wege dazu – sie helfen aber nur Menschen, deren Software nach Landmarks oder Überschriften springen kann, also vor allem Screenreader-Nutzenden. Für sehende Menschen mit Tastatur ist der Skip-Link der Mechanismus: einmal Tab, einmal Enter, und die Navigation liegt hinter ihnen.

Ein Skip-Link darf versteckt sein, bis er den Fokus bekommt. Dann muss er sichtbar werden, und sein Ziel muss existieren.

Wen es betrifft

Sehende Tastatur-Nutzende – Menschen mit motorischen Einschränkungen mit Tastatur, Schalter oder Mundstab und Menschen mit Sehbehinderung mit Bildschirmlupe. Eine Navigation mit dreißig Links heißt dreißig Tab-Drücke auf jeder Seite, und mit einem Schalter ist jeder Druck langsam und anstrengend.

Warum die Prüfung anschlägt

  • Gar kein Skip-Link – der erste Tab landet auf dem Logo.
  • Ein Skip-Link, der nicht zuerst kommt, sondern hinter Cookie-Banner, Sprachumschalter oder „Rufen Sie uns an“-Link.
  • Ein kaputtes Ziel: href="#main", während der Inhalt id="content" hat – oder gar keine ID.
  • href="#" oder ein Button mit Skript statt eines Links innerhalb der Seite.
  • Themes und Vorlagen, die einen Skip-Link mitbrachten, den ein späteres Redesign entfernt hat.

So beheben Sie es

Setzen Sie den Skip-Link als erstes Element in den <body>, lassen Sie ihn auf den Hauptinhalt zeigen und geben Sie diesem Element die ID.

<!-- Vorher: Der erste Tab landet auf dem Logo -->
<body>
  <header>
    <a href="/"><img src="/logo.svg" alt="Beispiel GmbH – Startseite"></a>
    <nav aria-label="Hauptmenü">
      <a href="/produkte/">Produkte</a> <a href="/kontakt/">Kontakt</a>
    </nav>
  </header>
  <main><h1>Unsere Produkte</h1></main>
</body>
<!-- Nachher: zuerst der Skip-Link, mit einem Ziel, das es gibt -->
<body>
  <a class="skip-link" href="#inhalt">Zum Inhalt springen</a>
  <header>
    <a href="/"><img src="/logo.svg" alt="Beispiel GmbH – Startseite"></a>
    <nav aria-label="Hauptmenü">
      <a href="/produkte/">Produkte</a> <a href="/kontakt/">Kontakt</a>
    </nav>
  </header>
  <main id="inhalt"><h1>Unsere Produkte</h1></main>
</body>

Verstecken Sie ihn, bis er gebraucht wird, und holen Sie ihn beim Fokus ins Bild:

.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 1rem; top: 1rem; padding: .5rem 1rem; background: #ffffff; color: #1a1a1a; }

So prüfen Sie es von Hand

  1. Laden Sie die Seite, klicken Sie in die Adresszeile und drücken Sie einmal Tab. Erscheint ein Link „Zum Inhalt springen“?
  2. Drücken Sie Enter. Springt die Seite zum Hauptinhalt, und geht der nächste Tab von dort aus weiter?
  3. Prüfen Sie, dass der Link auf jeder Vorlage der erste Tab-Halt ist – Startseite, Kategorie, Artikel, Kasse.
  4. Prüfen Sie, dass er sichtbar bleibt, solange er den Fokus hat, auch in der Mobilansicht.

Zugehöriges WCAG-Kriterium

2.4.1 Blöcke umgehen, Stufe A. Verwandt: 2.4.3 Fokus-Reihenfolge und 1.3.1 Info und Beziehungen, über das Landmarks und Überschriften Screenreader-Nutzenden einen eigenen Weg an der Navigation vorbei geben.

So meldet Reviseberg diese Regel

Diese Regel stammt vom Tastatur-Agenten von Reviseberg, nicht aus axe-core. Bevor er eine Taste drückt, sieht sich der Agent das erste fokussierbare Element der Seite an. Die Seite besteht, wenn es ein Link auf #etwas ist und ein Element mit dieser ID existiert. Sonst scheitert sie mit „The page offers no way to skip the repeated navigation“, und der erste Schritt der Tastenfolge sagt, warum – gar kein Link oder ein Link auf ein Ziel, das es nicht gibt.

Mehr prüft er nicht. Ob das Ziel der Hauptinhalt ist, ob der Link beim Fokus sichtbar wird (das zeigt der nächste Tab-Schritt, gemeldet als undefined) oder ob Landmarks Screenreader-Nutzenden schon helfen, beurteilt er nicht. Deshalb wird der Befund mit dem niedrigsten Schweregrad gemeldet. Erfüllt Ihre Seite 2.4.1 aus Ihrer Sicht auf anderem Weg, halten Sie die Entscheidung mit Begründung am Befund fest.

Verwandte Regeln

  • undefined – die Seite hat keinen Hauptbereich, zu dem Screenreader-Nutzende springen können.
  • undefined – Inhalt außerhalb von Landmarks.
  • undefined – ein Skip-Link, der nie ins Bild kommt.

Tastatur-Agent auf Ihrer Website – kostenloser Bericht

Häufige Fragen

Schreibt WCAG einen Skip-Link vor?

Nicht ausdrücklich. 2.4.1 verlangt eine Möglichkeit, wiederholte Blöcke zu überspringen; für Screenreader-Nutzende können das Landmarks oder Überschriften sein. Für sehende Tastatur-Nutzende ist der Skip-Link der praktische Weg.

Darf der Skip-Link unsichtbar sein?

Bis er den Fokus bekommt, ja. Mit Fokus muss er erscheinen.

Wohin soll er zeigen?

Auf den Anfang des Hauptinhalts, meist <main id="inhalt">. Das Ziel braucht die ID; mehr ist in aktuellen Browsern nicht nötig.

Und wenn meine Seite mehrere Skip-Links hat?

Der Agent prüft nur das erste fokussierbare Element. Weitere Links (zur Suche, zum Footer) sind in Ordnung, solange der erste funktioniert.

Quellen

  1. W3C, Understanding SC 2.4.1 Bypass Blocks – https://www.w3.org/WAI/WCAG22/Understanding/bypass-blocks
  2. W3C, Technique G1: Adding a link at the top of each page that goes directly to the main content area – https://www.w3.org/WAI/WCAG22/Techniques/general/G1
  3. WebAIM, Skip Navigation Links – https://webaim.org/techniques/skipnav/

Sehen Sie, was ein Scan auf Ihrer Website findet

Eine Seite in rund 30 Sekunden, ohne E-Mail. Der vollständige Bericht umfasst bis zu 100 Seiten und einen Tastatur-Durchlauf.