Standards · ARIA

Rolle Landmarke

main

Das Landmark für den Hauptinhalt — der primäre Seiteninhalt, ausgenommen wiederkehrende Header, Navigation und Footer. Das Element <main> trägt diese Rolle automatisch. Genau ein main pro Seite.

Wann verwenden

Das Element <main> sollte verwendet werden. Es ist das wichtigste Landmark auf der Seite — Screenreader-Nutzerinnen und -Nutzer springen typischerweise zuerst zu main, um Navigation und Header zu überspringen.

role="main" auf einem <div> ist nur dann angemessen, wenn <main> nicht verwendet werden kann (meist eine CMS-Einschränkung). Für beide Formen gilt dieselbe Regel: genau ein main pro Seite. Mehrere mains zerstören die „Zum Hauptinhalt springen“-Funktion, und viele Screenreader zeigen nur das erste an.

Das main-Landmark sollte alles enthalten, was auf der aktuellen Seite einzigartig ist, und darf weder den Seitenheader, die primäre Navigation noch den Footer enthalten. Diese gehören als Geschwisterelemente in <header>, <nav> und <footer>, nicht in <main>.

Wann beschriften

Ein einzelnes main benötigt keine Beschriftung — Screenreader kündigen es als „main“ an. aria-label sollte nur hinzugefügt werden, wenn die Seite mehrere mains enthält (was vermieden werden sollte) oder wenn der Hauptinhaltsbereich einer Single-Page-Anwendung aus einem bestimmten Grund vom vorherigen unterschieden werden soll.

Der Link „Zum Hauptinhalt springen“ sollte auf <main id="main"> (oder die gewählte id) verweisen, mit <a href="#main"> am Seitenanfang — dies ist die Bypass-Blocks-Technik gemäß WCAG 2.4.1.

Häufige Fehler

  • Zwei <main>-Elemente auf derselben Seite. Häufigste Ursache: Eine Single-Page-Anwendung bindet das <main> einer neuen Ansicht ein, ohne das vorherige zu entfernen.
  • Seite ohne <main> überhaupt. Screenreader-Nutzerinnen und -Nutzer können den Header nicht überspringen.
  • <main> innerhalb von <header> oder <footer>. Die Landmark-Hierarchie ist falsch.
  • Seitenweite Navigation innerhalb von <main>. Da sie sich über alle Seiten wiederholt, gehört sie in <header>/<nav>, nicht in den einzigartigen Seiteninhalt.
  • Der Link „Zum Hauptinhalt springen“ verweist auf eine id, die nicht existiert.

Beispiel

<body>
  <a href="#main" class="visually-hidden focus-visible">Skip to main content</a>
  <header>…</header>
  <main id="main">
    <h1>Why one main landmark per page</h1>
    <p>…</p>
  </main>
  <footer>…</footer>
</body>