Blank checklist, printable form
Multilingual Accessibility Checklist
Cross-Language Accessibility Compliance Checklist
Blank checklist for offline completion.
Tick one box per row. Add comments and evidence references in the Notes column as needed.
Language Declaration & Switching
Correct use of lang attributes, keyboard-accessible language pickers, and state preservation across language changes.
| Ref | Severity | Requirement | Status | Notes / Evidence |
|---|---|---|---|---|
| WCAG 3.1.1 | Critical | HTML lang attribute matches the primary language of the page.Every page must declare its language via the lang attribute on the <html> element. Screen readers use this to load the correct pronunciation engine. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A | |
| WCAG 3.1.2 | Critical | In-page language switches are marked with the appropriate lang attribute.When a passage or word appears in a different language from the surrounding content, it must be wrapped in an element with the correct lang attribute. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A | |
| WCAG 2.1.1 | Critical | Language picker is fully keyboard accessible.The language selector must be operable with keyboard alone, focusable, activatable with Enter/Space, and navigable with arrow keys if it is a dropdown. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A | |
| WCAG 3.2.2 | Major | Language change preserves page position and form state.When a user switches language, they should remain on the same page at the same scroll position. Any form data entered should be preserved. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A | |
| EAA Annex I §I | Major | All supported languages have a complete accessibility statement.Each language variant of the site must have its own accessibility statement in that language, not just an English-only statement. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A |
Screen Reader Pronunciation
Ensure text-to-speech engines correctly handle content in each supported language, including proper names, numbers, dates, and abbreviations.
| Ref | Severity | Requirement | Status | Notes / Evidence |
|---|---|---|---|---|
| EN 301 549 §9.3.1 | Critical | Text-to-speech engine correctly pronounces content in each supported language.Screen readers use the lang attribute to select the correct TTS voice. If the attribute is wrong or missing, words are pronounced using the wrong language's phonetic rules. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A | |
| WCAG 3.1.2 | Major | Proper names are marked with lang attribute where pronunciation differs.Names of people, places, and brands that originate from a different language should be marked with the appropriate lang attribute if their pronunciation differs. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A | |
| EN 301 549 §9.3.1 | Major | Numbers and dates are read in the correct locale format by screen readers.1.234,56 in German vs 1,234.56 in English, screen readers must interpret the correct format. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A | |
| EN 301 549 §9.3.1 | Major | Currency symbols are announced correctly per locale.Screen readers should announce '€50' as 'fifty euros' not 'euro sign five zero'. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A | |
| WCAG 3.1.4 | Minor | Abbreviations are expanded correctly in each language.Abbreviations and acronyms should be expandable or defined on first use in each language. Use <abbr> with a title attribute containing the expansion in the correct language. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A |
Translated Accessibility Content
Verify that all accessibility-critical content, alt text, labels, ARIA attributes, and status messages, is properly translated in every supported language.
| Ref | Severity | Requirement | Status | Notes / Evidence |
|---|---|---|---|---|
| WCAG 1.1.1 | Critical | Alt text is translated for all supported languages, not just the primary language.Images need meaningful alt text in every language the site supports. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A | |
| WCAG 3.3.2 | Critical | Form labels and error messages are fully translated in all languages.Users completing forms in their language must see labels, placeholders, validation messages, and error text in that language. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A | |
| WCAG 4.1.2 | Critical | ARIA labels and descriptions are translated for all languages.Aria-label, aria-labelledby, aria-describedby, and aria-roledescription values must be in the user's language. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A | |
| WCAG 2.4.1 | Major | Skip link text is translated in all supported languages.The 'Skip to main content' link must be in the page language. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A | |
| WCAG 4.1.3 | Critical | Status messages and live regions are translated in all languages.Dynamic status messages announced via aria-live regions must be in the user's language. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A |
RTL & Locale Support
Verify correct right-to-left layout, focus order, and locale-appropriate formatting for Arabic, Hebrew, and other RTL languages.
| Ref | Severity | Requirement | Status | Notes / Evidence |
|---|---|---|---|---|
| WCAG 1.3.2 | Critical | Dir="rtl" is correctly set for Arabic and Hebrew content.Pages in RTL languages must have dir='rtl' on the <html> element. Mixed-direction content must use dir='ltr' on the embedded element. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A | |
| WCAG 1.3.2 | Critical | Layout mirrors correctly for RTL languages.In RTL mode, the entire layout should mirror, sidebar moves to the right, navigation aligns right, directional icons flip. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A | |
| WCAG 2.4.3 | Critical | Focus order follows RTL reading direction.In RTL layouts, keyboard Tab order must follow the visual right-to-left, top-to-bottom order. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A | |
| EN 301 549 §9.3.1 | Major | Date and number formats are locale-appropriate.Dates and numbers must be formatted according to the user's locale. Use Intl.DateTimeFormat and Intl.NumberFormat for automatic locale handling. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A | |
| WCAG 1.4.4 | Major | Content does not break when translated text is longer than the original.German and Finnish translations are often 30-40% longer than English. UI elements must accommodate longer text without truncation or broken layouts. | ☐ Pass ☐ Partial ☐ FAIL ☐ N/A |