Fehlendes lang-Attribut: Fehler erklärt und behoben
Also called: Seitensprache nicht festgelegt, HTML-Element ohne lang-Attribut, Fehlende Dokumentsprache
Definition
Ein fehlendes lang-Attribut bedeutet, dass das html-Element einer Seite kein lang-Attribut hat – oder ein leeres bzw. ungültiges. Browser und Screenreader können dann nicht erkennen, in welcher Sprache die Seite geschrieben ist.
Ein fehlendes lang-Attribut ist der Prüfbericht-Fehler für eine Seite, deren <html>-Element die Seitensprache nicht angibt. Tools melden ihn als „HTML-Element hat kein lang-Attribut“, „Seitensprache nicht festgelegt“ oder englisch „html has no lang attribute“. Die Lösung ist ein einziges Attribut – ohne es liest ein Screenreader Ihre deutsche Seite womöglich mit englischer Aussprache vor.
Was es bedeutet
WCAG 3.1.1 Sprache der Seite ist ein Kriterium der Stufe A in WCAG 2.2. Die Standardsprache jeder Webseite muss programmatisch ermittelbar sein. In HTML übernimmt das das lang-Attribut am html-Element (W3C-Technik H57).
Warum das zählt: Screenreader und Sprachausgaben laden die Ausspracheregeln der angegebenen Sprache. Ist die Seitensprache nicht festgelegt, greift die Software auf die Standardstimme des Geräts zurück. Eine deutsche Seite mit englischer Stimme ist kaum zu verstehen – umgekehrt ebenso. Browser nutzen die Angabe außerdem, um Schriftzeichen korrekt darzustellen und automatisch zu übersetzen, Mediaplayer, um Untertitel richtig anzuzeigen.
Laut W3C profitieren vor allem diese Gruppen:
| Wer | Was das lang-Attribut bewirkt |
|---|---|
| Screenreader- und Sprachausgabe-Nutzer | Richtige Aussprache und Stimme |
| Menschen, denen das Lesen schwerfällt | Vorlesefunktion spricht Wörter korrekt aus |
| Menschen mit kognitiven, sprachlichen oder Lernbeeinträchtigungen | Verlässliche Vorleseunterstützung |
| Menschen, die auf Untertitel angewiesen sind | Korrekte Darstellung der Untertitel |
Prüftools melden das Attribut auch dann, wenn es zwar vorhanden, aber leer (lang="") oder kein gültiger Sprachcode ist. Der Wert muss BCP 47 entsprechen – also die bekannten Kürzel wie de, en oder de-AT.
Praxisbeispiele
<!-- Fehlendes lang-Attribut: Sprache unbekannt -->
<!DOCTYPE html>
<html>
<head><title>Öffnungszeiten</title></head>
<!-- Behoben: deutsche Seite -->
<html lang="de">
<!-- Behoben: österreichisches Deutsch mit Regionscode -->
<html lang="de-AT">
<!-- Englischer Begriff in der deutschen Seite (3.1.2) -->
<p>Unser Leitsatz: <span lang="en">Accessibility first</span></p>lang am html-Element jeder Seite setzen, die überwiegende Sprache des Inhalts angeben und jeder Sprachversion einer mehrsprachigen Website ihren eigenen Code geben.
lang leer lassen, eigene Codes wie lang="deutsch" erfinden oder lang="en" aus dem Original-Template übernehmen, obwohl der Inhalt inzwischen deutsch ist.
So beheben Sie ein fehlendes lang-Attribut
Das lang-Attribut ist ein schneller Erfolg bei jeder Prüfung nach dem Barrierefreiheitsstärkungsgesetz, denn dieselbe fehlende Einstellung betrifft meist alle Seiten. Wenn Sie schon im Template arbeiten, prüfen Sie gleich weitere seitenweite Fehler wie einen leeren Button im Kopfbereich oder eine übersprungene Überschriftenebene im Footer.
Häufige Fragen
Was bedeutet „HTML-Element hat kein lang-Attribut“?
Das <html>-Tag der Seite gibt nicht an, in welcher Sprache der Inhalt verfasst ist. Hilfstechnologien raten dann oder nutzen ihre Standardsprache – das führt oft zu falscher Aussprache.
Ist ein fehlendes lang-Attribut ein WCAG-Verstoß?
Ja. Es verstößt gegen 3.1.1 Sprache der Seite, ein Kriterium der Stufe A, weil die Seitensprache nicht programmatisch ermittelbar ist. Stufe A ist das Mindestniveau der WCAG-Konformität.
Soll ich „de“ oder „de-DE“ verwenden?
Beides ist gültig. Der Hauptcode de erfüllt die WCAG. Ein Regionscode wie de-DE, de-AT oder de-CH liefert Zusatzinformationen, die manche Stimmen und Rechtschreibprüfungen nutzen – er ist aber optional.
Braucht jede Seite ein eigenes lang-Attribut?
Ja. Das Kriterium gilt für jede einzelne Webseite. In der Praxis setzen Sie es einmal im gemeinsamen Template, und jede Sprachversion gibt ihren eigenen Code aus.
Wie finde ich Seiten ohne lang-Attribut?
Meist verursacht ein Template den Fehler auf der ganzen Website, daher genügt zum Einstieg eine Seite pro Template und Sprache. Der kostenlose WCAG-Scanner zeigt ihn schon beim ersten Scan, zusammen mit anderen Fehlern der Stufe A.
Related terms
Fehlendes Alt-Attribut: Fehler erklärt und behoben
Ein fehlendes Alt-Attribut bedeutet, dass ein img-Element (oder ein Bild-Button bzw. Bereich einer Imagemap) gar kein alt-Attribut hat. Assistive Technologien wissen dann nicht, ob das Bild wichtig oder dekorativ ist, und lesen unter Umständen den Dateinamen vor.
Read definition: Fehlendes Alt-Attribut: Fehler erklärt und behobenLeerer Button: Fehler verstehen und beheben
Ein leerer Button ist eine Schaltfläche ohne zugänglichen Namen – ohne Text, ohne aria-label und ohne Alternativtext im enthaltenen Bild. Screenreader sagen nur „Schalter“ an, nicht aber, was er bewirkt.
Read definition: Leerer Button: Fehler verstehen und behebenÜbersprungene Überschriftenebene: einfach erklärt
Eine übersprungene Überschriftenebene ist ein Sprung um mehr als eine Stufe nach unten in der Überschriften-Hierarchie, etwa von h2 direkt zu h4. Wer per Screenreader über Überschriften navigiert, vermutet dann einen fehlenden Abschnitt.
Read definition: Übersprungene Überschriftenebene: einfach erklärt