a11y-tool-builder
Build accessibility scanners, rule engines, parsers and report generators.
Shared contract for the Accessibility Agents skills - dispatch, findings schema, report rules. Read by skills, never dispatched on its own.
Claude Code
$ npx -y skills add Community-Access/accessibility-agents --skill a11y-core --agent claude-code
Codex
$ npx skills add Community-Access/accessibility-agents --skill a11y-core -a codex -y
Cursor
$ npx skills add Community-Access/accessibility-agents --skill a11y-core -a cursor -y
Gemini CLI
$ npx skills add Community-Access/accessibility-agents --skill a11y-core -a gemini-cli -y
GitHub Copilot
$ npx skills add Community-Access/accessibility-agents --skill a11y-core -a github-copilot -y
OpenCode
$ npx skills add Community-Access/accessibility-agents --skill a11y-core -a opencode -y
Windsurf
$ npx skills add Community-Access/accessibility-agents --skill a11y-core -a windsurf -y
name: a11y-core description: Shared contract for the Accessibility Agents skills - dispatch, findings schema, report rules. Read by skills, never dispatched on its own. license: MIT disable-model-invocation: true user-invocable: false metadata: tier: reference domain: cross-cutting output: none effort: low title: Accessibility Agents Core
Shared rules for every skill in the Accessibility Agents package. Skills point here instead of repeating this text. Read the section you need.
Every skill sits in one of four tiers. The tier decides who can start it and what it is allowed to cost.
| Tier | What it is | Who invokes it | |---|---|---| | router | The six entry points: accessibility-lead, web-accessibility-wizard, document-accessibility-wizard, markdown-a11y-assistant, developer-hub, github-hub | The model or the user | | specialist | One accessibility domain, one checklist, one findings payload | A router, by pointer | | helper | Mechanical work: inventory, scanning one file, CSV export, scan config | A router, by pointer | | reference | Rule tables, URL registries, scoring formulas. `kb-` prefix | Cited by a skill that needs the data |
Only routers are model-invocable. Specialists and helpers stay out of every client's skill catalog so they cost nothing until a router names one.
Skills name each other in backticks, such as `kb-python-development`, rather than linking across folders. A named skill's instructions are at `<skills-root>/<name>/SKILL.md`; read one only when the task needs it.
A router dispatches a specialist with the client's own subagent primitive. Keep the prompt at this shape and this size. Never read a specialist's instructions into the router's own context, and never paste a specialist body into a prompt.
Run the skill "aria-specialist": read <skills-root>/aria-specialist/SKILL.md and follow it. It is a specialist, hidden from the skill catalog to save context; running it this way is intended. Replace a leading skills/ in any path it names with <skills-root>/. Task: <one paragraph, what to check and why> Scope: <file list or glob> Rules: semantic HTML before ARIA; report, do not edit. Return ONLY JSON matching <skills-root>/a11y-core/schemas/findings.schema.json.
<skills-root> is the absolute path of the folder that holds this skill's own folder: the parent of the directory this SKILL.md was loaded from. Send it resolved, never as the relative path skills/...: the subagent starts in the user's project, where no skills/ folder exists. If the load path is not shown, it is the folder that contains a11y-core/SKILL.md.
Per client: Claude Code uses the Agent tool, Codex spawns a worker subagent, Copilot uses a subagent or handoff, Gemini and Antigravity use the generalist agent. The prompt is the same in all four.
The specialist reads its own instructions inside its own context. The router receives JSON. Nothing else crosses the boundary.
Skills declare `metadata.output`, and it decides what they return.
no preamble, no restated instructions.
`.a11y-history/<timestamp>/`, then render with `node <skills-root>/a11y-core/scripts/render-report.mjs`. Never type a report by hand unless the renderer cannot run (see "When a tool is not available").
and what each changes.
The findings schema and the renderer are for accessibility audits. GitHub workflow skills (issues, pull requests, briefings, analytics) declare `artifact` and write the document their own instructions describe.
Severity is one of `critical`, `serious`, `moderate`, `minor`. Confidence is `high`, `medium` or `low`. A finding without a location and a fix is not a finding.
These hold for every web skill in the package and do not need restating in a dispatch prompt.
Any audit report this package produces carries all of these, or it is a triage result and must say so in its opening line.
1. Metadata: date, tool versions, scope, scan configuration used 2. Executive summary: score out of 100, A-F grade, counts by severity, verdict 3. Findings: rule ID, WCAG criterion, severity, location, description, fix 4. Severity breakdown by critical, serious, moderate, minor 5. Remediation priorities, ordered by impact against effort 6. Next steps and a re-scan timeline 7. Delta against the previous report when one exists: fixed, new, persistent, regressed
The renderer emits all seven from findings JSON and embeds the merged JSON in a fenced block at the end of the report, which is what makes the next delta cheap.
In a chat with no scanner tools, no scripts and no project files, a skill still works from what the person gives it. Ask for their checker's results by name: Word's, Excel's or PowerPoint's Accessibility Checker, Acrobat's Accessibility Checker or PAC, Ace by DAISY, axe or Accessibility Insights. Use only what you are given, and never say you scanned, ran or opened anything you did not. When the renderer cannot run, write the report yourself with the seven sections above.
WCAG 2.2 AA enforcement for agentic coding, as a set of Agent Skills. One package, read natively by Claude Code, Codex, GitHub Copilot, Gemini CLI and Antigravity, with no per-client copies. Models forget accessibility while generating code.
Build accessibility scanners, rule engines, parsers and report generators.
Web UI accessibility lead. Use before writing or changing HTML, JSX, TSX, Vue, Svelte, CSS or templates. Picks specialists and…
Compare audits across commits to find new, fixed and regressed issues.
Generate a W3C or EU model accessibility statement from audit results.
GitHub Actions: workflow runs, logs, re-runs and CI failure triage.
Alt text, SVGs, figures, charts, heading order, page titles and landmarks.
Produce the "Playwright 1.xx API Review" artifact for a range of commits - the public API additions and the breaking or behavior…
Write, refine, run, and QA promptfoo evaluation suites: promptfooconfig.yaml, prompts, providers, vars, tests, assertions,…
DeepEval evaluation workflow for AI agents and LLM applications. TRIGGER when the user wants to evaluate or improve an AI agent,…