agentspeed.
Rubric / Readability

Declared language

markup.language
weight 1deterministic

The document declares its language: <html lang> is present and a well-formed BCP 47 tag, and any hreflang alternates carry well-formed values. Self-referencing and reciprocity are not checked — both require fetching the alternates, and a wrong warning there would be the scanner's limit charged to the site.

Definition
Check ID
markup.language
Category
Readability
Weight
1
Counts toward the score
Yes.
Evaluated by
A fixed rule with no threshold of our choosing. The same input always produces the same verdict.
Standard maturity
established
Canonical spec
None. This check has no published external specification — it is an AgentSpeed rule.
Introduced in
r2026.08.1
Retired in
Still active.
History
Every change to the instrument— including the versions that changed this check
Machine-readable
/rubric.json— this check, and every other, as data
How often this check is right

No rate published. Too few labelled cases to publish a rate: 1 flagged case (30 needed to publish), 1 defective case (30 needed to publish). The counts are the honest answer here. The matrix behind markup.language is 6 labelled cases — reported here rather than turned into a percentage that would read as more certain than the evidence is.

Corpus v1, measured under rubric r2026.11.0. Full method and every other check at /rubric/accuracy.

How to fix it
Add `lang` to your `<html>` element (`<html lang="en">`, `<html lang="de-DE">`). If you publish translations, declare them with `<link rel="alternate" hreflang="..." href="...">` using BCP 47 tags — language[-Script][-REGION], hyphens not underscores.
Does your site pass this check?

Free scan, 30 seconds, no signup — this check and the other 35, with the exact evidence for each verdict.

Scan my site →
Declared language · markup.language · AgentSpeed