Agent Skills › Frontend › a11y-fixer

Frontend

♿ a11y-fixer

WCAG 2.2 AA audit that fixes accessibility issues in your code. A free, open-source Agent Skill for Claude Code, Cline, Cursor, Codex and 75+ AI agents.

Install a11y-fixer

# Claude Code (all 51 skills)
/plugin install all-skills --marketplace milad-ahmd/agent-skills

# Cursor, Codex, Cline, Windsurf, Copilot + 75 more agents
npx skills add milad-ahmd/agent-skills --skill a11y-fixer

# Shell installer
curl -fsSL https://raw.githubusercontent.com/milad-ahmd/agent-skills/main/install.sh | bash -s -- a11y-fixer

What to say to your agent

When it triggers

Audits web and mobile UI code against WCAG 2.2 AA and fixes accessibility issues directly in the source, including alt text, labels, contrast, keyboard navigation, focus, ARIA, and semantics. Use when the user asks for an accessibility audit, a11y fixes, WCAG compliance, or screen-reader support.

Full skill instructions (SKILL.md)

A11y Fixer

Find accessibility issues and fix them in code. Don't just list them.

1. Audit

Run any available tooling first: eslint-plugin-jsx-a11y, npx @axe-core/cli <url>, Lighthouse, or the platform's accessibility inspector. Then review the components manually against this checklist:

AreaCheck (WCAG 2.2 AA)
ImagesMeaningful alt; decorative → alt=""; icon buttons have accessible names
FormsEvery input has a <label>/aria-label; errors linked via aria-describedby; required fields marked
SemanticsReal <button>/<a> (no clickable <div>), one <h1>, ordered headings, landmarks (main, nav)
KeyboardEverything reachable & operable with Tab/Enter/Space/Esc; no keyboard traps; logical order
FocusVisible focus style (never bare outline: none); focus moves into modals and returns on close
ColorText contrast ≥ 4.5:1 (3:1 large text/UI); info not conveyed by color alone
ARIAPrefer native HTML; no invalid roles; aria-expanded/aria-controls on toggles; live regions for async updates
Motion & mediaRespect prefers-reduced-motion; captions for video; no autoplay with sound
TargetsTouch targets ≥ 24×24 CSS px (44pt iOS / 48dp Android recommended)
MobileReact Native accessibilityLabel/accessibilityRole; Flutter Semantics; SwiftUI .accessibilityLabel

2. Report

A table with severity (🔴 blocks users · 🟠 serious · 🟡 moderate), file:line, the WCAG criterion and the fix.

3. Fix

  • Apply the fixes in the project's own style: existing components, design tokens, i18n for any new strings.
  • For contrast problems, suggest the closest compliant color from the existing palette.
  • Don't change visual design beyond what compliance requires. Flag larger design decisions for the user instead.
  • Re-run the linters and tests afterwards. Report what was fixed and what still needs manual testing with a screen reader (VoiceOver, NVDA or TalkBack).

View source on GitHub ⭐ Star the collection

Related skills