Accessibility
The accessibility audit
Audit-grade WCAG 2.2 AA with axe-core in a real browser: up to 10 pages for 5 credits, manual-review decisions, a JSON evidence export, and its honest limits.
Updated · 3 min read
The audit loads your pages in a real browser on Cloudflare's infrastructure, runs axe-core against each, and records every finding as evidence. It is the version to use for a remediation project or an insurance questionnaire.
Where
- Web: SEO, the domain, Accessibility, Run audit; or the Website module.
- iOS: Website, Accessibility audit: the run/quote card, the score ring, impact counts, issues grouped by rule with the WCAG criterion, a rule detail with every affected element, and manual review decisions. The evidence export is viewed in the app.
- API/MCP:
GET /api/accessibility-audit/quote?domainId=,POST /api/accessibility-audit,GET /api/accessibility-audit?domainId=,GET /api/accessibility-audit/:id,POST …/:id/manual-review,POST …/:id/complete,GET …/:id/export; toolsquote_accessibility_audit,start_accessibility_audit(domain_id,request_key, optionalmax_pages,viewport),list_accessibility_audits,get_accessibility_audit.
Cost and limits
| Value | |
|---|---|
| Price | 5 credits per audit, reserved before the job is queued and charged when it completes |
| Pages | Up to 10 same-origin pages, discovered from the homepage's links; the discovery looks at up to three times that many URLs to find real, canonical pages |
| Viewport | 1280x900 by default; another can be requested |
| Rate | 3 audit starts per hour per account |
| Refund | If the job cannot be queued or the scanner's retries run out, the reserved credits are returned exactly once |
The audit is on by default in the add-domain flow, and its cost is stated there because it is the one add-time step that spends.
What comes back
For each page: the axe findings with rule, impact, WCAG criterion, the selector and HTML of every affected element, and the fix guidance. Rolled up: counts by impact, by WCAG criterion, and the regression against the previous audit of the same domain.
Manual review
Sixteen WCAG criteria cannot be judged by a machine (captions and audio description, keyboard operability, timing, focus order and visibility, on-focus changes, error identification and labels, name/role/value for custom widgets, among others). The audit lists them; POST …/:id/manual-review records one decision at a time with the reviewer's note; POST …/:id/complete closes the audit once every manual criterion has a recorded decision. A completed audit is a full record: automated evidence plus a person's judgements.
Export
GET /api/accessibility-audit/:id/export returns the whole audit as JSON: pages, findings, manual decisions and the evidence event log, with the axe and browser versions used. It is the document to attach to a remediation ticket or a compliance file.
The honest limit
Automated findings are evidence only and never establish WCAG conformance. A clean axe run means axe found nothing, and the manual criteria still stand. The audit says this on its own page.
Common questions
Can I audit more than 10 pages? Not in one audit. Run several with different starting points, or use the crawl's static accessibility checks for coverage and the audit for depth.
The audit says 0 pages scanned. The homepage did not load in the browser (a bot challenge, a redirect loop, a timeout). Credits are returned. Check the site allows a headless browser from Cloudflare.
Keep reading
Related articles
- Map scans (geogrid)One phrase measured from 25, 49 or 81 points across your service area on a real map; 50, 98 or 162 credits; one free scan per account; runs in the background.Local SEO ·Updated
- The quick accessibility scoreThe static accessibility pass that runs with every domain scan and in the Check tab: what it judges from HTML alone, how it is scored, and what it cannot see.Accessibility ·Updated
- The domain page, history and removing a domainThe twelve modules on a domain's page, the History ledger, the one-round-trip overview, Export PDF, and what deleting a domain destroys.Domains ·Updated
