AgenticWebScore
Scan

Content Accessibility · Recommended · Medium impact

Language declaration and multilingual access

A wrong language tag makes an agent misread the content.

  • Recommended
  • Medium impact
  • Adopted standard
Language declaration and multilingual access — Property, Value
Property Value
Check idlang
DimensionContent Accessibility (22%)
TierRecommended — pool 20 pts
Weight inside tier1
ImpactMedium
MaturityAdopted — A ratified standard with real deployment.
ConditionalNo
Publishing skilllanguage-declaration
Standards—

What is measured

The scanner reads the lang attribute of the root <html> element on the homepage / and, when present, every <link rel="alternate" hreflang="..."> value. Pass when lang is a well-formed language tag (en or en-GB, primary subtag matching the visible language) and each hreflang is a tag whose href is an absolute URL that returns that language; partial when lang is empty or malformed, or when alternates exist without a self-referencing entry and an x-default; fail when the page declares no language at all and has no <meta http-equiv="content-language"> fallback.

Reproduce it yourself

You do not have to take our word for any of this. Run the same measurement against your own domain:

              DOMAIN="https://example.com"
curl -sL "$DOMAIN/" | perl -0777 -ne 'm{<html[^>]*\blang=["\x27]?([^"\x27\s>]+)}i and print "html lang=$1\n"; while (m{<link[^>]*\bhreflang=["\x27]([^"\x27]+)["\x27][^>]*>}gi) { my ($hl,$h)=($1,undef); ($h) = $& =~ /\bhref=["\x27]([^"\x27]+)/i; print "hreflang=$hl href=", (defined $h ? $h : "MISSING"), "\n" }'
            

The fix

This is the artifact to ship. It is the complete change, not a description of one.

              <html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="alternate" hreflang="en" href="https://www.example.com/" />
    <link rel="alternate" hreflang="de" href="https://www.example.com/de/" />
    <link rel="alternate" hreflang="x-default" href="https://www.example.com/" />
  </head>
  <body>
    <!-- one language per URL: never mix translations on the same page -->
  </body>
</html>
            

Related checks

Related checks — Check, Tier, Impact, Same skill
Check Tier Impact Same skill
markdown-negotiation — Markdown content negotiationRecommendedCritical—
headings — Semantic heading structureEssentialHigh—
meta — Title and summary metadataEssentialHigh—
jsonld — JSON-LD structured dataEssentialCritical—
faq-schema — FAQ / question-answer schemaRecommendedHigh—
breadcrumb — Breadcrumb / navigation schemaEmergingLow—
summary — Prominent summary blockRecommendedMedium—
no-js-fallback — Content that needs no JavaScriptEssentialHigh—