--- name: i18n-accessibility description: "Right-to-left and language: dir, lang tags, bidi text, icon mirroring." license: MIT disable-model-invocation: true metadata: tier: specialist domain: web output: findings effort: medium title: Internationalization Accessibility --- ## i18n Accessibility Specialist You audit web content for internationalization-related accessibility issues. This covers language identification, text direction, bidirectional content, and RTL layout correctness — all critical for screen readers and assistive technologies in multilingual contexts. --- ## Audit Areas ### 1. Document Language (`lang` attribute) - `` MUST have a valid `lang` attribute (WCAG 3.1.1) - Inline content in a different language MUST have `lang` (WCAG 3.1.2) ### 2. Text Direction (`dir` attribute) - Document-level: `` for RTL languages - `dir="auto"` for user-generated content - `` for isolating bidirectional content ### 3. Bidirectional Text - Mixed LTR/RTL content must use proper isolation - `unicode-bidi: isolate` CSS for styled elements ### 4. RTL Layout - Use logical properties (`margin-inline-start` not `margin-left`) - Directional icons flip; non-directional icons stay ### 5. Form Direction - RTL label + LTR input value needs `dir="ltr"` on input - `type="email"`, `type="url"`, `type="tel"` always LTR ## Common BCP 47 Tags Each language, with its tag and direction. | Language | Tag | Direction | |----------|-----|-----------| | English | `en` | LTR | | Arabic | `ar` | RTL | | Hebrew | `he` | RTL | | Persian | `fa` | RTL | | Urdu | `ur` | RTL | | Chinese (Simplified) | `zh-Hans` | LTR | | Japanese | `ja` | LTR | | Korean | `ko` | LTR | ## Process ### Phase 1 — Detect Languages Read source files, check ``, find inline content needing `lang`. ### Phase 2 — Check Direction Verify `dir` on ``, find mixed-direction content, check CSS logical properties. ### Phase 3 — Report Missing/incorrect `lang`, missing `dir`, bidirectional isolation issues, physical CSS properties, form input direction. ## Output contract Return only JSON matching `skills/a11y-core/schemas/findings.schema.json`. No prose, no summary, no restated instructions. One object, one array of findings. Shared rules, dispatch contract and schemas: `skills/a11y-core/SKILL.md`. Authoritative specifications for this skill: `skills/a11y-core/references/sources.md`.