Markup Language

Semantic HTML

Semantic HTML verwendet Elemente, die ihre Bedeutung beschreiben. Dies macht Seiten barrierefrei, auffindbar und einfacher zu warten – ohne zusätzliche Kosten.

beginner14 min readUpdated 15. Sept. 2026
article.html
html
<!-- article.html -->
<article>
  <header>
    <h1>How DNS works</h1>
    <p><time datetime="2026-09-15">September 15, 2026</time></p>
  </header>
  <p>The Domain Name System turns names into addresses.</p>
  <nav aria-label="Related">
    <a href="/guides/http">HTTP / HTTPS</a>
  </nav>
</article>
Zweck
Bedeutung beschreiben
Barrierefreiheit
Wird von Screenreadern genutzt
SEO
Wird von Crawlern genutzt
Inhalt
article, section, aside

Warum es wichtig ist

Warum Semantik wichtig ist

Besser für assistierende Technologien

Screenreader und andere Tools navigieren über Landmarks, Überschriften und Rollen, die semantische Elemente automatisch bereitstellen.

Besser für Suchmaschinen

Crawler nutzen Überschriften und Strukturen, um eine Seite zu verstehen, was das Ranking und Rich Results unterstützt.

Einfacher zu warten

Bedeutungsvolles Markup ist auf einen Blick lesbar, sodass du und dein Team die Struktur ohne Kommentare verstehen.

Das Gesamtbild

Die drei Vorteile von semantic HTML

Barrierefreiheit, Auffindbarkeit und Wartbarkeit verbessern sich, wenn Elemente beschreiben, was sie enthalten.

Landmarks

Struktur

header, nav, main, aside und footer definieren die Regionen einer Seite.

Inhaltselemente

Bedeutung

article, section, figure und time beschreiben, was ein Inhalt ist, nicht wie er aussieht.

Überschriften

Gliederung

Eine logische h1 bis h6 Hierarchie gibt der Seite eine navigierbare Gliederung.

Semantik auf einen Blick

Die Kern-Elemente

header und footer

Einleitende oder navigationsbezogene Inhalte sowie abschließende Inhalte für eine Seite oder einen Abschnitt.

nav

Ein Block von Navigationslinks, bei Wiederholungen am besten mit einem aria-label gekennzeichnet.

main

Der Hauptinhalt der Seite; wird nur einmal verwendet und von Screenreadern direkt angesteuert.

article

Selbstständiger Inhalt, der auch alleine stehen könnte, wie ein Post oder ein Kommentar.

section

Eine thematische Gruppierung, normalerweise mit einer Überschrift.

button vs a

Links navigieren; Buttons führen Aktionen aus. Nutze das Element, das zum Zweck passt.

Eine kurze Geschichte

Von Layout-Tabellen zur Bedeutung

  1. 1998

    Layout-Tabellen

    Frühe Seiten nutzen Tabellen und Spacer-Images, um das Layout zu steuern.

    98
  2. 2000

    Div-Suppe

    CSS-Layouts ersetzen Tabellen, aber generische divs besitzen keine Bedeutung.

    00
  3. 2011

    HTML5 Semantik

    header, nav, main, article und section werden zum Standard.

    11
  4. 2014

    Landmark-Rollen

    Accessibility-Tools mappen semantische Elemente auf ARIA Landmark-Rollen.

    14
  5. Heute

    Eine Grundvoraussetzung

    Semantisches Markup ist Teil professioneller Front-End-Arbeit.

    Heute

Der vollständige Leitfaden

Semantic HTML: Alles was Sie wissen müssen

Was ist semantisches HTML?

Semantisches HTML bedeutet, Elemente so zu wählen, dass sie beschreiben, was der Inhalt ist und nicht, wie er aussieht. Ein <nav> ist ein Navigationsblock. Ein <article> ist ein eigenständiger Inhalt. Ein <button> führt eine Aktion aus. Diese Elemente vermitteln eine Bedeutung, auf die Browser, assistierende Technologien und Suchmaschinen reagieren können.

Die Alternative ist eine Seite, die aus generischen <div>- und <span>-Elementen besteht, oft als „Div-Suppe“ bezeichnet. Sie kann auf dem Bildschirm identisch aussehen, ist aber für Screenreader undurchsichtig und schwerer zu warten. Semantik kostet nichts und zahlt sich überall aus.

Landmarks

Landmark-Elemente definieren die Hauptbereiche einer Seite und ermöglichen es Nutzern, zwischen diesen zu springen.

<!-- layout.html -->
<body>
  <header>
    <a href="/">hackweb</a>
    <nav aria-label="Main">
      <a href="/guides">Guides</a>
    </nav>
  </header>

  <main>
    <h1>Guides</h1>
  </main>

  <footer>
    <p>© 2026 hackweb.dev</p>
  </footer>
</body>
  • header — einleitende Inhalte für die Seite oder einen Abschnitt.
  • nav — ein Block mit Navigationslinks. Kennzeichnen Sie wiederkehrende Navigationsbereiche mit aria-label.
  • main — der primäre Inhalt; wird nur einmal verwendet und von Screenreadern direkt angesteuert.
  • aside — Inhalte, die tangential zum Hauptinhalt stehen.
  • footer — abschließende Inhalte wie Copyright-Informationen oder weiterführende Links.

Nutzer von Screenreadern können Landmarks auflisten und zwischen ihnen springen, wodurch eine lange Seite in eine navigierbare Struktur verwandelt wird.

Überschriften

Überschriften bilden die Gliederung der Seite. Verwenden Sie ein einzelnes <h1> für das Hauptthema, gefolgt von <h2> und <h3> für Abschnitte und Unterabschnitte.

<!-- outline.html -->
<h1>CSS Grid</h1>
<h2>Tracks and lines</h2>
<h3>Defining columns</h3>
<h3>Placing items</h3>
<h2>Responsive grids</h2>

Wählen Sie eine Überschriftenebene niemals aufgrund ihrer Größe aus. Nutzen Sie CSS für das Erscheinungsbild und Überschriften für die Struktur. Das Überspringen von Ebenen, wie etwa der Sprung von h1 zu h4, macht die Gliederung für assistierende Technologien unverständlich.

Inhaltselemente

Neben Landmarks bietet HTML Elemente für spezifische Arten von Inhalten.

  • article — eigenständige Inhalte, die auch alleine stehen könnten, wie ein Post oder ein Kommentar.
  • section — eine thematische Gruppe, meist mit einer Überschrift.
  • figure und figcaption — Medien mit einer Bildunterschrift.
  • blockquote und cite — ein Zitat und dessen Quelle.
  • time — ein Datum oder eine Uhrzeit mit einem maschinenlesbaren datetime.
  • address — Kontaktinformationen.
  • ul, ol, dl — ungeordnete, geordnete und Beschreibungslisten.
<!-- post.html -->
<article>
  <h1>What is DNS?</h1>
  <p><time datetime="2026-09-15">September 15, 2026</time></p>

  <figure>
    <img src="/dns.svg" alt="A DNS lookup walks the name hierarchy" width="800" height="400" />
    <figcaption>Resolving a name step by step.</figcaption>
  </figure>

  <blockquote cite="https://example.com">
    <p>DNS is the internet's phone book.</p>
  </blockquote>
</article>

Die Verwendung des richtigen Elements bedeutet, dass Sie das korrekte Standardverhalten und die richtige Semantik erhalten, ohne zusätzlichen Aufwand.

Dies ist der häufigste semantische Fehler.

  • Verwende <a href> für die Navigation zu einer URL. Dies unterstützt den Rechtsklick, das Öffnen in einem neuen Tab, Lesezeichen und die Aktivierung per Tastatur.
  • Verwende <button> für Aktionen, die einen Zustand ändern oder Daten übermitteln. Diese sind fokussierbar, per Tastatur bedienbar und werden als Button angesagt.
<!-- controls.html -->
<a href="/guides/css">Read the CSS guide</a>
<button type="button" onclick="toggleMenu()">Toggle menu</button>

Ein <div onclick="..."> sieht klickbar aus, ist aber nicht per Tastatur erreichbar, wird nicht als Steuerelement angesagt und ist nicht fokussierbar. Um dies zu beheben, müsste man alles manuell nachbauen, was ein Button standardmäßig kostenlos mitbringt.

Formulare und Tabellen

Formulare haben ihre eigene Semantik: <form>, <label>, <fieldset>, <legend>, <input>, <select> und <textarea>. Jedes Eingabefeld sollte ein Label haben, und das Gruppieren zusammengehöriger Steuerelemente mit fieldset und legend hilft allen Nutzern. Der Guide zu Formularen & Validierung geht detaillierter darauf ein.

Tabellen sind für tabellarische Daten gedacht, nicht für das Layout. Verwende <table>, <thead>, <tbody>, <th> zusammen mit scope und <caption>, damit die Beziehung zwischen Zellen und Headern klar ersichtlich ist.

Wann ein div völlig in Ordnung ist

Generische Elemente sind keine Sünde. Verwenden Sie <div> und <span>, wenn Sie tatsächlich einen Container für das Styling oder das Layout benötigen, der keine semantische Bedeutung hat. Die Regel ist einfach: Greifen Sie zu einem semantischen Element, wenn eines existiert, und nutzen Sie ein div, wenn keines passt. Das Hinzufügen von section ohne Überschrift oder nav um einen einzelnen, nicht zusammenhängenden Link erzeugt eher Rauschen als Bedeutung.

Best Practices

  • Verwende nur ein h1 und halte die Überschriftenebenen in der richtigen Reihenfolge.
  • Strukturiere Seiten mit header, nav, main und footer.
  • Nutze article und section für Inhalte anstelle von div.
  • Bevorzuge button für Aktionen und Anker für die Navigation.
  • Gib jedem Bild einen aussagekräftigen alt-Text oder alt="", falls es rein dekorativ ist.
  • Beschrifte Formularsteuerelemente und gruppiere zusammengehörige Felder.
  • Validiere dein HTML, damit der Parser keine Fehler korrigieren muss.

Häufige Fehler

  • Alles nur aus divs und spans aufbauen.
  • Ein div mit einem onclick verwenden, anstatt eines buttons.
  • Überschriften-Level nach der Schriftgröße auswählen.
  • Mehrere h1-Elemente ohne ein klares Hauptthema.
  • Tabellen für das Layout verwenden.
  • Einzelne Links in ein nav einschließen oder section ohne Überschrift verwenden.

Wie geht es weiter?

Semantik ist das Fundament für eine barrierefreie und auffindbare Seite. Baue auf den HTML-Grundlagen auf, mache deine Seite mit dem Accessibility-Guide inklusiv, unterstütze sie mit SEO-Grundlagen und vervollständige das Gesamtbild mit Formularen & Validierung.

Interaktive Steuerelemente

Ein Button ist fokussierbar, tastaturbedienbar und wird korrekt angesagt. Ein div mit einem Click-Handler ist nichts davon.

Bevorzugt
<button type="button" onclick="save()">
  Save
</button>
Vermeiden
<div class="btn" onclick="save()">
  Save
</div>

Strukturierung einer Seite

Landmarks und Inhaltselemente geben der Seite Bedeutung und machen sie für assistierende Technologien navigierbar.

Bevorzugt
<header>...</header>
<nav aria-label="Main">...</nav>
<main>
  <article>...</article>
</main>
<footer>...</footer>
Vermeiden
<div class="header">...</div>
<div class="nav">...</div>
<div class="content">
  <div class="post">...</div>
</div>

Häufig gestellte Fragen

Häufig gestellte Fragen

Keep learning

Related topics from the roadmap.

$ Lernen Sie jetzt

Bereit, Semantic HTML zu lernen?

Unser interaktives Tutorial führt Sie Schritt für Schritt durch Semantic HTML — mit Quizzen und echtem Code, den Sie im Browser ausführen können.