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 serious 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-lang-valid ↗
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
moderatehtml-xml-lang-mismatchHTML elements with lang and xml:lang must have the same base language