uniswap/ai-toolkit/audit-accessibility
Claude Code and agent skill by uniswap/ai-toolkit
- community
Checking that the SKILL.md file is still in the repository.
Audit UI components and pages for accessibility (a11y) issues. Use when user says "check accessibility", "audit a11y compliance", "find WCAG violations", "is this component accessible", "run an accessibility audit", or "check screen reader support".
Install
npx vskill@latest install uniswap/ai-toolkit/audit-accessibilitySKILL.md
Accessibility Auditor
Audit frontend components and pages for WCAG 2.1 AA compliance, identifying violations by severity and providing targeted fix guidance.
When to Activate
- User asks to "check accessibility" or "audit a11y"
- User wants to find WCAG violations or screen reader issues
- User mentions ADA compliance or ARIA issues
- Before shipping a new UI component or page
- User asks "is this accessible?"
Quick Process
- Detect scope: Identify target files (JSX/TSX/HTML/Vue/Svelte)
- Static analysis: Scan code for structural a11y issues
- Tool detection: Check for available automated tools (axe, pa11y, lighthouse)
- Run tools: Execute available auditors on the target
- Report: Output violations grouped by severity with fix guidance
What Gets Checked
Structural (Static Analysis)
| Category | What to Check | |
|---|---|---|
| Images | <img> missing alt; decorative images use alt="" | |
| Forms | Every <input> / <select> / <textarea> has associated <label> or aria-label | |
| Headings | Heading hierarchy is sequential (h1 → h2 → h3, no skipped levels) | |
| Buttons & links | Interactive elements have accessible text (not icon-only without aria-label) | |
| Color contrast | CSS custom properties checked; hardcoded hex values flagged for manual review | |
| ARIA | role, aria-* attributes used correctly; no redundant roles | |
| Keyboard | onClick on non-interactive elements without onKeyDown/onKeyPress | |
| Focus | No tabIndex > 0; focus-visible not suppressed via outline: 0 without replacement | |
| Language | <html lang="..."> present | |
| Landmarks | Page has at least one <main> landmark |
Automated Tools (when available)
Step-by-Step
Step 1: Identify Target Files
Glob for .jsx, .tsx, .html, .vue, .svelte under src/ or the path provided. If a URL is given, skip to Step 3 (tool-based audit).
Step 2: Static Code Scan
For each component file:
- Read the file
- Check the structural categories in the table above
- Record each violation with file path, line number, WCAG criterion, and severity
Severity mapping:
| Severity | Examples | |
|---|---|---|
| Critical | Missing alt text on informative image, form input with no label | |
| Serious | Interactive element with no accessible name, missing lang attribute | |
| Moderate | Skipped heading level, onClick without keyboard handler | |
| Minor | Redundant ARIA role, tabIndex="0" on naturally focusable element |
Step 3: Run Automated Tools
Detect installed tools via npx axe --version, npx pa11y --version, npx lighthouse --version etc. For each available tool, run against the target URL or build output. Parse JSON output and merge with static findings (deduplicate by element + criterion).
Step 4: Generate Report
Output a summary then grouped violation list:
Step 5: Prioritize Fixes
If Critical or Serious violations exist, list the top 5 highest-impact fixes with code snippets. Provide a summary of effort: which violations are one-line fixes vs. require design changes.
Options
| Option | Values | Default | |
|---|---|---|---|
--standard | wcag2a, wcag2aa, wcag21aa, wcag22aa | wcag21aa | |
--target | path/glob or URL | src/ | |
--severity | critical, serious, moderate, all | all | |
--fix | Attempt to auto-fix simple violations | false |
Auto-Fix Candidates
When --fix is passed, safely apply:
- Add
alt=""to clearly decorative images (svg icons, spacers) - Add
lang="en"to<html>if missing - Replace
role="button"on<div onClick>with<button type="button">(explicittype="button"prevents unintended form submissions in form contexts)
Never auto-fix color contrast or heading hierarchy — these require design judgment.
Examples
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingpackages/plugins/development-codebase-tools/skills/audit-accessibility/SKILL.md
Popularity
- Repository stars
- 42
- Repository forks
- 14
- 7-day trend score
- 19
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/uniswap/ai-toolkit/audit-accessibility)