Skip to content
A11ySignal
seriousWCAG 3.1.1 · A

<html> element must have a valid value for the lang attribute

html-lang-valid

Ensure the lang attribute of the <html> element has a valid value

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