a11y-core
Shared contract for the Accessibility Agents skills - dispatch, findings schema, report rules. Read by skills, never dispatched…
Reference data, not a reviewer. Integrate GitHub Accessibility Scanner. Detects configuration, parses scanner issues, correlates with local scans, and tracks Copilot-assigned fixes.
Claude Code
$ npx -y skills add Community-Access/accessibility-agents --skill kb-github-a11y-scanner --agent claude-code
Codex
$ npx skills add Community-Access/accessibility-agents --skill kb-github-a11y-scanner -a codex -y
Cursor
$ npx skills add Community-Access/accessibility-agents --skill kb-github-a11y-scanner -a cursor -y
Gemini CLI
$ npx skills add Community-Access/accessibility-agents --skill kb-github-a11y-scanner -a gemini-cli -y
GitHub Copilot
$ npx skills add Community-Access/accessibility-agents --skill kb-github-a11y-scanner -a github-copilot -y
OpenCode
$ npx skills add Community-Access/accessibility-agents --skill kb-github-a11y-scanner -a opencode -y
Windsurf
$ npx skills add Community-Access/accessibility-agents --skill kb-github-a11y-scanner -a windsurf -y
name: kb-github-a11y-scanner description: Reference data, not a reviewer. Integrate GitHub Accessibility Scanner. Detects configuration, parses scanner issues, correlates with local scans, and tracks Copilot-assigned fixes. license: MIT disable-model-invocation: true user-invocable: false metadata: tier: reference domain: cross-cutting output: none effort: low title: Github A11y Scanner
The [GitHub Accessibility Scanner](https://github.com/github/accessibility-scanner) (`github/accessibility-scanner@v3`) is an official GitHub Action that:
**Current version:** v3 (public preview)
To determine whether a repository has the GitHub Accessibility Scanner configured:
Search for workflow files referencing the scanner action:
# Search in .github/workflows/ for the scanner action reference grep -rl "github/accessibility-scanner" .github/workflows/
**Pattern to match in YAML:**
- uses: github/accessibility-scanner@v3
When a scanner workflow is found, extract its configuration:
| Input | Required | Description | |-------|----------|-------------| | `urls` | Yes, unless `url_configs` is set | Newline-delimited list of URLs to scan | | `url_configs` | No | JSON array of per-URL configs (`url`, optional `excludeSelectors` and `waitForSelectors`); takes precedence over `urls` | | `repository` | Yes | Repository (owner/name) where issues and PRs are created | | `token` | Yes | Fine-grained PAT: `actions`, `contents`, `issues` and `pull-requests` write, `metadata` read. `GITHUB_TOKEN` does not work | | `cache_key` | Yes | Key for caching results across runs; characters `A-Za-z0-9._/-` | | `login_url` | No | Login page URL for authenticated scanning | | `username` | No | Username for authentication | | `password` | No | Password for authentication (via repository secret) | | `auth_context` | No | JSON with username, password, cookies and/or localStorage; overrides `login_url`, `username`, `password` | | `skip_copilot_assignment` | No | Set `true` to skip assigning issues to Copilot | | `include_screenshots` | No | Set `true` to capture screenshots (stored on `gh-cache` branch) | | `group_by` | No | `finding` (default), `rule` or `rule+url`; decides how many issues are filed | | `scans` | No | Scanners to run: `axe` (default), `accesslint`, or plugin names | | `dry_run` | No | Log what would be filed without touching issues or the cache |
The scanner creates GitHub Issues with a structured format. Agents should parse these fields:
Scanner-created issues can be identified by:
1. **Author:** The GitHub Actions bot that runs the workflow 2. **Labels:** The scanner applies labels to categorize findings (typically accessibility-related labels) 3. **Body structure:** Issues contain structured sections with violation details
Scanner issues typically contain:
| Section | Content | Agent Use | |---------|---------|-----------| | Violation title | The axe-core rule that was violated | Map to `kb-help-url-reference` for remediation docs | | WCAG criterion | The specific WCAG success criterion | Used for severity scoring and compliance mapping | | Affected element | CSS selector or HTML snippet of the failing element | Used by `scanner-bridge` to map to source code | | Impact level | Critical, Serious, Moderate, or Minor | Direct mapping to agent severity model | | Remediation guidance | How to fix the issue | Enriched by agent specialists with framework-specific fixes | | URL | The page URL where the issue was found | Used for cross-referencing with local axe-core scans | | Screenshot link | Link to screenshot on `gh-cache` branch (if enabled) | Included in audit reports |
The scanner uses axe-core impact levels that map directly to the agent severity model. Weights are the ones in `skills/a11y-core/scripts/merge-findings.mjs`, multiplied by confidence (high 1, medium 0.7, low 0.4):
| Scanner Impact | Agent Severity | Score Weight | |---------------|---------------|-------------| | Critical | critical | 10 | | Serious | serious | 5 | | Moderate | moderate | 2 | | Minor | minor | 1 |
The scanner uses axe-core under the hood. Scanner issue titles and violation IDs correspond to axe-core rules already cataloged in `kb-help-url-reference`. Common scanner-reported rules:
| axe-core Rule ID | WCAG Criterion | Common Description | |-------------------|----------------|-------------------| | `image-alt` | 1.1.1 | Images must have alternate text | | `label` | 4.1.2 | Form elements must have labels | | `color-contrast` | 1.4.3 | Elements must have sufficient color contrast | | `link-name` | 2.4.4 | Links must have discernible text | | `html-has-lang` | 3.1.1 | `<html>` element must have a lang attribute | | `button-name` | 4.1.2 | Buttons must have discernible text | | `document-title` | 2.4.2 | Documents must have `<title>` element | | `bypass` | 2.4.1 | Page must have means to bypass repeated blocks | | `heading-order` | none (best-practice; relates to 1.3.1) | Heading levels should increase by one | | `aria-allowed-attr` | 4.1.2 | ARIA attributes must be allowed for element role |
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,…