html-xml-lang-mismatch

lang und xml:lang dürfen sich nicht widersprechen

automaticWCAG 3.1.1 (A)Konfidenz: highSchweregrad: seriousunderstandable

Prüft, dass die Attribute lang und xml:lang des <html>-Elements dieselbe Hauptsprache deklarieren, wenn beide vorhanden sind.

Anwendbarkeit. Gilt, wenn das <html>-Element sowohl ein nicht leeres lang-Attribut hat, dessen primäres Sprach-Subtag bekannt ist (ACT 5b7ae0), als auch ein nicht leeres xml:lang-Attribut, das ein primäres Sprach-Subtag hat. Ein lang, das keine bekannte Sprache nennt, ist ein Fehler für html-lang-attr-present, nicht für diese Regel; ein xml:lang ohne primäres Subtag (ein privates „x-foo“ oder gar kein Tag) hat keine Sprache, die sich vergleichen ließe, wie ACTs „if any exist“ besagt.

Erwartung. Das primäre Sprach-Subtag (der Teil vor dem ersten „-“) von lang und xml:lang stimmt ohne Berücksichtigung der Groß-/Kleinschreibung überein. Sind beide Attribute vorhanden, deklarieren aber unterschiedliche Sprachen, können assistive Technologien und User Agents die Sprache der Seite uneinheitlich auflösen.

Was ein Befund meldet.

  • lang, xmlLang: die Werte der Attribute lang und xml:lang, wie geschrieben.

Diese Felder in data.details helfen, einen Befund zu lesen und zu reproduzieren. Außer reasonCode und den wenigen Feldern, die Ausgabeschema als stabil nennt, sind sie kein stabiler Vertrag: Ein Feld kann in einer Minor-Version umbenannt werden oder wegfallen, bauen Sie also nicht darauf auf.

Beispiele

pass
<html lang="en-US" xml:lang="en-GB">

Die primären Subtags stimmen überein (en); regionale Subtags dürfen sich unterscheiden.

fail
<html lang="en" xml:lang="fr">

lang und xml:lang deklarieren unterschiedliche Hauptsprachen.

Quellcode ansehen