agentsclimarketplace

A11y workflow

Skill zivtech/accessibility-skills/.claude/skills/a11y-workflow

Accessibility Skills (accessibility-skills): AI skills that plan, review, test, and audit web accessibility (WCAG 2.2) — Accessibility Planner, Critic, Tester, Perspective Audit, and Bug Reporting for Claude Code, Codex, and local models, with cross-model benchmarks.

Install
npx -y skills add zivtech/accessibility-skills --skill a11y-workflow

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Orchestrate the a11y accessibility lifecycle: scout → plan → critique → [perspective audit] → test → critique. Dual-mode: full lifecycle automation or step-by-step dispatch. Spawns specialist agents at depth-1 from the main session.

The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

9.1 KB, as published. Nobody here has run it

A11y Workflow Orchestrator

This skill sequences the accessibility lifecycle by spawning specialist agents from the main session. All agents run at depth-1 — no nested delegation.

When to Use

  • /a11y-workflow full <target> — run the complete plan-critique-test-critique lifecycle
  • /a11y-workflow step <step-name> <target> — run a single step, user drives the sequence
  • When reviewing or planning accessibility for a component, page, or feature

Team Roles

RoleAgentModelJob
Scouta11y-scouthaikuFile discovery, ARIA inventory, component type ID
Plannera11y-planneropusDesign accessibility before coding (9-phase)
Critica11y-criticopusReview ARIA patterns, focus management, state communication (8-phase)
Testera11y-test skilln/aPlaywright keyboard tests, axe-core scans, keyboard-a11y-tester journey audits, virtual-screen-reader component SR assertions
Auditorperspective-auditopusDeep 7-perspective review on escalated perspectives

Context Passing Between Agents

Each agent starts with a fresh context window. The main session bridges context between them:

  • Scout → Planner/Critic: Scout returns a structured recon summary (~500-1500 chars). Inject verbatim into the next agent's prompt.
  • Planner → Critic: Planner writes plan to docs/a11y-plans/YYYY-MM-DD-<feature>-a11y-plan.md. Critic is spawned with file paths to the plan and source code — it reads both using its Read tool.
  • Critic → Perspective Audit: Extract only the alarm levels and findings for escalated perspectives (~500-1500 chars). Inject into the perspective-audit prompt.
  • Test → Critic: Inject structured test results summary (~500-1000 chars) into the critic prompt alongside source file paths. keyboard-a11y-tester artifacts (trace.json, deterministic-findings.json, screen-reader-census.json) exceed the inject budget — pass their file paths instead; the critic's Phase 0 knows the format and its calibration rules.
  • Size budget rule: Output > 2K chars → write to file, next agent reads. Output ≤ 2K chars → inject into prompt.

Mode 1 — Full Lifecycle

Invocation: /a11y-workflow full <target>

The main session follows these steps sequentially. Do NOT spawn all agents at once — each step's output informs the next.

Step 1: Scout

Agent(subagent_type="a11y-scout", model="haiku", prompt="
  Discover and inventory the accessibility state of: <target>
  Return: file paths, component type, existing ARIA attributes, estimated complexity.
  Keep output under 1500 chars — structured summary only.
")

Step 2: Plan

Agent(subagent_type="a11y-planner", model="opus", prompt="
  Design accessibility for the following component.
  Scout recon: <inject scout output>
  Source files: <file paths from scout>
  Write the plan to docs/a11y-plans/YYYY-MM-DD-<feature>-a11y-plan.md
")

Step 3: Critique the Plan

Agent(subagent_type="a11y-critic", model="opus", prompt="
  Review this accessibility plan for gaps before implementation.
  Plan file: <path written by planner>
  Source files: <file paths from scout>
  Flag perspective alarm levels (LOW/MEDIUM/HIGH) for each of the 7 perspectives.
")

Step 4: Perspective Audit (conditional)

Only if the critic flags any perspective at MEDIUM or HIGH alarm:

Agent(subagent_type="perspective-audit", model="opus", prompt="
  Deep review from escalated perspectives.
  Escalated perspectives and findings: <extract from critic output>
  Source files: <file paths>
")

Step 4b: Role Audit — Design Mode (optional)

If user requests role-specific review, or the plan affects multiple team roles:

Agent(subagent_type="a11y-role-auditor", model="opus", prompt="
  Review this accessibility plan from team responsibility perspectives.
  Mode: design
  Roles: visual-design, ux-design (or all if requested)
  Plan file: <path>
  Source files: <file paths>
")

Step 5: Return to User

Present the plan + critique + perspective audit + role audit findings. User revises and implements.

Step 6: Test (after implementation)

Invoke the /a11y-test skill, routing by target kind:

  • Component/widget with (or needing) codified testsnpx playwright test .spec.js + axe-core scans (the skill's primary path).
  • Component announcement/name/reading-order behavior (pre-deploy, no URL) → virtual-screen-reader assertions in the project's own unit suite or Storybook play functions, alongside the .spec.js lane — light-DOM components only (shadow roots are invisible to it), persistent-container pattern for live regions, never fake timers, never as keyboard evidence. See the a11y-test skill's component section.
  • Live URL + user journey ("can a keyboard-only or screen-reader user complete X on this page?") → keyboard-a11y-tester: batch crawl for recon, then a driven serve/step session for interaction evidence. The main session drives the serve/step loop directly — it is a CLI, not an agent, so depth-1 is preserved. Calibration: batch-mode 4.1.3 findings are prompts to drive, never failures.

All lanes produce evidence for Step 7.

Step 6b: Role Audit — Code Mode (optional)

If user requests role-attributed findings, or findings need to be routed to specific team members:

Agent(subagent_type="a11y-role-auditor", model="opus", prompt="
  Review this implementation from team responsibility perspectives.
  Mode: code
  Roles: all (or specific roles if requested)
  Source files: <file paths>
  Test results summary: <inject test output summary>
")

Step 7: Critique the Implementation

Agent(subagent_type="a11y-critic", model="opus", prompt="
  Review this implementation for accessibility design issues.
  Source files: <file paths>
  Test results summary: <inject test output summary>
  keyboard-a11y-tester artifacts (if produced): <paths to trace.json / deterministic-findings.json / screen-reader-census.json>
  virtual-screen-reader results (if produced): <inject spoken-phrase log slices + tool version + test file paths — logs are small enough to inject directly>
")

Step 8: Perspective Audit (conditional)

Same as Step 4 — only if critic flags MEDIUM/HIGH alarms.

Step 9: Return to User

Present implementation critique + perspective audit findings. User fixes and re-tests.

Mode 2 — Step Dispatcher

Invocation: /a11y-workflow step <step-name> <target>

User drives each step manually. The skill spawns the appropriate agent for the requested step.

Step NameAgentModelWhat It Does
scouta11y-scouthaikuDiscover files, inventory ARIA state
plana11y-planneropusDesign accessibility (pass prior recon if available)
critiquea11y-criticopusReview plan or implementation
testa11y-test skilln/aRun Playwright + axe-core; virtual-screen-reader assertions for component announcement targets; keyboard-a11y-tester journey audit for live-URL targets
auditperspective-auditopusDeep perspective review (specify --perspectives to limit)
rolesa11y-role-auditoropusARRM role-based review (specify --roles to limit)

Examples

/a11y-workflow step scout src/components/Modal.tsx
/a11y-workflow step plan src/components/Modal.tsx
/a11y-workflow step critique src/components/Modal.tsx
/a11y-workflow step audit src/components/Modal.tsx --perspectives keyboard,cognitive
/a11y-workflow step roles src/components/Modal.tsx --roles visual-design,ux-design

Triage Mode (Cost-Sensitive)

For cost-sensitive runs, add --triage to critique steps:

/a11y-workflow step critique --triage src/components/Modal.tsx

This spawns the critic at Sonnet first, reads the structured output, and checks escalation signals:

  • CLEAN verdict (no bugs found) → re-run at Opus (false positive risk)
  • ADVERSARIAL pattern / ambiguous tradeoff → re-run at Opus (verdict calibration)
  • Low-confidence CRITICAL finding → re-run at Opus (severity calibration)
  • No verdict emitted → re-run at Opus (model budget exhausted)

Perspective audit escalation (MEDIUM/HIGH alarm) always runs at Opus regardless of triage mode.

Benchmark Validation

Phase 1 benchmark (8 hard fixtures via Claude Code subagents, 2026-05-19):

TierFLAWED (5)ADVERSARIAL (3)Total
Opus5/5 PASS3/3 PASS (best-tier verdicts)8/8
Sonnet-thinkinherited from Haiku (pass)resolved Haiku failures (acceptable verdicts)8/8
Haiku5/5 PASS0/3 (wrong verdicts)5/8

Opus achieves best-tier verdict quality on every ADVERSARIAL fixture on the first pass. This is the measured basis for Opus-default routing.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.