Rules · html-has-lang
Failure reference
Page language not declared.
Without a lang attribute, a German shop can be read aloud with English pronunciation rules — every word mangled.
What fails — and who it fails
The failure, in plain language.
Screen readers pick their speech engine from <html lang>. Missing or wrong values turn fluent content into noise, especially across the multilingual EU.
Detection — what the machine can and cannot judge
How the scanner finds it.
- The <html> element is checked for a valid lang attribute on every page.
- Mixed-language passages (3.1.2) are flagged for human review where detectable.
The legal reading — factual, not fearful
Where this sits in enforcement.
A one-attribute, site-wide fix at Level A. Assessors note it because it is universal: one missing attribute fails every page at once — and one edit repairs every page at once.
The fix — by pattern
The pattern that clears it.
- <html>
+ <html lang="de">Fix the template, not the page — one change typically clears every instance at once. The triage engine groups findings by template pattern for exactly that reason.
Verification — resolution is evidence, not a checkbox
Fixed means a scan said so.
On monitored domains, mark the finding fixed and the next scan verifies it: zero remaining instances converts the finding to Resolved, and both the claim and the confirmation land in the append-only ledger. Criteria that need human judgement close through sign-off in the coverage matrix — covered by the right method, never by assumption.
See where your templates stand.
A complimentary assessment renders up to 25 public pages in an EU-hosted browser and shows every instance of this failure — grouped, ranked, and honest about what still needs a human.