Heading hierarchy (<h1> → <h2>, not skipping levels)
List semantics (<ul>, <ol>, <li>)
Form semantics (<label>, <fieldset>, <legend>)
Color contrast audit
AA standard: 4.5:1 for text, 3:1 for UI components
Tool: axe, WAVE, or computed contrast ratios
Suggest alternative colors if failing
Keyboard navigation test
Tab order is logical and visible
No keyboard traps (escape key works)
Focus visible on all interactive elements
Suggest CSS for :focus-visible if missing
ARIA review
ARIA labels for icon-only buttons
ARIA roles where semantics insufficient
ARIA live regions for dynamic updates
Avoid redundant ARIA on semantic elements
Motion and animation
Respect prefers-reduced-motion media query
Warn if animations cannot be disabled
Suggest CSS override for animations
Produce WCAG audit report
Failures (must fix to meet AA)
Warnings (should fix)
Passed checks
Code examples for each fix
Example
User: "Check this modal dialog for accessibility."
Response:
Failure: Heading hierarchy broken (h1 missing main page heading)
Failure: Focus trap on close button (no Tab escape)
Warning: Close button missing aria-label (X icon not labeled)
Warning: Modal not marked with role="dialog" and aria-labelledby
Pass: Color contrast meets 4.5:1
Fix: Add aria-label="Close" to button, add role="dialog", manage focus trap on open/close
1---2name: a11y-reviewer3description: A11Y Reviewer4---5# A11Y Reviewer67## When to activate89User runs `/review-a11y` or requests an accessibility audit of a component for WCAG 2.1 AA compliance.1011## When NOT to use1213- Broader component audits (use `/component-auditor` instead)14- Performance profiling (use `/profile-performance` instead)15- Semantic code structure issues outside accessibility scope1617## Instructions18191. **Semantic HTML check**20 - Correct tag usage (`<button>` not `<div onclick>`)21 - Heading hierarchy (`<h1>` → `<h2>`, not skipping levels)22 - List semantics (`<ul>`, `<ol>`, `<li>`)23 - Form semantics (`<label>`, `<fieldset>`, `<legend>`)24252. **Color contrast audit**26 - AA standard: 4.5:1 for text, 3:1 for UI components27 - Tool: axe, WAVE, or computed contrast ratios28 - Suggest alternative colors if failing29303. **Keyboard navigation test**31 - Tab order is logical and visible32 - No keyboard traps (escape key works)33 - Focus visible on all interactive elements34 - Suggest CSS for `:focus-visible` if missing35364. **ARIA review**37 - ARIA labels for icon-only buttons38 - ARIA roles where semantics insufficient39 - ARIA live regions for dynamic updates40 - Avoid redundant ARIA on semantic elements41425. **Motion and animation**43 - Respect `prefers-reduced-motion` media query44 - Warn if animations cannot be disabled45 - Suggest CSS override for animations46476. **Produce WCAG audit report**48 - Failures (must fix to meet AA)49 - Warnings (should fix)50 - Passed checks51 - Code examples for each fix5253## Example5455User: "Check this modal dialog for accessibility."5657Response:58- **Failure:** Heading hierarchy broken (h1 missing main page heading)59- **Failure:** Focus trap on close button (no Tab escape)60- **Warning:** Close button missing `aria-label` (X icon not labeled)61- **Warning:** Modal not marked with `role="dialog"` and `aria-labelledby`62- **Pass:** Color contrast meets 4.5:163- **Fix:** Add `aria-label="Close"` to button, add `role="dialog"`, manage focus trap on open/close
Run npx skillmds@latest add uitbreidenos/a11y-reviewer in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
A11Y Reviewer It is listed under Web & Frontend on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Capability flags: docs only. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
UitbreidenOS (@uitbreidenos) published this skill. Their other Agent Skills are listed on their SkillMD profile.