Builds a per-page WCAG 2.2 compliance score report by aggregating output from one or more accessibility scanners (axe-core / pa11y / lighthouse / WAVE / IBM Equal Access), pivoting violations by Success Criterion (1.4.3 contrast, 2.4.7 focus visible, etc.), grouping by conformance level (A / AA / AAA), reporting per-page coverage gaps explicitly (the \"this page wasn't scanned\" failure mode), and emitting both an executive summary and a per-page drill-down. Use after a multi-page accessibility scan - pa11y-ci, axe across a sitemap, lighthouse-batch - when the team needs a shareable conformance report rather than a per-page tool dump.
70
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Deep reference for wcag-compliance-reporter SKILL.md. Consult when rendering
the whole multi-table report; SKILL.md Step 5 keeps only the top verdict table
and points here for the rest.
The complete report renders the executive verdict first, then process-coverage, failures-by-SC, per-page-detail, and coverage-gap sections. The full template (every section with example rows):
# WCAG 2.2 Compliance Report
**Generated:** 2026-05-05
**Site:** example.com
**Scope:** 22 pages across 4 processes
**Tools used:** axe-core 4.10.3, pa11y 8.1.0, Lighthouse 12.5.0
## Verdict
| Conformance level | Verdict | Reason |
|-------------------|---------|--------|
| A | ❌ non-conformant | 3 SC failing on 7 pages |
| AA | ❌ non-conformant | + 5 additional SC failing on 12 pages |
| AAA | ⚠ unknown | 14 of 28 AAA SC weren't checked by any scanner |
> Per [wcag-conformance][wcag-conf]: "All success criteria at a
> claimed level must be satisfied with no exceptions." Failing
> means the conformance claim cannot be made for this level.
## Process coverage
| Process | Pages spec | Pages scanned | Missing |
|-----------|-----------:|--------------:|---------------------------------|
| checkout | 6 | 5 | `/checkout/confirm` not scanned |
| account | 3 | 3 | - |
⚠ Until `/checkout/confirm` is scanned, the **checkout process**
cannot claim conformance regardless of per-page results
([wcag-conformance][wcag-conf] "Complete Processes").
## Failures by Success Criterion (Level A + AA)
| SC | Title | Level | Pages affected | Total instances |
|---------|------------------------------------|-------|---------------:|----------------:|
| 1.4.3 | Contrast (Minimum) | AA | 7 | 23 |
| 2.4.7 | Focus Visible | AA | 4 | 8 |
| 3.3.2 | Labels or Instructions | A | 3 | 5 |
| 4.1.2 | Name, Role, Value | A | 6 | 14 |
| 1.1.1 | Non-text Content | A | 2 | 4 |
(Click an SC for per-page detail.)
## Per-page detail (top failing pages)
### `/checkout/payment` - 12 violations across 5 SC
| SC | Tool | Selector | Message |
|-------|---------|-----------------------------------|---------|
| 1.4.3 | axe | `.amount-due` | Foreground/background contrast 3.2:1 (need 4.5:1 for normal text) |
| 2.4.7 | axe | `button.continue-payment` | Element does not have a visible focus indicator |
| ...
(Full per-page tables follow.)
## Coverage gaps - automated tools don't cover everything
| SC level | Total SCs | Covered by ≥1 tool | Manual review required |
|----------|----------:|-------------------:|------------------------|
| A | 25 | 15 | 10 SCs |
| AA | 24 | 17 | 7 SCs |
| AAA | 28 | 14 | 14 SCs |
**Manual review SC list (excerpt):** 1.2.1 (Audio-only / Video-only),
2.2.2 (Pause / Stop / Hide), 3.1.5 (Reading Level), ... See
`docs/manual-checklist.md` for the per-SC checklist.The verdict rows restate the binary per-level rule from
wcag-conformance ("All success criteria at a claimed level must be
satisfied with no exceptions"): a failing level cannot claim conformance, and an
unknown level means the scan never covered the SCs that level's claim needs.