Success Criteria

WCAG 3.1.1 Language of Page

Success Criterion 3.1.1 requires that the default human language of a page can be programmatically determined. It's a Level A criterion under Guideline 3.1 (Readable) — one of the smallest fixes in all of WCAG relative to its impact.

What "programmatically determined" means here

Screen readers apply an entirely different pronunciation engine per language — the same text read as English versus French versus Ukrainian phonetics sounds completely different. Without a lang attribute on the <html> element, most screen readers assume a default language (often English), mispronouncing everything else to varying degrees.

The fix

<html lang="en">

A valid BCP 47 language code — en, uk, de, fr, es, ja, and so on — satisfies this criterion. Region variants (en-GB, en-US) are also valid but not required just to pass; the base two-letter code is sufficient.

What automation can detect

A scanner can deterministically check whether the html element has a syntactically valid lang attribute. It cannot always determine whether that value accurately describes the page's natural language, so this is automated failure detection rather than complete automated evaluation of the criterion.

Its sibling criterion: Language of Parts

WCAG 3.1.2 (Level AA) extends the same idea to content within a page that's genuinely in a different language than the page's default — a French quotation inside an otherwise-English article, for instance:

<p>As the French say, <span lang="fr">c'est la vie</span>.</p>

3.1.1 is the one nearly every site needs to get right (one attribute, one template, sitewide fix); 3.1.2 only matters for content that deliberately mixes languages within a single page. See Missing Page Language for more on both.

Common questions

What is WCAG 3.1.1?
A Level A criterion requiring the page's primary language to be declared in code, typically with html lang='en'.
Why does the page language matter?
Screen readers switch pronunciation rules and voices based on the declared language; without it, content can be read with the wrong accent and rules, harming comprehension.
How do I fix a missing page language?
Add the correct lang attribute with a valid language tag to the html element, e.g. lang='en' or lang='de'. Automated tools reliably detect a missing or empty value.

Want to see how your own site scores?

Run a free accessibility scan