Standarder · WCAG 2.2

SC 3.1.1 Nivå A WCAG 2.0

Sidans språk

Ange det mänskliga standardspråket för varje sida programmatiskt — vanligtvis med lang-attributet på html-elementet. Skärmläsare, punktskriftsdisplayer och översättningsverktyg använder detta för att välja uttalregler, röstprofiler och teckenmappningar.

Vad det kräver

Varje webbsida måste deklarera sitt mänskliga standardspråk på ett sätt som hjälpmedelsteknik kan läsa. I HTML innebär det ett giltigt lang-attribut på rot-elementet <html>, satt till en primärspråkssubetikett från BCP 47 (en, de, bg, zh-Hans). Värdet måste återspegla det faktiska standardspråket för textinnehållet — inte språket i CMS:et, inte landet för servern.

En sida som blandar språk har fortfarande ett standardspråk; sekundärspråk hanteras av 3.1.2 Språk i delar.

Hur du uppfyller det

  • Lägg till lang<html>-elementet på varje sida: <html lang="sv">.
  • Använd rätt BCP 47-subetikett. Använd en för generisk engelska; använd en-GB eller en-US bara om regional uttal spelar roll.
  • För kinesiska, ange skrift: zh-Hans (förenklad), zh-Hant (traditionell).
  • För höger-till-vänster-språk (arabiska, hebreiska, persiska), kombinera lang med dir="rtl".
  • I React/Next.js/Astro, sätt attributet i rotlayoutmallen, inte i _document-kroppen, så att varje rutt ärver det.
  • I flerspråkiga sajter, byt lang per rutt — servera aldrig ett globalt standardvärde till lokaliserade sidor.

Vanliga fel

  • lang saknas helt — det vanligaste felet på äldre sajter och CMS-baserade sajter.
  • lang="" (tomt värde) eller lang="swedish" — ogiltigt; bara BCP 47-subetiketterna är konforma.
  • Alla sidor hårdkodade till lang="en" även när innehållet är på tyska, franska eller bulgariska.
  • En svensk sida med lang="en" för att CMS-mallen levereras med engelska som standard och ingen ändrade det.
  • lang satt på <body> istället för <html> — accepteras av en del verktyg men är inte den kanoniska platsen.

Varför det spelar roll

Skärmläsare använder lang för att välja rätt röstsyntetisator. Med fel deklarerat språk läser en svensk skärmläsare tysk text fonetiskt — “Schmetterling” låter som meningslösa stavelser. Punktskriftsdisplayer använder det för att välja rätt förkortningstabeller för grad 2. Webbläsarens översättningsfunktioner använder det för att detektera vad som ska översättas. Sökmotorer använder det för rankning och utdragsgenerering.

Det här är en 30-sekunders fix som frigör förståelse för alla skärmläsaranvändare på sidan, och ändå saknas det på en betydande andel av produktionssajter. Det är ett av de mest citerade felen i automatiserade granskningar eftersom det är binärt och enkelt att detektera.