A: HTML Elemente mit lang und xml -> lang Attributen müssen dieselbe Sprache ausweisen (WCAG 3.1.1)
html-xml-lang-mismatch
Stellt sicher, dass HTML Elemente mit validen lang und xml:lang Attributen dieselbe Sprachangabe tragen.
Das bedeutet
Wenn ein Element sowohl lang als auch xml:lang besitzt, müssen die Werte übereinstimmen (derselbe BCP-47 Sprachcode, inklusive optionaler Region). Abweichungen wie lang="de" und xml:lang="en" oder lang="de" und xml:lang="de-AT" gelten als Widerspruch.
Auswirkung
Assistive Technologien können falsche Stimmen wählen, Aussprache und Silbentrennung sind uneinheitlich. Nutzerinnen und Nutzer verlieren Orientierung; zusätzlich droht ein WCAG Verstoß.
Empfehlung
-
In HTML5 bevorzugt nur
langverwenden. -
xml:langnur einsetzen, wenn das Dokument als XML ausgeliefert wird (zum Beispiel XHTMLapplication/xhtml+xml) oder innerhalb von SVG/MathML. -
Wenn beide Attribute nötig sind: identische Werte setzen (einschließlich Region).
-
Gültige BCP-47 Codes verwenden (
de,de-DE,en-GB); Bindestrich, keine Unterstriche. -
Bei dynamischem Sprachwechsel beide Attribute konsistent aktualisieren.
Beispiel
Problematisch
<!-- Widerspruch: deutsch vs. englisch -->
<html lang="de" xml:lang="en">
<head><title>Kontakt</title></head>
<body>Willkommen</body>
</html>
<!-- Widerspruch: Basis vs. Region -->
<p lang="fr" xml:lang="fr-CA">Bonjour</p>
Besser
<!-- HTML5: nur lang verwenden -->
<html lang="de">
<head><meta charset="utf-8"><title>Kontakt</title></head>
<body>Willkommen</body>
</html>
<!-- Wenn beide nötig sind: identische Werte -->
<html lang="de-DE" xml:lang="de-DE"></html>
<!-- In eingebettetem SVG konsistent bleiben -->
<svg lang="en-US" xml:lang="en-US" role="img" aria-label="Logo"></svg>
Verknüpfte WCAG-Kriterien:
WCAG 3.1.1 - Sprache der Seite