WCAG Auditor
Use only Web_Toolkit/wcag_auditor (never AI/wcag-auditor or sibling trees).
Evidence gate only — not a WCAG conformance certificate.
Prerequisites
- Client project has a linked
Web_Toolkit/and*.site-profile.json. - Playwright peers in the client project (
playwright,@axe-core/playwright). - Chromium browser binary (
npx playwright install chromium). The CLI auto-installs these unless--skip-playwright-install.
Preferred commands
# With site profile (ephemeral config if no wcag-auditor.config.mjs)
node ./Web_Toolkit/wcag_auditor/bin/wcag-auditor.mjs run \
--site-profile ./<site>.site-profile.json \
--base-url https://example.com
# Persist a checked-in config
node ./Web_Toolkit/wcag_auditor/bin/wcag-auditor.mjs init --site-profile ./<site>.site-profile.json
node ./Web_Toolkit/wcag_auditor/bin/wcag-auditor.mjs run --site-profile ./<site>.site-profile.json --base-url http://127.0.0.1:4321
Confirm: node ./Web_Toolkit/wcag_auditor/bin/wcag-auditor.mjs core-path must end with Web_Toolkit/wcag_auditor.
After every run — share the dashboard
- Locate
wcag-audit-dashboard.htmlunder the run output directory (CLI printsstakeholder dashboard → …). - Open it and share the path with the user (Cursor canvas is optional extra; the HTML dashboard is the durable artifact).
- Prefer findings that show
file:line— those are best-effort maps from selectors/classes intosrc/. Unmapped rows still list the CSS selector for search. - JSON/SARIF remain for tools; dashboard is for humans.
Rules
- Pass
--site-profilefor toolkit sites. - Prefer live URL or local preview
--base-url; do not invent routes. - Fix findings with smallest safe CSS/markup changes; re-run after fixes.
- Do not treat PageSpeed Accessibility scores as WCAG proof.
- Always surface the stakeholder dashboard path in the chat reply after a run.
- Glassmorphism / frost UI is supported. Axe
color-contrastincompletes map tocantTell(exit 3 unresolved), not an auto-fail. Do not strip frost UI solely to silence the gate. Prefer: raise frost opacity / solid underlay under text → verify AA with a contrast sampler → completefrost-glass-contrastinwcag-audit/manual-evidence.json→ add a bounded suppression withoutcomes: ["cantTell"]foraxe/color-contraston the route. SeeWeb_Toolkit/wcag_auditor/docs/GLASSMORPHISM.md. - Never set
gate.unresolvedEvidence: "ignore"just to ship glass; resolve evidence properly.