accessibility

Scan web pages for WCAG violations with axe-core and look up authoritative WCAG 2.2 criterion text.

Updated May 5, 2026
One-click install
npx skills add https://github.com/josippapez/ai-setup --skill accessibility-josippapez
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: accessibility
Source: https://github.com/josippapez/ai-setup/tree/main/claude/plugins/orchestrate/skills/accessibility
Command: npx skills add https://github.com/josippapez/ai-setup --skill accessibility-josippapez

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires axe-core, @rawwee/wcag-cli, and includes scripts (resource) components.

What problem does it solve? Accessibility work requires both finding real violations in a running page and citing exact WCAG criterion text, but AI models often recall criterion wording, levels, or technique details incorrectly. This Skill combines a live axe-core scanning harness driven through the chrome-devtools MCP with a bundled WCAG CLI that returns authoritative WCAG 2.2/2.1 text, so audits and citations are grounded in the actual spec rather than memory. ## Core Features & Use Cases - Live page scanning: Inject scripts/a11y-audit.js into any running web app to run axe-core, map tab order, check accessible names, and verify focus indicators with a real-keyboard walk that avoids false positives from programmatic focus probes. - Authoritative WCAG lookup: Query principles, guidelines, success criteria, techniques, failures, and glossary terms via npx @rawwee/wcag-cli, with a --normative mode for citation-ready requirement text and token-cost guidance per command. - Offline-capable dataset: The full WCAG 2.2 dataset ships bundled with the CLI, refreshes conditionally in the background, and works with zero network via WCAG_CLI_NO_NETWORK=1. - Use Case: While reviewing a checkout page, run the audit harness to find a missing focus indicator on the payment button, confirm it with the real-keyboard walk, then cite "2.4.7 Focus Visible (AA)" with exact normative text in the bug report. ## Quick Start Ask the AI to run an accessibility audit on the currently open page and look up the WCAG criteria for any violations it finds.

Frequently Asked Questions about accessibility

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run an accessibility audit on a live web page?

Serve the bundled a11y-audit.js harness over a local HTTP server, inject it into the page via the chrome-devtools MCP evaluate_script, then call window.__a11yAudit(). It runs axe-core plus tab-order, accessible-name, and focus-indicator probes against any web app with no per-repo setup.

How do I look up exact WCAG criterion text from the command line?

Run npx @rawwee/wcag-cli get-criterion <id> --normative to get the requirement and its exceptions without the Understanding prose. The full dataset ships inside the package, so every command works offline, and a conditional refresh keeps the data current.

Why does the focus indicator check report false positives?

The programmatic focus probe in __a11yAudit over-reports because .focus() does not always match real keyboard focus painting. Confirm every negative finding with __a11yWalkStart(), real Tab keypresses, and __a11yWalkRead(), which records computed styles at genuine focus changes.

Does the WCAG CLI work offline or in CI?

Yes, the complete WCAG 2.2 dataset is bundled in the package, so all commands work with no network. Set WCAG_CLI_NO_NETWORK=1 to guarantee zero requests in CI; it overrides --refresh for reproducible offline runs.

Can this tool map WCAG to Section 508 or ADA requirements?

The dataset contains no Section 508, EN 301 549, or ADA mapping and no command emits one. Since those standards incorporate WCAG Level AA by reference, list AA criteria with the CLI and state explicitly that the legal mapping came from you, not the dataset.

What are the limitations of automated axe-core accessibility scanning?

Axe finds only a fraction of WCAG failures and cannot log in, hear screen-reader output, or judge whether every report is a real product bug. Treat incomplete results as items to inspect manually, and use a real screen reader for announcement testing.