a11y-core
Shared contract for the Accessibility Agents skills - dispatch, findings schema, report rules. Read by skills, never dispatched on its own.
Reference data, not a reviewer. CI/CD accessibility pipeline patterns with axe-core CLI, SARIF output, PR annotations, baseline management, and multi-platform CI templates.
$ npx -y skills add Community-Access/accessibility-agents --skill kb-ci-integration --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/kb-ci-integrationContext preview
The summary Claude sees to decide when to auto-load this skill.
Reference data, not a reviewer. CI/CD accessibility pipeline patterns with axe-core CLI, SARIF output, PR annotations, baseline management, and multi-platform CI templates.
name: kb-ci-integration description: Reference data, not a reviewer. CI/CD accessibility pipeline patterns with axe-core CLI, SARIF output, PR annotations, baseline management, and multi-platform CI templates. license: MIT disable-model-invocation: true user-invocable: false metadata: tier: reference domain: cross-cutting output: none effort: low title: Ci Integration
**Domain:** CI/CD accessibility pipeline configuration **Agents that use this skill:** `ci-accessibility`, `web-accessibility-wizard`, `accessibility-lead`
---
Patterns, templates, and reference data for integrating automated accessibility scanning into CI/CD pipelines. Covers axe-core CLI, Lighthouse CI, SARIF output, baseline management, and multi-platform configuration.
---
npm install --save-dev @axe-core/cli
npx axe <url> --tags wcag2a,wcag2aa,wcag21a,wcag21aa,wcag22aa
Each flag, with its output.
| Flag | Output | |------|--------| | `--reporter json` | JSON results to stdout | | `--reporter sarif` | SARIF format for code scanning | | `--reporter html` | Human-readable HTML report | | `--save <file>` | Save results to file |
Each code, with its meaning.
| Code | Meaning | |------|---------| | 0 | No violations found | | 1 | Violations found | | 2 | Error running scan |
---
Without a baseline, every legacy violation fails CI, making adoption impossible on brownfield apps. With a baseline, CI gates only prevent regressions.
{
"version": "1.0",
"timestamp": "2026-03-22T00:00:00Z",
"tool": "@axe-core/cli",
"tags": "wcag2a,wcag2aa,wcag21a,wcag21aa,wcag22aa",
"violations": {
"color-contrast": { "count": 12, "pages": ["index.html", "about.html"] },
"image-alt": { "count": 3, "pages": ["gallery.html"] },
"label": { "count": 5, "pages": ["contact.html", "signup.html"] }
},
"total": 20
}current_violations = run_axe_scan()
baseline = load("axe-baseline.json")
new_violations = current_violations - baseline
if new_violations.count > 0:
FAIL PR — "N new accessibility violations introduced"
else:
PASS — "No new violations (M existing in baseline)"---
name: Accessibility Check
on:
pull_request:
paths: ['**/*.html', '**/*.jsx', '**/*.tsx', '**/*.vue', '**/*.svelte']
jobs:
a11y:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: 22 }
- run: npm ci
- run: npx axe $(git diff --name-only HEAD~1 --diff-filter=ACMR -- '*.html' | tr '\n' ' ') --tags wcag2a,wcag2aa,wcag21a,wcag21aa,wcag22aa --reporter json --save results.json
- name: Check results
run: |
violations=$(jq '[.[].violations[]] | length' results.json)
echo "Found $violations violations"
if [ "$violations" -gt 0 ]; then exit 1; fi---
SARIF (Static Analysis Results Interchange Format) enables inline annotations in GitHub PR diffs.
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
category: accessibility---
Each strategy, with blocks on and best for.
| Strategy | Blocks On | Best For | |----------|-----------|----------| | **Strict** | Any violation (all severities) | New greenfield projects | | **Standard** | Critical + Serious only | Active projects with good a11y baseline | | **Baseline** | New violations only (regression) | Brownfield adoption, legacy codebases | | **Warning** | Never blocks, comments only | Awareness phase, gradual adoption |
---
trigger:
paths:
include: ['**/*.html', '**/*.jsx', '**/*.tsx']
pool:
vmImage: 'ubuntu-latest'
steps:
- task: NodeTool@0
inputs: { versionSpec: '22.x' }
- script: npm ci && npx axe $(Build.SourcesDirectory)/index.html --tags wcag2a,wcag2aa
displayName: 'Accessibility Scan'accessibility:
image: node:22
script:
- npm ci
- npx axe $CI_PROJECT_DIR/index.html --tags wcag2a,wcag2aa
only:
changes: ['**/*.html', '**/*.jsx', '**/*.tsx']---
Each axe-core impact, with its CI priority and action.
| axe-core Impact | CI Priority | Action | |----------------|-------------|--------| | critical | p1-blocker | Must block merge | | serious | p2-high | Should block merge | | moderate | p3-medium | Warn in PR comment | | minor | p4-low | Info only |
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 on its own.
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 merges their findings.
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.