← ClaudeAtlas

a11y-reviewlisted

Static analysis pass over JSX/HTML/CSS source for WCAG 2.2 AA failure patterns. Does NOT run axe-core, does NOT measure real contrast, does NOT test runtime behavior — pair with a11y-testing for that. Use when the user asks for an accessibility review, a11y check, WCAG review, "is this accessible?", "does my site meet WCAG?", "check my component for accessibility", "review accessibility of", "check for a11y issues", "fix accessibility issues", or any request to scan a web page, component, or codebase for WCAG 2.2 AA failure patterns. Findings are tagged by detection confidence; the report does not produce a Pass/Fail verdict because static analysis cannot defensibly produce one.
RadOrigin-LLC/RAD-Claude-Skills · ★ 5 · Code & Development · score 76
Install: claude install-skill RadOrigin-LLC/RAD-Claude-Skills
# Accessibility Review (static analysis) Perform a structured **static analysis pass** over the specified component, page, or codebase. Execute all eight phases in order and produce an actionable, severity-ranked report with each finding tagged by confidence level. ## What this skill is — and what it isn't This skill performs **pattern-based static analysis** over `.tsx` / `.jsx` / `.astro` / `.html` / `.css` source. It is **not** a WCAG audit, does **not** run axe-core, does **not** test runtime focus behavior, and does **not** test with screen readers. It does compute WCAG sRGB contrast ratios for Tailwind class pairs co-occurring on the same element (the `check-tailwind-contrast.py` validator), but it cannot see DOM-inherited backgrounds without runtime. **What this skill catches well (high confidence):** - Missing `alt` on `<img>`, missing `<label>` association, missing accessible name on icon buttons - `outline: none` / `outline-none` without a focus-visible replacement (Tailwind users — axe often misses this because it inspects computed styles) - `aria-hidden="true"` on focusable elements or their ancestors - Hardcoded ARIA states (`aria-expanded="true"` as a string literal, not driven by component state) - `<div onClick>` / `<span onClick>` without role + keyboard handlers - Skipped heading levels, missing landmarks - React-specific focus drift (modal close handlers without focus restoration) - **Color contrast for Tailwind class pairs on the same element** — `chec