muhnad/a11y-checker/a11y-fix
Claude Code and agent skill by muhnad/a11y-checker
- community
Checking that the SKILL.md file is still in the repository.
Find and fix accessibility problems in a web page or codebase (React, Next.js, React Native, Angular, plain HTML/JS), or in just the files or directories the user names. Use when asked to audit, check or fix accessibility (a11y, WCAG, axe, screen reader, alt text, labels, contrast).
Install
npx vskill@latest install muhnad/a11y-checker/a11y-fixSKILL.md
a11y-fix
Scan, fix, rescan, report. Uses the a11y-checker MCP tools (scan_page, explain_rule); if they are not available, use the CLI: npx a11y-checker <target> --json. The CLI prints a bare JSON array of findings and exits 1 when there are any (that is not a crash).
1. Pick the target
Scope first. Scan only what the user named: a file, several files, a directory or a URL. Pass them all in one call (target can be a list; the CLI takes several arguments). If they named nothing, ask which files or directories; scan the whole project only when they ask for the whole codebase. Only edit files inside that scope, and report (do not fix) findings that point outside it.
- Source code: scan the directory or file. A directory scan covers JS/TS/JSX/TSX (React, Next.js, React Native), Vue (
.vue), Astro (.astro, needseslint-plugin-astro; if aWarning:says it was skipped, runnpx a11y-checker init), Angular templates (.htmlfragments and inlinetemplate:strings in*.component.ts), and full HTML pages (rendered and checked with axe). Svelte, template engines and DOM code built in plain JS (document.createElement) are not linted statically; scan the running page's URL instead. Findings carryfileandline. Works without a running app and is the only option for React Native. - Running app or page: scan the URL (start the dev server first if needed). Findings carry a CSS
selectorandhtml. Use this too for Next.js, because it checks the rendered result (e.g.next/imagealt, page title, contrast), which source scanning cannot. - Do both for a web app when you can: source first, then the URL.
An .html file path is rendered directly, no server needed. A directory or any other file is linted as source.
Next.js and multi-page apps have many routes. Scan each important route's URL.
2. Scan
Call scan_page with the target. If the result (or the CLI's stderr) carries a Warning: about skipped files or nothing to scan, those files were not checked. Never report a clean result for them: say so, and scan the running app's URL instead (or ask for it). Add tags: ["wcag2aa", "wcag22aa"] for a specific WCAG level. For client-rendered pages, pass waitFor with a selector that appears once the app has rendered.
3. Fix
Work through findings, most severe first (critical, serious, moderate, minor). Source findings are all serious, so order those by file.
Fix the root cause, then rescan: one change often clears several findings (a clickable <div> turned into a <button>, one missing <main>).
- Source findings: open
fileatlineand fix it there. - Web findings: locate the element in source. Search for distinctive text from
html, the id, class ordata-testidinselector. Fix the component that renders it, not just one instance. - Use
fixHintas the starting point; callexplain_rulefor a webruleIdwhen the hint is not enough. - Prefer native HTML (
<button>,<label>,<nav>) over adding ARIA. Addlangto<html>, analtto images (alt=""only if decorative), a name to every control.
Do not guess content. These need the real content and count as not fixable by you: alt text, link text, button names, page <title> and <h1>. If you cannot tell what something is for, ask; if you cannot ask, leave it and list it in the report.
4. Rescan
Scan the same target again. Repeat steps 3 and 4 until only findings that need real content remain, at most three rounds.
5. Report
Give: what was fixed (rule, file), what remains, and why. Always call out these as needing a human:
- Color contrast (
color-contrast): needs a design decision. - Meaningful alt text, captions and transcripts.
- Anything automated tools cannot judge. Automated scanning finds only part of the problems; say so, and recommend a keyboard and screen reader pass.
Known gaps
- Source scanning does not check Next.js
<Image>alt text. The URL scan does. - Source findings have no WCAG tags and are all reported as
serious. - Source scanning does not cover Svelte, template engines or markup built by plain JS; use the URL scan for those.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/a11y-fix/SKILL.md
Popularity
- Repository stars
- 117
- Repository forks
- 20
- 7-day trend score
- 0
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/muhnad/a11y-checker/a11y-fix)