WCAG Auditor — Claude Code Skill
Audit your own web application for WCAG 2.2 Level AA accessibility
compliance, directly from a Claude Code conversation.
- Runs axe-core via Playwright against
any URL — public or authenticated
- Maps violations to specific WCAG success criteria
- Claude reads your source repo and proposes concrete Edit diffs as fixes
- Produces a deterministic markdown findings report
- Optionally fills in a user-supplied ITI VPAT 2.5 INT template to produce a
formal Accessibility Conformance Report (ACR)
Primary use case: auditing your own web app. The skill assumes Claude can
read your source to locate and fix violations.
Install
Already installed an older version? Upgrade first. Claude Code does not
auto-upgrade installed plugins, and /plugin Discover reads from a local
marketplace clone that only refreshes on demand — so re-installing from
Discover can silently give you the same old version. Run this before
anything else:
/plugin marketplace update wcag-auditor-tools
/plugin uninstall wcag-auditor
/plugin install wcag-auditor@wcag-auditor-tools
The uninstall step is required — a plain /plugin install may
short-circuit on the existing cached version instead of fetching the new
one. After running, invoke any script and confirm the banner line prints
the current version (see latest plugin.json).
This repo ships as both a Claude Code plugin (via a one-plugin marketplace) and
a standalone skill. Pick whichever fits your workflow.
Requirements (all install paths)
- Node.js >= 22 (current active LTS) — the only thing the user installs
themselves
- Runtime dependencies (
playwright, axe-core, etc.) and the Playwright
Chromium binary are installed automatically by Claude on first use. If
you intend to run the CLI scripts directly (npm run audit, etc.) without
Claude, run npm install && npx playwright install chromium in the
installed plugin root once.
Option 1 — Claude Code plugin marketplace (recommended)
From any Claude Code session:
/plugin marketplace add benry-products/wcag-auditor
/plugin install wcag-auditor@wcag-auditor-tools
Then install the runtime dependencies once. The plugin is cached at
~/.claude/plugins/cache/ — find the actual path from the install output,
then:
cd <cached-plugin-path>/skills/wcag-auditor
npm install
npx playwright install chromium
Skills invoked from the plugin are namespaced as wcag-auditor:*.
Option 2 — Skillsmith CLI
npx -y @skillsmith/cli install github:benry-products/wcag-auditor
cd ~/.claude/skills/wcag-auditor
npm install
npx playwright install chromium
Requires @skillsmith/cli. Handles download +
installation to ~/.claude/skills/ automatically.
Option 3 — Manual skill copy
git clone https://github.com/benry-products/wcag-auditor.git
cp -r wcag-auditor/skills/wcag-auditor ~/.claude/skills/
cd ~/.claude/skills/wcag-auditor
npm install
npx playwright install chromium
The simplest path — no tooling beyond git and npm. Works offline after the
initial clone and npm install.
Option 4 — Local plugin-dir session (dev / testing)
For trying the plugin without a persistent install:
git clone https://github.com/benry-products/wcag-auditor.git
cd wcag-auditor && npm install && npx playwright install chromium
claude --plugin-dir ./
The plugin is active only for that Claude Code session.
Quick start
From any Claude Code session:
audit https://my-app.example.com for WCAG 2.2 AA
Claude will trigger the skill, clarify scope, and run the audit. For
authenticated routes, Claude will walk you through generating an auth.json
session-state file via a one-time headed login.
CLI usage (direct)
The scripts are also runnable directly:
# Single URL
npm run audit -- --url https://example.com --out ./audit.json
# Multi-page via sitemap + explicit list
npm run audit:site -- \
--sitemap https://example.com/sitemap.xml \
--urls ./urls.txt \
--auth ./auth.json \
--out ./audit/
# Generate markdown findings report
npm run report -- --aggregated ./audit/aggregated.json --out ./report.md
# Optional: fill a user-supplied ITI VPAT 2.5 INT template
npm run vpat:fill -- \
--template ./VPAT2.5INT.docx \
--aggregated ./audit/aggregated.json \
--product "MyApp" --version "1.0"
See skills/wcag-auditor/SKILL.md for the full workflow and flag reference.
What's in scope (v0.1.0)
- WCAG 2.2 Level AA by default; Level AAA opt-in via
--level AAA
- Public +
storageState-authenticated routes
- Sitemap + explicit URL list + bounded seeded crawl
- Findings mapped to Section 508 and EN 301 549 via published crosswalks
- Markdown findings report (deterministic)
- VPAT 2.5 INT
.docx fill-in (user supplies template)