Kurz: Semantisches HTML bedeutet: Du wählst Elemente nach ihrer Bedeutung, nicht nach dem Aussehen. Das hilft Screenreadern, Suchmaschinen, Tastaturnutzern und deinem zukünftigen Ich.
Teil des Kurses HTML + CSS
Kapitel 9 von 27 im Kurs HTML + CSS. Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.
Semantisches HTML bedeutet: Du wählst Elemente nach ihrer Bedeutung, nicht nach dem Aussehen. Das hilft Screenreadern, Suchmaschinen, Tastaturnutzern und deinem zukünftigen Ich.
Gliederungselemente
<header>
<h1>Mein Blog</h1>
<nav aria-label="Hauptmenü"><a href="#">Start</a> <a href="#">Archiv</a> <a href="#">Kontakt</a></nav>
</header>
<main>
<article>
<h2>Ein toller Artikel</h2>
<p><time datetime="2025-03-08">8. März 2025</time> von Mia</p>
<section>
<h3>Einleitung</h3>
<p>Der Text beginnt hier.</p>
</section>
<section>
<h3>Fazit</h3>
<p>Und endet dort.</p>
</section>
</article>
<aside>
<h2>Das könnte dich auch interessieren</h2>
<ul><li><a href="#">Anderer Artikel</a></li></ul>
</aside>
</main>
<footer><p>© 2025 Mia. <a href="#">Impressum</a> · <a href="#">Datenschutz</a></p></footer>
<style>
header, footer { background: #e0e7ff; padding: 8px 12px; }
article { background: #f8fafc; padding: 8px 12px; border: 1px solid #cbd5e1; }
aside { background: #fef9c3; padding: 8px 12px; margin-top: 8px; }
</style>| Element | Bedeutung |
|---|---|
<header> | Kopfbereich einer Seite oder eines Abschnitts |
<nav> | wichtige Navigation |
<main> | der Hauptinhalt, genau einmal pro Seite |
<article> | in sich geschlossener Beitrag (Blogartikel, Kommentar, Produktkarte) |
<section> | thematischer Abschnitt, mit Überschrift |
<aside> | Randbemerkung, Seitenleiste |
<footer> | Fußbereich |
<figure>, <figcaption> | Abbildung mit Beschriftung |
<address> | Kontaktinformation |
<details>, <summary> | aufklappbarer Bereich |
<dialog> | Dialogfenster |
div und span: neutrale Container
Wenn kein passendes semantisches Element existiert, nimmst du <div> (Block) oder <span> (im Text). Sie haben keine Bedeutung und dienen als Haken für CSS und JavaScript.
<p>Der Preis beträgt <span style="color:crimson;font-weight:bold">9,99 €</span>.</p>Faustregel: Gibt es ein Element, das die Bedeutung ausdrückt, nimm es. Erst danach div/span.
Aufklappbare Bereiche ohne JavaScript
<details>
<summary>Wie lange dauert der Versand?</summary>
<p>In Deutschland dauert er in der Regel 2 bis 3 Werktage.</p>
</details>
<details open>
<summary>Kann ich zurückschicken?</summary>
<p>Ja, innerhalb von 30 Tagen.</p>
</details><details> ist per Tastatur bedienbar und für Screenreader verständlich: ideal für FAQ.
Dialoge
<button id="auf">Dialog öffnen</button>
<dialog id="d">
<form method="dialog">
<p>Möchtest du wirklich löschen?</p>
<button value="nein">Abbrechen</button>
<button value="ja">Löschen</button>
</form>
</dialog>
<script>
const d = document.getElementById("d");
document.getElementById("auf").onclick = () => d.showModal();
d.addEventListener("close", () => console.log("Antwort:", d.returnValue));
</script>showModal() verdunkelt den Hintergrund, sperrt ihn für Klicks, verwaltet den Fokus und schließt mit Esc.
Landmarks und Screenreader
Semantische Elemente erzeugen automatisch Landmarks (Orientierungspunkte). Screenreader-Nutzer springen damit direkt zu “Hauptinhalt” oder “Navigation”:
| Element | Landmark |
|---|---|
<header> (oberste Ebene) | banner |
<nav> | navigation |
<main> | main |
<aside> | complementary |
<footer> (oberste Ebene) | contentinfo |
<form> mit Namen, <section> mit Namen | form, region |
Überschriften-Hierarchie
Die Überschriften bilden das Inhaltsverzeichnis der Seite. Prüfe es: Wenn du nur die Überschriften liest, sollte die Seite verständlich sein. Keine Ebene überspringen, nur eine <h1>.
Typische Fehler
- Alles aus
divs bauen (“Div-Suppe”) <section>ohne Überschrift- Mehrere
<main>oder<main>im<article> <nav>für jede Linkgruppe (nur für wichtige Navigation)- Klickbare
divs statt<button>oder<a>
Merke
- Semantische Elemente:
header,nav,main,article,section,aside,footer - Genau ein
<main>;<section>braucht eine Überschrift <details>/<summary>und<dialog>bringen Funktion ohne viel JavaScriptdiv/spannur, wenn nichts Passenderes existiert- Gute Struktur hilft Screenreadern, SEO und Wartbarkeit
Übungsaufgabe
Gestalte die Struktur einer Blogseite mit Kopf, Navigation, zwei Artikeln, Seitenleiste und Fuß. Verwende nur semantische Elemente.
Quiz zur Selbstkontrolle
Wie oft darf <main> pro Seite vorkommen?
- Einmal (richtig)
- Beliebig oft
- Zweimal
- Nur in Artikeln
Wofür ist <article>?
- Für in sich geschlossene Inhalte wie einen Blogbeitrag (richtig)
- Für das Menü
- Für den Seitenfuß
- Für Werbung
Wofür nimmst du <details>?
- Für aufklappbare Bereiche wie FAQ (richtig)
- Für Dateidetails
- Für Tabellen
- Für Kommentare
Weiter im Kurs
Zurück: Formulare
Weiter: Audio, Video und eingebettete Inhalte
Alle Kapitel: HTML + CSS im Überblick