The criterion behind it
3.1.1 Language of Page
The page has to declare what language it is in.
Level A · EN 301 549 § 9.3.1.1
Why this check exists
A screen reader picks its pronunciation rules from `lang`. English text read by a German voice is close to unintelligible.
What usually triggers it
- fails`<html>` with no `lang`.
- fails`lang="en"` on a page that is actually in French.
How to fix it
- doSet `<html lang="en">` — the real language, and the right subtag for regional variants.
How it is reported
A11ySignal reports this at moderate impact. Every failing element comes with its CSS selector and the markup that failed, so you can go straight to the line rather than hunting for it. Deque publishes the engine-level detail:
https://dequeuniversity.com/rules/axe/4.13/html-xml-lang-mismatch ↗
Check implemented by axe-core 4.13.0, © Deque Systems, MPL-2.0.
Other checks for 3.1.1
serioushtml-has-lang<html> element must have a lang attribute
serioushtml-lang-valid<html> element must have a valid value for the lang attribute