What the standard says
The default human language of each web page can be programmatically determined.
Why it matters
A screen reader picks its pronunciation rules from `lang`. English text read by a German voice is close to unintelligible.
What a failure looks like
- 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 A11ySignal checks it
3 automated checks run against this criterion on every scan.
serioushtml-has-lang<html> element must have a lang attribute
serioushtml-lang-valid<html> element must have a valid value for the lang attribute
moderatehtml-xml-lang-mismatchHTML elements with lang and xml:lang must have the same base language