WCAG AA accessibility enforcement for Claude Code. 80 specialist agents, 25 commands, and enforcement hooks that delegate to accessibility-lead for UI code review. Includes Playwright integration, veraPDF, PDF form converter, end-user documentation, scan config templates, example project, and three-hook enforcement gate.
Use the alt-text-headings agent to help with this request.
Use the aria-specialist agent to help with this request.
Use the web-accessibility-wizard agent to help with this request.
Use the cognitive-accessibility agent to help with this request.
Use the contrast-master agent to help with this request.
Expert in building accessibility scanning tools, rule engines, document parsers, report generators, and audit automation. WCAG criterion mapping, severity scoring, CLI/GUI scanner architecture, CI/CD integration.
Accessibility team lead and orchestrator. Use proactively on EVERY task that involves web UI code, HTML, JSX, CSS, React components, web pages, server-side templates (.leaf, .ejs, .erb, .hbs), or any user-facing web content. This agent coordinates the accessibility specialist team and ensures no accessibility requirement is missed. Runs the final review before any UI code is considered complete. Applies to any web framework, server-side templating framework (Vapor/Leaf, Rails/ERB, Django/Jinja, Express/EJS), or vanilla HTML/CSS/JS. Works alongside other team leads (e.g., swift-lead) in multi-language projects.
Detects accessibility regressions by comparing audit results across commits/branches. Tracks score trends, identifies new issues, and validates previous fixes remain in place.
Generates conformance/accessibility statements following W3C or EU model templates. Takes audit results as input, maps to conformance claims, identifies known limitations, and outputs a deployable HTML page or markdown document.
GitHub Actions command center -- view workflow runs, read logs, re-run failed jobs, manage workflows, and debug CI failures entirely from the editor. Bypasses the deeply nested, visually-dependent Actions UI that is largely inaccessible to screen readers.
Drive a power-user static accessibility audit of one or more source files (no live URL required) — parallel specialist dispatch, cited by WCAG SC, consolidated into a CSV report, and followed by a batched fix-and-verify loop. Use this whenever the user asks to audit, scan, review, or fix accessibility for a specific file, directory, or set of files — including phrasings like "audit a11y on Button.tsx", "scan this component for accessibility issues", "WCAG check src/components/Modal.jsx", "find a11y bugs in src/features/settings", "static accessibility audit of this file", or any request that names source file paths (not a URL) and asks for an accessibility check. Prefer this skill over route-audit when no dev server is available or the user only wants source-level analysis. Prefer it over ad-hoc specialist dispatch because it enforces parallel delegation, WCAG SC citations, structured CSV output, a triage gate before any edits, and batched remediation — the coordination pieces Claude otherwise skips.
Drive a power-user accessibility audit of a single web route — runtime + static in parallel, cited by WCAG SC, consolidated into a CSV report, and followed by a batched fix-and-verify loop. Use this whenever the user asks to audit, scan, review, or fix accessibility for a specific URL, route, page, component, screen, or view of a web app — including phrasings like "check a11y on /checkout", "audit my settings page", "WCAG audit the dashboard", "find accessibility bugs on this route", "fix the a11y issues on /foo", or any request that mentions a URL + source file together. Prefer this skill over firing individual agents ad-hoc, because it enforces parallel specialist dispatch, WCAG SC citations, structured CSV output, pre-fix snapshots, batched remediation, and post-fix verification — the coordination pieces Claude otherwise skips.
Admin access level
Server config contains admin-level keywords
Modifies files
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Hook triggers on file write and edit operations
Hook triggers on file write and edit operations
Uses power tools
Uses Bash, Write, or Edit tools
Uses power tools
Uses Bash, Write, or Edit tools
A single-plugin Claude Code marketplace containing an extended copy of
Community-Access/accessibility-agents.
Everything lives in this folder — no global installs, no LaunchAgents, no
VS Code settings edits, no auto-update jobs. You extend the files here,
and Claude Code loads them directly.
See SOURCE.md for the upstream commit hash and re-sync instructions.
See README.upstream.md for the original plugin-level README.
.
├── .claude-plugin/
│ ├── marketplace.json # namespace: gautam-a11y
│ └── plugin.json # plugin: [email protected]
├── .mcp.json # registers the a11y-agent-team MCP server
├── agents/ # 80 specialist subagents
├── commands/ # 17 slash commands
├── hooks/hooks.json # 3 enforcement hooks
├── scripts/ # hook implementations
│ ├── a11y-team-eval.sh # UserPromptSubmit
│ ├── a11y-enforce-edit.sh # PreToolUse on Edit|Write
│ └── a11y-mark-reviewed.sh # PostToolUse on Agent
├── mcp-server/ # MCP server (stdio transport)
│ ├── stdio.js # entry point Claude Code spawns
│ ├── server-core.js # MCP tool definitions
│ ├── tools/ # playwright, pdf-form, verapdf tool impls
│ ├── package.json
│ └── node_modules/ # gitignored
├── docs/ # upstream docs
├── example/ # upstream demo project
├── templates/ # config templates (EPUB, enterprise, etc.)
├── CLAUDE.md # plugin CLAUDE.md (not auto-loaded)
├── AGENTS.md # agent inventory
└── SOURCE.md # upstream sync record
--plugin-dir (recommended while extending)Launch Claude Code with this plugin loaded directly from source:
claude --plugin-dir /Users/gautambansal/Coding/a11y-plugin
Claude Code reads files from this directory in-place — every edit to agents,
commands, hooks, or the MCP server takes effect after /reload-plugins. No
cache, no version bumps needed.
/plugin marketplace add /Users/gautambansal/Coding/a11y-plugin
/plugin install accessibility-agents@gautam-a11y
Claude Code copies this directory into ~/.claude/plugins/cache/.... After
that, local edits here will not be picked up until you bump
version in .claude-plugin/plugin.json and run /plugin update.
Uninstall cleanly:
/plugin uninstall accessibility-agents@gautam-a11y
/plugin marketplace remove gautam-a11y
Neither touches this folder.
The MCP server provides runtime scanning tools that several agents rely on:
run_axe_scan, scan_pdf_document, scan_office_document, scan_html_file,
run_verapdf_scan, convert_pdf_form, Playwright-driven browser tools, etc.
.mcp.json at the plugin root registers the server with Claude Code:
{
"mcpServers": {
"a11y-agent-team": {
"command": "node",
"args": ["${CLAUDE_PLUGIN_ROOT}/mcp-server/stdio.js"]
}
}
}
Claude Code spawns node mcp-server/stdio.js as a child process on stdio when
the plugin is enabled. No daemon, no port — it lives with your session.
mcp-server/node_modules/ (64 MB, gitignored) contains:
@modelcontextprotocol/sdk, express, zod (core)[email protected] + @axe-core/[email protected] (browser-based scans)[email protected] (PDF form conversion)Chromium 1208 for Playwright is at ~/Library/Caches/ms-playwright/chromium-1208/.
run_verapdf_scan
won't work but scan_pdf_document (baseline) still does. To add later:
brew install openjdk verapdf.cd mcp-server && node --test server-core.test.js
All 59 upstream tests should pass.
Restart the Claude Code session (or /reload-plugins) so the new stdio.js
child process picks up changes. Hot-reload does not apply to MCP subprocesses.
<name>.md into agents/ with standard YAML
frontmatter (name, description, tools). Restart Claude Code to pick it up.<name>.md into commands/. Becomes /<name>.hooks/hooks.json to add/remove events; edit the shell
scripts under scripts/ to change enforcement logic. Paths in hooks.json
use ${CLAUDE_PLUGIN_ROOT} so moving this folder works.The three hooks are enabled by default (same behavior as upstream):
npx claudepluginhub gautam-bansal-toddle/a11y-plugin --plugin accessibility-agentsUpstash Context7 MCP server for up-to-date documentation lookup. Pull version-specific documentation and code examples directly from source repositories into your LLM context.
Comprehensive startup business analysis with market sizing (TAM/SAM/SOM), financial modeling, team planning, and strategic research
v9.44.1 — Patch release for Gemini environment/version detection and qwen auth gating. Run /octo:setup.
Permanent coding companion for Claude Code — survives any update. MCP-based terminal pet with ASCII art, stats, reactions, and personality.
Complete creative writing suite with 10 specialized agents covering the full writing process: research gathering, character development, story architecture, world-building, dialogue coaching, editing/review, outlining, content strategy, believability auditing, and prose style/voice analysis. Includes genre-specific guides, templates, and quality checklists.
Comprehensive .NET development skills for modern C#, ASP.NET, MAUI, Blazor, Aspire, EF Core, Native AOT, testing, security, performance optimization, CI/CD, and cloud-native applications