💯 HTML lernen – kostenlos, werbefrei im Inhalt, ohne Anmeldung 🍃 Keine Cookies · 👁️ Kein Tracking · 🔓 Keine Anmeldung

Barrierefreies HTML & ARIA

Das lernst du in dieser Lektion

  • Du weißt, wem Barrierefreiheit nützt – weit über den Kreis dauerhaft eingeschränkter Menschen hinaus.
  • Du schreibst alt-Texte mit Strategie: informativ, funktional oder bewusst leer.
  • Du machst Seiten per Tastatur bedienbar und weißt, warum tabindex über 0 tabu ist.
  • Du wendest die erste ARIA-Regel an und kennst die wichtigsten ARIA-Attribute.
  • Du ordnest WCAG, EN 301 549, BITV 2.0 und das BFSG rechtlich ein.

Stell dir vor, ein Sechstel deiner Besucher stünde vor verschlossener Tür – und du wüsstest es nicht einmal. Genau das passiert auf unzähligen Webseiten: Bilder ohne Beschreibung, Buttons, die nur per Maus funktionieren, Formulare ohne Beschriftung. Die gute Nachricht dieser Lektion: Barrierefreiheit ist im Web kein teures Extra, sondern zum größten Teil schlicht korrekt geschriebenes HTML. Das meiste Handwerkszeug besitzt du also bereits – hier lernst du, es bewusst einzusetzen.

Wer profitiert? Die Rampen-Analogie

Die abgesenkte Bordsteinkante wurde für Rollstühle erfunden – benutzt wird sie von Eltern mit Kinderwagen, Reisenden mit Rollkoffern und Paketboten mit Sackkarren. Dieses Muster (im Englischen „Curb-Cut-Effekt“) gilt im Web genauso, denn Einschränkungen sind selten schwarz-weiß. Sie treten in drei Formen auf:

  • Permanent: eine blinde Nutzerin, ein Mensch mit einem Arm, jemand mit dauerhafter motorischer Einschränkung.
  • Temporär: der gebrochene Arm im Gips, die Augen-OP, die Migräne, die grelles Licht unerträglich macht.
  • Situativ: das Baby auf dem Arm, die pralle Sonne auf dem Display, das Video ohne Ton in der lauten S-Bahn.

Wer für den ersten Fall baut, hilft automatisch allen dreien – und nebenbei auch Suchmaschinen, denn ein Google-Crawler ist funktional ein blinder Nutzer: Er sieht keine Pixel, er liest Struktur und Text. Barrierefreiheit und SEO sind zwei Seiten derselben Medaille.

Semantisches HTML: die 80-Prozent-Basis

Aus deinem HTML erzeugt der Browser neben dem sichtbaren Layout eine zweite Datenstruktur: den Accessibility Tree, aus dem Screenreader und andere assistive Technologien die Seite vorlesen und bedienbar machen. Dieser Baum ist exakt so gut wie dein Markup. Eine saubere Überschriften-Hierarchie wird zum Inhaltsverzeichnis, Landmarks wie <nav> und <main> werden zu Sprungzielen, ein <button> wird als Schalter angekündigt und ist sofort bedienbar.

Deshalb die vielleicht wichtigste Botschaft dieser Lektion: Rund 80 Prozent der Barrierefreiheit bekommst du geschenkt, wenn du anwendest, was du in den bisherigen Lektionen gelernt hast – semantische Elemente statt div-Wüsten, echte Listen, beschriftete Formularfelder, lückenlose Überschriften. Alles Weitere in dieser Lektion baut auf diesem Fundament auf; nichts davon kann fehlende Semantik reparieren.

alt-Texte mit Strategie

Das alt-Attribut kennst du – aber gute alt-Texte sind eine Entscheidungsfrage, keine Fleißaufgabe. Frage dich bei jedem Bild: Welche Funktion hat es in diesem Kontext? Daraus ergeben sich drei Strategien:

  • Informativ: Das Bild transportiert Inhalt. Beschreibe knapp, was es in diesem Zusammenhang aussagt – ohne die Floskel „Bild von …“, denn dass es ein Bild ist, sagt der Screenreader ohnehin an.
  • Funktional: Das Bild ist ein Link oder Button, z. B. ein Lupen-Icon. Beschreibe die Aktion, nicht das Motiv: alt="Suchen", nicht alt="Lupe".
  • Dekorativ: Das Bild schmückt nur (Zierlinie, Stimmungsfoto ohne Aussage). Dann bewusst leeres alt="" – der Screenreader überspringt das Bild komplett.

Der Unterschied zwischen leerem und fehlendem alt ist entscheidend: Fehlt das Attribut ganz, lesen viele Screenreader ersatzweise den Dateinamen vor – und „IMG_20260713_0042.jpg“ hilft niemandem. alt="" ist also keine Nachlässigkeit, sondern eine aktive, korrekte Entscheidung. Und noch eine Feinheit: Dasselbe Bild kann je nach Kontext jede der drei Strategien erfordern. Ein Porträtfoto ist im Teamverzeichnis informativ („Anna Berg, Leiterin Support“), als klickbarer Profil-Link funktional („Profil von Anna Berg öffnen“) und als reine Hintergrund-Deko leer.

Drei Bilder, drei Strategien
<!-- Informativ: den Inhalt beschreiben -->
<img src="ansatz-tag3.jpg"
     alt="Sauerteigansatz am dritten Tag: deutlich sichtbare Blasen im Glas">

<!-- Funktional: die Aktion beschreiben -->
<a href="/suche">
  <img src="icon-lupe.svg" alt="Suchen">
</a>

<!-- Dekorativ: bewusst leeres alt -->
<img src="zierlinie.svg" alt="">

Im folgenden Beispiel existieren die Bilddateien absichtlich nicht – so siehst du direkt in der Vorschau, was sonst nur Screenreader-Nutzer erleben: Der Browser zeigt ersatzweise den alt-Text an. Beobachte, dass das dekorative Bild mit alt="" schlicht verschwindet, statt zu stören. Ändere die Texte und ergänze ein viertes Bild mit einer eigenen Strategie.

Probier es ausÄndere den Code – die Vorschau aktualisiert sich sofort.

Tastatur: die unterschätzte Disziplin

Viele Menschen bedienen das Web ganz ohne Maus: blinde Nutzer sowieso, aber auch Menschen mit motorischen Einschränkungen, Nutzer von Spezialgeräten wie Tastensteuerungen – und nicht zuletzt Power-User. Der Maßstab ist einfach: Alles, was klickbar ist, muss per Tab erreichbar und per Enter oder Leertaste auslösbar sein.

Die Fokus-Reihenfolge folgt dabei der Reihenfolge im Quelltext. Das ist ein Feature, kein Zufall: Ist dein HTML logisch aufgebaut, stimmt die Tab-Reihenfolge automatisch. Eingreifen kannst du mit dem tabindex-Attribut – aber nur zwei Werte sind je sinnvoll:

  • tabindex="0" nimmt ein Element, das von Natur aus nicht fokussierbar ist, an seiner natürlichen Position in die Tab-Reihenfolge auf.
  • tabindex="-1" macht ein Element per Skript fokussierbar (etwa das Ziel eines Sprunglinks oder eine Fehlerbox), ohne es in die Tab-Reihenfolge einzuhängen.

Und tabindex="1" oder höher? Niemals. Positive Werte erzeugen eine zweite, parallele Reihenfolge, die vor allen normalen Elementen abgearbeitet wird. Der Fokus springt dann kreuz und quer über die Seite, und jedes später eingefügte Element macht das Kartenhaus unwartbarer. Wer die Reihenfolge ändern will, ändert die Reihenfolge im Quelltext – nicht die Nummerierung.

Damit Tastaturbedienung funktioniert, muss der Fokus außerdem sichtbar sein: Der Rahmen, den der Browser um das aktive Element zeichnet, ist für Tastaturnutzer das, was der Mauszeiger für alle anderen ist. Wie man ihn gestaltet, ist ein CSS-Thema – hier nur der Merkposten: outline: none ohne gleichwertigen Ersatz ist ein Barrierefreiheits-Bug.

Die erste ARIA-Regel

ARIA ist ein Satz von Attributen, mit denen du dem Accessibility Tree zusätzliche Informationen mitgibst: Rollen, Namen, Zustände. Das klingt mächtig – und genau darin liegt die Gefahr. Die offizielle erste Regel von ARIA lautet sinngemäß: Benutze kein ARIA, wenn es ein natives HTML-Element gibt, das dasselbe leistet. Oder zugespitzt: Kein ARIA ist besser als falsches ARIA.

Das Paradebeispiel ist der nachgebaute Button. Ein <div role="button"> klingt im Screenreader wie ein Schalter – aber die Rolle ist nur ein Etikett. Sie liefert weder Tastatur-Fokus noch das Auslösen per Enter und Leertaste, kein disabled, keine Formular-Integration. All das müsstest du mit tabindex und JavaScript mühsam nachbauen – und vergisst dabei garantiert einen Teil. Das native <button> bringt alles gratis mit:

Nachbau gegen Original
<!-- Sieht nach Button aus, ist aber nur ein Etikett:
     kein Fokus, keine Tastatur, kein disabled -->
<div role="button" onclick="senden()">Absenden</div>

<!-- Alles inklusive: Fokus, Enter, Leertaste, Semantik -->
<button type="button" onclick="senden()">Absenden</button>

Der Unterschied ist keine Theorie – du kannst ihn sofort fühlen: Klicke in die Vorschau unten und drücke dann mehrmals Tab. Der Link und die echten Buttons erhalten nacheinander den Fokus (sichtbar am Rahmen), das div mit role="button" wird schlicht übersprungen, als wäre es gar nicht da.

Probier es ausÄndere den Code – die Vorschau aktualisiert sich sofort.

ARIA-Attribute, die du wirklich brauchst

Nach so viel Warnung die Entwarnung: Richtig eingesetzt ist ARIA wertvoll – nämlich dort, wo HTML allein keine Ausdrucksmöglichkeit hat. Diese sieben Attribute decken den Alltag ab:

AttributWas es tutMini-Beispiel
aria-labelGibt einem Element einen unsichtbaren Namen, wenn kein sichtbarer Text existiert.<button aria-label="Menü öffnen">☰</button>
aria-labelledbyBenennt ein Element durch Verweis auf ein anderes, sichtbares Element (per id).<section aria-labelledby="kap2">
aria-describedbyVerknüpft eine ergänzende Beschreibung, z. B. einen Hinweistext unter einem Eingabefeld.<input aria-describedby="pw-hinweis">
aria-hidden="true"Versteckt ein Element vor assistiven Technologien, z. B. ein rein dekoratives Icon.<span aria-hidden="true">→</span>
aria-expandedMeldet am auslösenden Button, ob der zugehörige Bereich auf- oder zugeklappt ist.<button aria-expanded="false">Filter</button>
aria-current="page"Markiert in einer Navigation den Punkt, auf dem man sich gerade befindet.<a href="/blog" aria-current="page">
aria-live="polite"Lässt Screenreader Änderungen in diesem Bereich automatisch vorlesen, z. B. Statusmeldungen.<div aria-live="polite">3 Treffer</div>

Ein letztes Attribut in diesem Abschnitt ist gar kein ARIA, aber genauso wichtig: lang. Du kennst es vom <html lang="de"> – es steuert, mit welcher Aussprache Screenreader vorlesen. Weniger bekannt: Es funktioniert auch mitten im Text für Sprachwechsel. Ohne Auszeichnung liest eine deutsche Screenreader-Stimme englische Begriffe in deutscher Lautung vor – aus „One-Page-Design“ wird unverständliches Kauderwelsch. Mit <span lang="en">One-Page-Design</span> wechselt die Stimme korrekt ins Englische.

Der rechtliche Rahmen – ohne Angstmache

Barrierefreiheit ist längst nicht mehr nur guter Stil, sondern zunehmend Pflicht – und der Rahmen ist übersichtlicher, als er auf den ersten Blick wirkt. Die fachliche Grundlage bilden die WCAG, der internationale Standard mit den drei Konformitätsstufen A, AA und AAA (angestrebt wird in der Praxis fast immer AA). Die europäische Norm EN 301 549 übernimmt die WCAG als technische Messlatte für Europa. In Deutschland gilt für öffentliche Stellen die BITV 2.0 – und seit dem 28. Juni 2025 verpflichtet das Barrierefreiheitsstärkungsgesetz (BFSG) auch viele private Anbieter: Onlineshops und Verbraucher-Dienstleistungen wie Banking, Ticketbuchung oder E-Book-Portale müssen barrierefrei nutzbar sein.

Grund zur Panik? Nein – eher Grund zur Gelassenheit für alle, die sauber arbeiten. Wer semantisches HTML schreibt, Bilder korrekt beschreibt und Tastaturbedienung sicherstellt, erfüllt bereits einen erheblichen Teil der Anforderungen. Barrierefreiheit ist kein Zusatzprojekt am Ende, sondern ein Qualitätsmerkmal, das du von der ersten Zeile an mitbaust – und genau das übst du in diesem Kurs ohnehin schon.

Zusammenfassung

In der nächsten Lektion – „Formulare für Profis“ – wendest du vieles davon sofort an: eingebaute Validierung, durchdachte Gruppierung und Fehlermeldungen, die wirklich bei allen ankommen.

Teste dein Wissen

5 kurze Fragen zu dieser Lektion – die Auswertung passiert direkt im Browser.

1 Ein rein dekoratives Zierbild – wie lautet das korrekte alt-Attribut?
2 Warum solltest du <button> statt <div role="button"> verwenden?
3 Was bewirkt tabindex="5"?
4 Mit welchem Attribut lässt du Screenreader dynamische Statusmeldungen automatisch vorlesen?
5 Was regelt das Barrierefreiheitsstärkungsgesetz (BFSG)?

Weiter: Formulare für Profis →