Website Accessibility Checker - WCAG 2.2 & EAA avatar

Website Accessibility Checker - WCAG 2.2 & EAA

Pricing

Pay per event

Go to Apify Store
Website Accessibility Checker - WCAG 2.2 & EAA

Website Accessibility Checker - WCAG 2.2 & EAA

Bulk WCAG 2.2 audit in a real browser, mapped to EN 301 549 (European Accessibility Act). Per-page score, selectors and fix hints. No certification.

Pricing

Pay per event

Rating

0.0

(0)

Developer

psx

psx

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

Website Accessibility Audit - WCAG 2.2 + European Accessibility Act (EN 301 549) checker

Audit any public web page with axe-core in a real Chromium browser (JavaScript executed, so SPAs work). Every finding is mapped to its WCAG success criterion and the matching EN 301 549 clause, the harmonised standard behind the European Accessibility Act (EAA), in force since 28 June 2025.

Use cases

  • EAA readiness checks for e-shops, SaaS and agencies selling into the EU.
  • Agency prospecting and client reports - batch hundreds of domains, sort by score.
  • CI / monitoring - run on a schedule through the Apify API, alert when issues appear.
  • AI agents (MCP) - one structured JSON record per page, with selectors and fix hints.

Input

FieldDefaultDescription
urlsrequiredUp to 500 pages or bare domains.
wcagLevelAAA, AA or AAA. AA is what EN 301 549 requires.
maxPagesPerSite1>1 also audits same-site pages linked from the start page (one level, robots.txt respected).
includeBestPracticesfalseAdd axe best-practice rules.
includeIncompletefalseAdd needsManualReview items.
maxExamplesPerIssue3Failing elements shown per rule.
viewportWidth1280Use 375 for mobile.
concurrency / delaySecs2 / 2Polite defaults; same-site pages are spaced by delaySecs.
respectRobotstrueSkip pages disallowed for this bot.
{ "urls": ["https://example.com"], "wcagLevel": "AA", "maxPagesPerSite": 5 }

Output (one item per page)

{
"url": "https://www.w3.org/WAI/demos/bad/before/home.html",
"status": 200, "lang": "en", "score": 60,
"summary": { "violatedRules": 6, "affectedElements": 46, "byImpact": { "critical": 2, "serious": 4, "moderate": 0, "minor": 0 } },
"violations": [{
"id": "image-alt", "impact": "critical", "description": "Images must have alternative text",
"wcagCriteria": ["1.1.1"], "wcagLevel": "A", "en301549": ["9.1.1.1"], "nodeCount": 12,
"examples": [{ "selector": "img[src=\"logo.png\"]", "html": "<img src=...>", "fix": "Fix any of the following: ..." }]
}],
"note": "Automated testing detects roughly 30-40% of WCAG issues ..."
}

score is a simple heuristic (100 minus weighted violated rules), useful for ranking, not an official metric.

Important limits (honest disclaimer)

Automated tools find about 30-40% of accessibility problems. A clean result is not proof of conformance with WCAG, EN 301 549 or the EAA, and this is not legal advice. WCAG 2.2-only criteria have no EN 301 549 clause yet (v3.2.1 is based on WCAG 2.1) and show en301549 empty.

Pricing (pay per event)

EventWhen chargedPrice
apify-actor-startonce per run$0.005
page-auditedeach page successfully audited$0.015 (= $15 per 1,000 pages)

Why this price: each page runs in real Chromium (JavaScript executed), which costs far more compute than HTTP-only checks. Cheap actors in the Store charge $2-$30 per 1,000 pages (some with weaker output), and the biggest named scanners charge $25-$200 per 1,000. We price at the lower-middle with the EN 301 549 / EAA mapping as the differentiator. Example: 100 sites x 1 page = $1.50; 100 sites x 5 pages = $7.50. A manual audit costs from $499 and SaaS scanners about $19/month, so this is a cheap triage step.

Politeness and safety

  • Identifies as A11yEaaAudit, respects robots.txt, max 5 browser pages, per-site delay.
  • Only http/https; localhost, internal hosts and private/reserved IPs are blocked (also for sub-requests).
  • Audits only public, unauthenticated pages. Output contains page HTML snippets of failing elements only.

FAQ

Does a clean result mean I comply with the EAA?
No. Automated testing finds roughly 30-40% of WCAG issues. Use this for triage and monitoring, then add manual testing. Not legal advice.

Who has to comply with the European Accessibility Act?
Since 28 June 2025 many consumer-facing digital products and services sold in the EU (e-commerce, banking, transport, e-books, telecom) must be accessible. Microenterprises providing services are exempt. Check with a lawyer for your case.

What is EN 301 549?
The harmonised European standard that gives presumption of conformity with the EAA. v3.2.1 is based on WCAG 2.1 AA, so WCAG 2.2-only criteria show an empty en301549 list.

Can it audit many pages per site?
Yes, maxPagesPerSite follows same-site links one level deep and respects robots.txt.

Can it audit pages behind a login?
No. Public, unauthenticated pages only.

Part of the Site Audit Suite

Run the same list of domains through every audit:

Tip: pipe one domain list into several actors with an Apify Task or the API and join the results by url.

Develop

npm install && npm test
mkdir -p storage/key_value_stores/default
echo '{"urls":["https://example.com"]}' > storage/key_value_stores/default/INPUT.json
npm start # results in storage/datasets/default/ (needs: npx playwright install chromium)
docker build -t a11y-eaa-audit .

Deploy (needs Apify account): npx apify-cli login && npx apify-cli push.

Verified (2026-10-05, local)

Run on w3.org BAD demo (score 60, 6 rules), example.com (100), bbc.com + subpage (90/95); Docker image builds and runs (docker run --user 996 -v <dir>:/home/myuser/storage).