Accessibility audit
Skill tansuasici/claude-code-kit/.claude/skills/accessibility-audit
Audit UI code for WCAG 2.1 AA compliance — semantics, keyboard navigation, color contrast, and ARIA. Use when auditing accessibility or the user mentions a11y, screen readers, WCAG, or keyboard support. For visual/design quality use /design-review instead.From its SKILL.md
npx -y skills add tansuasici/claude-code-kit --skill accessibility-auditAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 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.
SKILL.md
6.2 KB, as published. Nobody here has run it
Accessibility Audit
Core Rule
Test against WCAG 2.1 AA criteria with concrete user-impact. Never auto-edit semantic HTML or ARIA without explicit user approval.
When to Use
Invoke with /accessibility-audit when:
- Building or reviewing user-facing UI components
- Preparing for an accessibility compliance review
- Fixing reported accessibility issues
- Ensuring inclusive design for all users
- Before launching a new feature with UI changes
Default Behavior
When the user asks to audit, scan, review, or "give me a report" for accessibility / WCAG compliance, produce the full accessibility-audit report automatically using the Process and Output Format sections below. Do not require the user to specify fields.
Only modify files when the user explicitly requests implement / fix / apply / refactor. By default, this skill is report-only.
Process
Phase 1: Inventory (first-pass leads)
This pass produces candidates, not findings. Treat counts as leads for deeper inspection in later phases. Do not report Phase 1 raw output as the final result.
Determine the UI technology:
- Web: React, Vue, Angular, Svelte, plain HTML
- Mobile: React Native, Flutter, native iOS/Android
- Desktop: Electron, Tauri, native desktop
Adapt checks to the framework's accessibility patterns.
Phase 2: Semantic Structure
Check that UI elements convey meaning:
HTML Semantics (Web)
- Use semantic elements (
<nav>,<main>,<article>,<button>) instead of generic<div>/<span> - Heading hierarchy is logical (h1 → h2 → h3, no skipping levels)
- Lists use
<ul>/<ol>/<dl>not styled divs - Forms have associated
<label>elements - Tables have
<thead>,<th>, andscopeattributes for data tables - Landmarks are used correctly (one
<main>, navigation in<nav>)
Component Semantics (All frameworks)
- Interactive elements are focusable and have accessible names
- Custom components expose correct roles to assistive technology
- Decorative elements are hidden from screen readers (
aria-hidden, empty alt)
Phase 3: Keyboard Navigation
Verify full keyboard operability:
- Tab order: logical, follows visual layout, no keyboard traps
- Focus visibility: all interactive elements have visible focus indicators
- Interactive elements: all clickable elements are reachable and operable via keyboard
- Custom widgets: keyboard patterns follow WAI-ARIA Authoring Practices
- Modals: trap focus, Escape to close
- Dropdowns: Arrow keys to navigate, Enter to select, Escape to close
- Tabs: Arrow keys to switch, Tab to move to content
- Sliders: Arrow keys to adjust
- Skip links: "Skip to main content" link for long navigation
- No mouse-only interactions: hover-only tooltips, drag-only sorting
Phase 4: Visual Accessibility
Check visual design compliance:
Color & Contrast
- Text contrast ratio ≥ 4.5:1 (normal text) or ≥ 3:1 (large text, 18px+ or 14px+ bold)
- UI component contrast ≥ 3:1 against adjacent colors
- Information is not conveyed by color alone (add icons, patterns, or text)
- Focus indicators have sufficient contrast
Typography & Layout
- Text can be resized to 200% without loss of content
- No horizontal scrolling at 320px viewport width (responsive)
- Line height ≥ 1.5, paragraph spacing ≥ 2x font size
- Touch targets ≥ 44x44px (mobile)
Motion & Animation
- Respect
prefers-reduced-motionmedia query - No auto-playing animations longer than 5 seconds without pause control
- No content that flashes more than 3 times per second
Phase 5: ARIA Usage
Audit ARIA implementation:
- First rule of ARIA: Don't use ARIA if native HTML can do it
- Correct roles: ARIA roles match the element's purpose
- Required properties: ARIA roles have all required properties (e.g.,
role="slider"needsaria-valuenow) - Live regions: dynamic content updates announced with
aria-live - Labels: interactive elements have
aria-labeloraria-labelledbywhen visible text is insufficient - States: toggle states use
aria-pressed,aria-expanded,aria-selectedcorrectly - No conflicting ARIA: ARIA attributes don't conflict with native semantics
Phase 6: Content Accessibility
Check content is accessible:
- Images: all
<img>havealttext (descriptive for content, empty for decorative) - Forms: error messages are programmatically associated with inputs
- Links: link text is descriptive (no "click here" or "read more" without context)
- Language:
langattribute set on<html>and on elements in different languages - Timeouts: users are warned before timeouts and can extend them
Output Format
# Accessibility Audit Report
## Compliance Level
[Current WCAG 2.1 AA compliance estimate: Non-compliant / Partially / Mostly / Fully]
## Critical Issues (A-level violations)
| # | WCAG Criterion | Location | Issue | Fix |
|---|---------------|----------|-------|-----|
| 1 | 1.1.1 Non-text Content | file:line | Image missing alt text | Add descriptive alt |
## Major Issues (AA-level violations)
| # | WCAG Criterion | Location | Issue | Fix |
|---|---------------|----------|-------|-----|
## Minor Issues (Best practices)
| # | Category | Location | Issue | Fix |
|---|----------|----------|-------|-----|
## Component Checklist
| Component | Keyboard | Screen Reader | Contrast | Status |
|-----------|----------|--------------|----------|--------|
| Navigation | ✅/❌ | ✅/❌ | ✅/❌ | Pass/Fail |
## Recommendations
1. [Highest impact fix]
2. ...
Notes
- This audit covers WCAG 2.1 AA level — AAA is aspirational and not required for most projects
- For mobile apps, apply the equivalent platform accessibility guidelines alongside WCAG
- Static code analysis catches structural issues but manual testing with screen readers is still recommended
- Non-UI projects (APIs, CLIs, libraries) do not need this audit