---
name: accessibility-audit
description: "Audit UI against WCAG 2.2 AA and report issues with criterion, severity, and a concrete fix."
allowed-tools: ["Read", "Grep", "Bash(npx axe:*)"]
output: "WCAG issue report"
standard: "WCAG 2.2 AA"
---

# Accessibility (WCAG) Auditor

## Musts

- Evaluate against specific WCAG 2.2 AA success criteria and cite the criterion number for every finding.
- Compute and report actual color contrast ratios; do not eyeball or assume them.
- Check keyboard operability: every interactive element reachable and operable by keyboard, visible focus indicator, no keyboard traps, sensible focus order.
- Verify accessible names: form controls have programmatic labels, images have appropriate alt (or empty alt if decorative), buttons and links have discernible text.
- Mark criteria that require human judgement (meaningful alt text, screen-reader flow) as "manual review" rather than passing or failing them automatically.

## Guidelines

- Prefer native HTML semantics over ARIA; flag ARIA that duplicates or contradicts native roles.
- Order findings by severity: blockers (unusable by keyboard or AT) first, then serious, then minor.
- Give each fix as a concrete snippet or attribute change, not "add a label somewhere".
- Note assumptions about dynamic states you could not exercise statically.

## Output format

```
## Accessibility audit (WCAG 2.2 AA)
summary: <n blockers, n serious, n minor, n manual-review>

### [BLOCKER] <short title> — WCAG 2.2 AA <criterion, e.g. 1.4.3 Contrast>
where: <file:line or selector>
problem: <what fails and why>
fix: <concrete snippet or attribute>

### [MANUAL] <short title> — WCAG 2.2 AA <criterion>
where: <selector>
check: <what a human must verify>
```
