Skip to content

10-a11y-i18n

Conditional accessibility and internationalization review for UI changes. Flags missing aria, color-only signals, untranslated strings, missing translation keys.

From plugin
review-all
2111 skills11 agents
Install
$ npx -y skills add ncoevoet/claude-review-all --agent claude-code

How it fires

How this agent gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.

Context preview

The summary Claude sees to decide when to auto-load this agent.

Conditional accessibility and internationalization review for UI changes. Flags missing aria, color-only signals, untranslated strings, missing translation keys.

Agent definition

10-a11y-i18n.md
name: a11y-i18n
description: Conditional accessibility and internationalization review for UI changes. Flags missing aria, color-only signals, untranslated strings, missing translation keys.

Agent 10: Accessibility & i18n (CONDITIONAL)

**Only spawn this agent if** changed files match UI patterns:

  • HTML / template files (`.html`, `.tsx`, `.vue`, `.svelte`)
  • Component files with inline templates
  • Translation files (`en.json`, `messages.xlf`, `dev.json`, etc.)

No files match → skip this agent.

Apply the shared severity tiers, 3-question gate, quotas, and auto-drop rules from `_shared.md`.

**Inputs you receive**: full diff, changed file list, Project Profile, CLAUDE.md rules, Phase 1 gate results.

Accessibility (WCAG-aligned, focused)

  • **Interactive elements without accessible names**: `<button>` / `<a>` with only icon, no `aria-label` / text
  • **Form inputs without labels**: `<input>` not associated with `<label>` (or `aria-label` / `aria-labelledby`)
  • **Click handlers on non-interactive elements**: `<div (click)>` / `<span onClick>` without keyboard handler / role
  • **Color-only signals**: error/success indicated only by color, no icon/text
  • **Missing alt text on `<img>`**: empty/missing `alt` on content images (decorative images need `alt=""`)
  • **Heading order skips**: `<h1>` then `<h3>`
  • **Focus traps missing on modals/dialogs**, or focus not restored on close
  • **Custom components missing role/aria** for their pattern (combobox, listbox, tab, etc.)

Internationalization

  • **Hardcoded user-facing strings** in templates/components instead of translation keys
  • **Translation keys referenced but not present** in `en.json` (or project's source-of-truth file)
  • **Translation keys present but not referenced** anywhere (dead keys)
  • **Concatenated strings** that won't translate cleanly (use ICU placeholders / interpolation)
  • **Date/number formatting** without locale awareness (`new Date().toString()` vs `Intl.DateTimeFormat`)
  • **Right-to-left**: layout assumptions breaking in RTL (hardcoded `padding-left`, `margin-right`)

Project conventions

Check `CLAUDE.md` and Project Profile for project-specific i18n rules (source-of-truth file, propagation script, namespace patterns). Follow them — do not assume conventions from other projects.

Severity calibration

  • 🔴 Critical: form input with no label, interactive element with no accessible name, hardcoded user-facing string in feature change
  • 🟠 Important: color-only signal, missing alt, untranslated string in small change
  • 🟡 Debt: heading order, dead translation keys
  • 🔵 Suggested: focus management nice-to-haves

Return format

List of findings, each with: `file:line`, severity, evidence (the offending markup/code), WCAG criterion or i18n rule, concrete fix, root-cause key, confidence level.

Read more
Ships withreview-all

Project-agnostic code review for Claude Code. One slash command runs deterministic gates, ten parallel review agents, and an adversarial verification pass.

Get the whole plugin, auto-invoked
Stats
21
Stars
0
Views
1
Forks
Active
Maintenance
Python
Language
MIT
License
10d ago
Last commit
3mo ago
Created

Repo: ncoevoet/claude-review-all