← All checks
Accessibilitymediumhtml-missing-lang

The page does not declare a language

The document root has no language declaration for assistive technology and browsers.

Why it matters

Screen readers use a document language to select pronunciation rules and a voice. Without a declaration, they may read text using the wrong language. Browsers also use it for language-aware features such as translation and hyphenation.

How ShipReady detects it

What it inspects

ShipReady reads the opening <html> tag in the fetched page and looks for a lang or xml:lang attribute.

What triggers a finding

On a complete HTTP 200 page, the rule triggers only when an <html> element is present and its opening tag has no lang attribute.

What the evidence shows

The fetched document’s opening <html> tag did not declare a language.

Limits of this check

This check tests whether an attribute is present. It does not assess whether its value is valid, matches the document’s language, or whether sections in other languages have their own language declarations. It checks the scan’s origin page, not every route.

How to fix it

Declare the document language

Set the root HTML element’s lang attribute to the primary language used by the page, using an appropriate BCP 47 language tag.

For a page written in English, for example, use lang="en". If the page language changes, update the declaration.

How to verify the change

Check the rendered document

Inspect the served page’s opening HTML element, including after deployment.

Expected: The root element declares the page’s primary language, and the value matches the content.

Example root element

The declaration belongs on the root element and should identify the main language of the document.

<html lang="en">

The root element declares English as the document language.