WCAGdesk
axe-core: html-has-lang · WCAG 3.1.1 Language of Page · Stufe A

Wie Sie das „html-has-lang“-Problem beheben

Die axe-core-Regel html-has-lang schlägt fehl, wenn das Wurzelelement <html> kein lang-Attribut hat. Ohne dieses kann der Screenreader die richtige Aussprache-Engine nicht wählen. WCAG 2.2 (3.1.1, Stufe A) verlangt, die Seitensprache programmatisch zu setzen.

Was axe-core prüft

axe-core meldet, wenn <html> kein lang (oder ein leeres) hat. Die Begleitregel html-lang-valid prüft, dass der Wert ein gültiger BCP-47-Code wie de oder en ist.

Welcher Norm das entspricht

WCAG 2.23.1.1 Language of Page (Stufe A)
EN 301 5499.3.1.1
BFSG / EAABFSG § 12 i. V. m. EN 301 549 · EAA Anhang I
KategorieSprache

Warum es zählt

In einem deutschen Shop ohne lang="de" liest ein Screenreader deutschen Text mit englischer Phonetik vor — unverständlich. Es ist ein Ein-Zeilen-Fix; ihn offen zu lassen wirkt in einer BFSG-Bewertung wie schlichte Nachlässigkeit.

Häufige Ursachen

  • <html> ganz ohne lang
  • Ein fest verdrahtetes lang="en" auf deutschen Seiten
  • Ungültige Werte wie lang="german" statt de
  • Locale wird vom CMS/Template nicht durchgereicht

Wie Sie es beheben

Setzen Sie lang am <html>-Element auf die Hauptsprache der Seite, mit gültigem BCP-47-Code.

<!-- Fehler -->
<html>

<!-- Besteht (deutsche Seite) -->
<html lang="de">

FAQ

Welchen Wert soll ich nutzen?

Einen gültigen BCP-47-Code: „de“ für Deutsch, „en“ für Englisch, bei Bedarf „de-AT“ für österreichisches Deutsch.

Muss ich gemischtsprachige Inhalte auszeichnen?

Ja — lang am <html> für die Seite, und lang an einzelnen Elementen, die die Sprache wechseln.

Finden Sie jeden solchen Fehler auf Ihrer Seite

Starten Sie einen kostenlosen WCAG 2.2 AA-Scan — echte axe-core-Engine, ohne Anmeldung. Oder ein zeitgestempelter Beweis-Report für 29 €.