uniswap/ai-toolkit/audit-accessibility

Claude Code and agent skill by uniswap/ai-toolkit

Trust tier 2
  • community
LLM review pending
Source check pending

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-accessibility

SKILL.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

  1. Detect scope: Identify target files (JSX/TSX/HTML/Vue/Svelte)
  2. Static analysis: Scan code for structural a11y issues
  3. Tool detection: Check for available automated tools (axe, pa11y, lighthouse)
  4. Run tools: Execute available auditors on the target
  5. Report: Output violations grouped by severity with fix guidance

What Gets Checked

Structural (Static Analysis)
CategoryWhat to Check
Images<img> missing alt; decorative images use alt=""
FormsEvery <input> / <select> / <textarea> has associated <label> or aria-label
HeadingsHeading hierarchy is sequential (h1 → h2 → h3, no skipped levels)
Buttons & linksInteractive elements have accessible text (not icon-only without aria-label)
Color contrastCSS custom properties checked; hardcoded hex values flagged for manual review
ARIArole, aria-* attributes used correctly; no redundant roles
KeyboardonClick on non-interactive elements without onKeyDown/onKeyPress
FocusNo tabIndex > 0; focus-visible not suppressed via outline: 0 without replacement
Language<html lang="..."> present
LandmarksPage has at least one <main> landmark
Automated Tools (when available)
@axe-core/cli → npx axe <url> or jest-axe in test files
pa11y → npx pa11y <url>
lighthouse → npx lighthouse <url> --only-categories=accessibility --output=json

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:

  1. Read the file
  2. Check the structural categories in the table above
  3. Record each violation with file path, line number, WCAG criterion, and severity

Severity mapping:

SeverityExamples
CriticalMissing alt text on informative image, form input with no label
SeriousInteractive element with no accessible name, missing lang attribute
ModerateSkipped heading level, onClick without keyboard handler
MinorRedundant 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:

Accessibility Audit: <target>
WCAG Standard: 2.1 AA
───────────────────────────────
Critical: N (must fix before release)
Serious: N (fix soon)
Moderate: N (fix in backlog)
Minor: N (nice to have)
───────────────────────────────
[CRITICAL] src/components/Avatar.tsx:12
Issue: <img> missing alt attribute
WCAG: 1.1.1 Non-text Content
Fix: Add alt="" for decorative or alt="<description>" for informative image
[SERIOUS] src/pages/LoginForm.tsx:34
Issue: <input type="email"> has no associated label
WCAG: 1.3.1 Info and Relationships, 4.1.2 Name, Role, Value
Fix: Add <label htmlFor="email">...</label> or aria-label attribute
[MODERATE] src/components/Sidebar.tsx:88
Issue: onClick handler on <div> with no keyboard equivalent
WCAG: 2.1.1 Keyboard
Fix: Use <button> element or add onKeyDown={handleKey} and role="button" tabIndex={0}
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

OptionValuesDefault
--standardwcag2a, wcag2aa, wcag21aa, wcag22aawcag21aa
--targetpath/glob or URLsrc/
--severitycritical, serious, moderate, allall
--fixAttempt to auto-fix simple violationsfalse

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"> (explicit type="button" prevents unintended form submissions in form contexts)

Never auto-fix color contrast or heading hierarchy — these require design judgment.

Examples

"Check accessibility in src/components"
"Audit a11y compliance for the checkout page"
"Find WCAG violations in LoginForm.tsx"
"Is the dashboard accessible to screen readers?"
"Run an accessibility audit before we ship"

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

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
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/uniswap/ai-toolkit/audit-accessibility/badge)](https://verified-skill.com/skills/uniswap/ai-toolkit/audit-accessibility)

Something wrong with this skill or its page? Tell us.