• Success Criterion 3.1.1
  • Conformance level A

Multilingual Site Serving Every Locale With the Same Lang Value

3.1.1 — Language of Page

Scenario

Setting

A government tax-filing portal

What’s wrong

Multi-lingual sites serving all locales from one template with hard-coded original language.

Example

<!-- Served at /fr/formulaire-impot regardless of locale -->
<html lang="en">
<body>
  <h1>Declaration de revenus</h1>
  <p>Remplissez le formulaire ci-dessous avant le 30 avril.</p>
</body>
</html>

Why it matters

Every locale, including the French filing form, ships with lang="en" baked in from the original template, so French-speaking filers get English pronunciation on legally important deadlines.

How to test

Check multiple locale versions of a multi-lingual site: if all locales are served from one template with a hard-coded original-language lang value, it fails for translated versions.

How to fix

Generate the lang attribute from the active locale variable at render time, never from a value copied into the base template.

<!-- Served at /fr/formulaire-impot -->
<html lang="fr">
<body>
  <h1>Declaration de revenus</h1>
  <p>Remplissez le formulaire ci-dessous avant le 30 avril.</p>
</body>
</html>

Outcome

A filer completing the French form hears every deadline and instruction spoken in correctly accented French.

Who is affected

Screen reader users filing taxes in a non-English locale risk mishearing dates and penalty warnings that were never translated at the markup level.

Learn more