Semantisches HTML

Das passende Element sagt schon alles

Navigation, Liste, Rolle: drei Stellen der Layoutvorlage.

Website prüfen
Beispiel im Prüfbericht Markierter Befund
Markierter Befund · Kritisch · WCAG 1.3.1Absatz direkt in der Liste

Struktur sichtbar machen

Aus einer Seite werden zwei Navigationskarten

Semantische Elemente ordnen nicht nur den Quelltext. Sie erzeugen Orientierungspunkte, die Browser und assistive Technik auswerten können.

Dokument-Röntgenbild

Dieselben Inhalte, drei Ansichten

Die sichtbare Seite, ihre HTML-Elemente und die daraus abgeleiteten Bereiche und Überschriften beschreiben dieselbe Struktur.

<header>→ banner<nav>→ navigation<main>→ main<aside>→ complementary<footer>→ contentinfo

Der Kontext entscheidet: Ein header direkt im body kann den Seitenkopf bilden. Derselbe Tag in einem article ist nur dessen Kopf und keine zusätzliche Banner-Landmarke.

20 Elemente

Der semantische Atlas

Jeder Eintrag verbindet Zweck und häufige Fehlentscheidung.

Seitenbereiche

header
Kopf eines Dokuments oder Abschnitts.Nicht automatisch der Seitenkopf.
nav
Block wichtiger Navigationslinks.Nicht jeder Linkblock.
main
Einmaliger Hauptinhalt der Seite.Nicht mehrfach sichtbar.
footer
Abschluss von Seite oder Abschnitt.Kontext bestimmt die Landmarke.
aside
Ergänzung, separat verständlich.Nicht bloß die rechte Spalte.

Inhaltsblöcke

section
Thematischer Abschnitt.Braucht meist eine Überschrift.
article
Eigenständig nutzbarer Inhalt.Nicht jede visuelle Karte.
h1–h6
Ränge der Gliederung.Nicht nach Schriftgröße wählen.
p
Absatz aus Fließtext.Nicht als Abstandhalter.
blockquote
Längeres Zitat einer Quelle.Nicht nur für Einzug.

Beziehungen

ul / ol
Ungeordnete oder geordnete Liste.Direkte Kinder sind Einträge.
li
Eintrag innerhalb einer Liste.Nicht frei neben der Liste.
figure
Abbildung mit eigener Einheit.Unterschrift als figcaption.
table
Datenbezug über Zeilen und Spalten.Nicht für Seitenlayout.
address
Kontakt zum Dokument oder Artikel.Nicht jede Postanschrift.

Aktion und Text

a
Verweis mit einem Ziel.Ohne href kein echter Link.
button
Aktion in der aktuellen Oberfläche.Nicht als Klick-div nachbauen.
label
Sichtbarer Name eines Feldes.for muss zur id passen.
time
Zeitpunkt oder Dauer.datetime maschinenlesbar setzen.
strong / em
Wichtigkeit oder Betonung.Nicht nur für Fettdruck oder Kursiv.

Kopierbares Gerüst

Der Code hinter dem Röntgenbild

Native Elemente liefern die Grundbedeutung. Namen ergänzen Sie dort, wo mehrere gleichartige Bereiche sonst nicht unterscheidbar wären.

HTML dokument.html

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

  <header>
    <p>Magazin</p>
    <nav aria-label="Hauptnavigation">
      <ul>
        <li><a href="/">Start</a></li>
        <li><a href="/themen">Themen</a></li>
      </ul>
    </nav>
  </header>

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

    <section aria-labelledby="neu">
      <h2 id="neu">Neu im Magazin</h2>
      <article>
        <h3>Gute Formulare</h3>
        <p>Veröffentlicht am
          <time datetime="2026-09-08">8. September 2026</time>.
        </p>
      </article>
    </section>

    <aside aria-labelledby="passend">
      <h2 id="passend">Passend dazu</h2>
      <ul>
        <li><a href="/formulare">Formulare prüfen</a></li>
      </ul>
    </aside>
  </main>

  <footer>
    <a href="/kontakt">Kontakt</a>
    <a href="/impressum">Impressum</a>
  </footer>
</body>

Prüffolge: CSS ausblenden → Bereiche auflisten → Überschriften nach Rang durchlaufen. Inhalt, Landmarken und Gliederung müssen dieselben Beziehungen zeigen.

Aus dem Prüfbericht

Drei Stellen der Layoutvorlage

Zum Mitnehmen

Die Layoutvorlage, korrigiert

Aus divs mit erfundenen Rollen werden nav, ul und li.

Korrektur in 3 Schritten ansehen
  1. Aus dem div-Menü wird eine Navigation

    nav, ul und li bringen Bereich, Liste und Eintrag von selbst mit. Die erfundene Rolle entfällt ersatzlos.

    KorrekturvergleichSchritt 1 · HTML

    Vorher

    <div role="menue">
      <div class="eintrag">Start</div>
      <div class="eintrag">Kontakt</div>
    </div>

    Nachher

    <nav aria-label="Hauptmenü">
      <ul>
        <li><a href="/">Start</a></li>
        <li><a href="/kontakt">Kontakt</a></li>
      </ul>
    </nav>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Ein Vorleseprogramm sagt „Hauptmenü, Navigation, Liste mit zwei Einträgen“.

  2. Den verirrten Menüpunkt einsortieren

    Ein li außerhalb einer ul gehört zu keiner Liste. Innerhalb zählt es mit und wird als Eintrag angesagt.

    KorrekturvergleichSchritt 2 · HTML

    Vorher

    <ul>
      <li><a href="/">Start</a></li>
    </ul>
    <li><a href="/kontakt">Kontakt</a></li>

    Nachher

    <ul>
      <li><a href="/">Start</a></li>
      <li><a href="/kontakt">Kontakt</a></li>
    </ul>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Ein Vorleseprogramm zählt so viele Einträge, wie Sie Menüpunkte sehen.

  3. Den beschreibenden Satz aus der Liste holen

    Direkt in einer ul stehen nur li. Der Satz bleibt lesbar, wird aber nicht mehr als weiterer Menüpunkt ausgegeben.

    KorrekturvergleichSchritt 3 · HTML

    Vorher

    <ul>
      <p>Schnellzugriff</p>
      <li><a href="/">Start</a></li>
    </ul>

    Nachher

    <p>Schnellzugriff</p>
    <ul>
      <li><a href="/">Start</a></li>
    </ul>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Die angesagte Zahl der Einträge stimmt mit den sichtbaren Menüpunkten überein.

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.