Accessibility review
Skill ProstDev/skills/plugins/dev/skills/accessibility-review
Agent skills for Claude Code and 80+ other AI coding agents — content authoring, dev workflow, and general session helpers. Install via /plugin or npx skills add.
npx -y skills add ProstDev/skills --skill accessibility-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 12 days oldThe repository was created 12 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Review, audit, or fix the accessibility of web UI — HTML, CSS, JS/JSX, or any component that renders a visible or interactive surface. Use when the user asks to check accessibility / a11y / WCAG / ARIA compliance, or mentions screen readers, keyboard navigation, color contrast, focus management, or making something usable for people with disabilities. Covers ~30 WCAG 2.2 Level A & AA success criteria with detection and remediation guidance.
SKILL.md
5.0 KB, as published. Nobody here has run it
Accessibility review
A structured accessibility review against WCAG 2.2, Level A and AA — the conformance target most teams and regulations aim for. Works on any web UI regardless of framework (plain HTML, React, Vue, Svelte, Astro, web components, etc.).
How to run a review
- Triage — figure out which criteria even apply. Look at what the code renders: images? forms?
links? custom widgets built from
<div>s? color-coded states? drag interactions? A static paragraph engages almost nothing; a custom dropdown engages a dozen criteria. Don't run every check on every element — match checks to what's actually there. - Open the checklist for the applicable criteria.
reference/wcag-checklist.mdis the full per-criterion guide (grouped Perceivable / Operable / Understandable / Robust). Each entry has what it requires → common failures → how to check → the fix + a code example. Read the entries that apply; skip the rest. - Verify, don't eyeball. For anything measurable — contrast ratios, target sizes, keyboard
reachability, zoom/reflow — follow
reference/verification-guide.md. It has the actual contrast-ratio math (including the opacity trap), the keyboard/screen-reader walkthroughs, and the multi-theme rule. A guessed contrast ratio is not a finding. - Report findings and fix them (output format below).
Golden rules (apply throughout)
- A finding must be a direct, clear violation of a specific criterion. Cite the SC number. Don't report vague "could be more accessible" opinions or general code-style issues — that noise buries the real violations. If it doesn't clearly break a criterion, leave it out.
- Semantic HTML first; ARIA is the last resort. A native
<button>,<a href>,<label>,<nav>,<h2>, or<input type>carries role, state, and keyboard behavior for free. Reach for ARIA only when no native element does the job. Incorrect or redundant ARIA is worse than none —role="button"on a real<button>, oraria-labelthat fights the visible text, actively breaks assistive tech. Prefer removing a<div onclick>in favor of a<button>over bolting ARIA onto the<div>. - Trust well-implemented component libraries. Established, accessible libraries (the platform's own design system, mature UI kits) are accessible when used as documented. Don't re-audit their internals — only flag them when they're clearly misused against a criterion.
- Verify in every theme/mode the UI ships. Light, dark, high-contrast — the palette changes, so a contrast pass in one is not a pass in another. Same for RTL layouts and zoom states.
- Always give the fix, not just the finding. Every reported violation gets a concrete remediation — the corrected markup/CSS/handler, not "add a label."
Output format
Group findings by severity, then list each as:
- [SC number + name] —
file:line - What's wrong: the specific violation (what a user with a disability can't do).
- Fix: the concrete change, with a corrected code snippet.
Severity: Blocker (a whole task is impossible for some users — no keyboard access, unlabeled control, form with no error text) → Serious (usable but degraded — low contrast, poor focus order) → Minor (edge cases, enhancements toward AA robustness). If a criterion has no violation, don't mention it. End with a one-line note that any color/contrast fix must be re-verified in every theme via the real ratio, not by eye.
Scope notes
- Target is A + AA. AAA criteria (e.g. 7:1 contrast, 44×44 enhanced target size) are noted in the checklist as optional enhancements, not requirements — offer them, don't fail on them.
- This reviews the code's accessibility. It is not a general code review — stay on accessibility.
- WCAG 2.2 removed the old 4.1.1 Parsing criterion (obsolete); it is intentionally absent.
- Staleness check (do this once, not every run). This skill targets WCAG 2.2, a stable W3C Recommendation. Don't burn tokens re-researching it on every invocation — it changes on the order of years. But WCAG 3.0 is in development, so if a long time has clearly passed, do a quick check that 2.2 is still the current standard before trusting an exact threshold or criterion number, and refresh the checklist/verification-guide if it isn't. When in genuine doubt about a specific criterion, the authoritative source is w3.org/WAI/WCAG22/quickref.