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.

Why this is close to a mechanical, guaranteed-automatable check

Unlike most WCAG criteria, "does the html element have a valid lang attribute" is a simple, deterministic, zero-ambiguity check — a scanner can verify it with complete confidence, which is why it's one of the small number of fully automatable criteria in the entire spec.

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