Multilingual accessibility.
On a multilingual site every page and every language change must be declared; otherwise the screen reader voices the text in the wrong language.
Screen readers use a language engine while voicing text, and they pick that engine from the page’s language declaration. If the declaration is missing or wrong, a Turkish text is read with an English voice engine — and the result is unintelligible to the listener.
This is the cheapest and most skipped accessibility item on multilingual sites: a one-line declaration, a large effect. WCAG requires it at Level A — that is, a baseline requirement.
Two levels of declaration
The declaration is needed in two places, and the two solve different things.
The first is page level: the root element declares the page’s main language. That determines which voice engine reads the whole page, and it must be on every page.
The second is fragment level: sections in another language inside the page are marked separately. An English quotation inside a Turkish article, a brand name or a technical term — unmarked, it is read with the Turkish voice engine and breaks.
The second level is needed especially often on multilingual sites: the “Deutsch” and “English” labels in the language switcher must be in their own languages with their own languages declared. Otherwise the Turkish engine tries to read them in Turkish.
- The page language on the root element — on every page, without exception.
- The language-switcher labels — each in its own language and with its language declared.
- Foreign-language quotations — unmarked, they are mispronounced.
- Brand and product names — usually left unmarked; their pronunciations are already familiar.
- Code fragments — should be marked as code, not as a language.
The language-tag format
The value used is a standard language tag and of the same family as the one in hreflang, but not entirely the same: here the region code is usually needless. If the page is Turkish, the two-letter language code suffices; if there is no pronunciation difference between Türkiye Turkish and another Turkish, specifying the region has no benefit.
The region code is meaningful only when the pronunciation really varies — like the American and British variants of English. Beyond that, keeping it plain is safer.
Text direction
Languages written right to left — Arabic, Hebrew, Persian — require an additional declaration: the text direction. Without it the layout breaks and becomes unreadable.
The direction declaration affects not just the text but the layout: margins, alignments and arrow directions are mirrored. Modern CSS offers logical properties for this — when start and end are used instead of left and right, the layout turns with the direction on its own.
On this site the direction layer has not been needed yet, since all three languages run left to right. But logical properties are used — so if a right-to-left language is added, the layout keeps working. A cheap piece of forward preparation.
Auditing
A missing language declaration can be caught by automated tools, and it is one of the easiest items of an accessibility audit. But the fragment-level gaps are not caught — for those, one must listen.
- Is the language on the root element — on every page; automated tools catch it.
- Is the language code correct — a wrong code is worse than a missing one.
- Are the language-switcher labels marked — each in its own language with the language declared.
- Are foreign quotations marked — not detectable without listening.
- Was it listened to with a screen reader — every language version separately.
- Is a text-direction declaration needed — mandatory with a right-to-left language.
The fifth item is the most skipped and the most instructive: listening to a German page with a German voice engine is the only method that shows whether the declaration really works. The code can look right and the wrong engine still be picked.
On this site all three language versions are audited separately, and the verification suite measures the language declarations on every route. The language-switcher labels are written in their own languages, and their touch targets are measured besides at the mobile breakpoint.
And a forward preparation: the layout is built on logical properties — start and end instead of left and right. If a right-to-left language is added, the layout turns with the direction on its own — not needed today, but done from the start because its cost is zero.
Translation quality is an accessibility matter
They are usually counted as separate topics, but they intersect: a badly translated text is disproportionately hard for a user with cognitive differences. Complex sentence structure, inconsistent terminology and the awkward phrasings born of direct translation slow everyone down but stop some users entirely.
WCAG’s understandability principle addresses this directly: text must be readable and understandable. When a text fluent in one language loses that quality in translation, that language version regresses in accessibility too.
The practical consequence: investment in translation quality is at the same time an accessibility investment. Short sentences, consistent terms and plain structure — all three are measures of translation quality and readability alike.
And a measurement note: readability is computed differently per language. A metric developed for Turkish cannot be applied to a German text. Every language should be evaluated with its own metric — or, the simpler and more reliable way, be read by someone who speaks it.
A measure to close: most of these items cost a one-line declaration, and their effect is the difference between a user group not understanding the page at all and understanding it. Among accessibility items it has one of the highest returns — and on multilingual sites it is the most often skipped.
A final scope note: the language declaration does not concern the screen reader alone. The browser’s translation offer, its spell check and its typographic rules — all three feed on that declaration. A wrong declaration can even cause quotation marks to be displayed in the wrong form.
So a one-line declaration makes four separate systems work correctly at once. The accessibility rationale suffices on its own; the other three are a bonus.