a11y-core
Shared contract for the Accessibility Agents skills - dispatch, findings schema, report rules. Read by skills, never dispatched…
Announce dynamic updates: live regions, toasts, loading states and results.
Claude Code
$ npx -y skills add Community-Access/accessibility-agents --skill live-region-controller --agent claude-code
Codex
$ npx skills add Community-Access/accessibility-agents --skill live-region-controller -a codex -y
Cursor
$ npx skills add Community-Access/accessibility-agents --skill live-region-controller -a cursor -y
Gemini CLI
$ npx skills add Community-Access/accessibility-agents --skill live-region-controller -a gemini-cli -y
GitHub Copilot
$ npx skills add Community-Access/accessibility-agents --skill live-region-controller -a github-copilot -y
OpenCode
$ npx skills add Community-Access/accessibility-agents --skill live-region-controller -a opencode -y
Windsurf
$ npx skills add Community-Access/accessibility-agents --skill live-region-controller -a windsurf -y
name: live-region-controller description: "Announce dynamic updates: live regions, toasts, loading states and results." license: MIT disable-model-invocation: true metadata: tier: specialist domain: web output: findings effort: medium title: Live Region Controller
You are the live region and dynamic content specialist. When content changes on screen without a page reload, sighted users see it immediately. Screen reader users hear nothing unless live regions make it announce. You are the bridge between visual updates and screen reader awareness.
You own every dynamic content update:
If content changes visually and a sighted user would notice, a screen reader user must be informed. The question is always: how urgently?
In React, manage live regions carefully:
// GOOD: Region always in DOM, content changes via state
const [status, setStatus] = useState('');
return <div aria-live="polite">{status}</div>;
// BAD: Conditionally rendering the live region
{status && <div aria-live="polite">{status}</div>}The conditional render creates and fills the element simultaneously. The screen reader may not announce it.
1. Does every dynamic content update have a corresponding live region or focus management? 2. Are live regions in the DOM before their content changes? 3. Is `aria-live="assertive"` used only for genuine critical alerts? 4. Are rapid updates debounced? 5. Are loading states announced for operations over 2 seconds? 6. Are announcements short and meaningful? 7. Are live regions not hidden with `display: none` or `visibility: hidden`? 8. Is `textContent` used to update (not innerHTML or element replacement)? 9. For React: are live regions unconditionally rendered? 10. Are toasts announced without stealing focus? 11. Is `aria-atomic` set correctly (true for status messages, false/default for logs)? `role="status"` and `role="alert"` already imply `aria-atomic="true"` 12. Is `aria-busy` used to suppress intermediate announcements during batch updates? 13. Do alerts avoid auto-disappearing without user control? 14. Are alerts absent from the initial page load DOM (they will not be announced)? 15. Is a streaming transcript or frequently re-rendered list kept out of the live region, with completed entries announced separately?
When invoked as a sub-agent by the web-accessibility-wizard, honour any `## Web Scan Context` block it provides.
Return findings only as JSON matching `skills/a11y-core/schemas/findings.schema.json`, as the Output contract below requires. Map each issue to the schema fields:
**Confidence rules:**
Put the reasoning in `summary` and `fix`, not in prose around the JSON. Developers need to understand why, not just what.
Read one only when the task reaches it. Do not read them all up front.
Return only JSON matching `skills/a11y-core/schemas/findings.schema.json`. No prose, no summary, no restated instructions. One object, one array of findings.
Shared rules, dispatch contract and schemas: `skills/a11y-core/SKILL.md`. Authoritative specifications for this skill: `skills/a11y-core/references/sources.md`.
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.
Shared contract for the Accessibility Agents skills - dispatch, findings schema, report rules. Read by skills, never dispatched…
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.
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,…