WCAG Accessibility Auditor (axe-core) avatar

WCAG Accessibility Auditor (axe-core)

Pricing

$20.00 / 1,000 page auditeds

Go to Apify Store
WCAG Accessibility Auditor (axe-core)

WCAG Accessibility Auditor (axe-core)

Audit the web pages you name for WCAG 2.0, 2.1 and 2.2 accessibility violations with axe-core in a real browser. You get failing elements with selectors, HTML snippets and fix hints. Pay only for completed audits.

Pricing

$20.00 / 1,000 page auditeds

Rating

0.0

(0)

Developer

Chris O'Byrne

Chris O'Byrne

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

WCAG Accessibility Auditor opens the web pages you list in a real Chrome browser and checks them for accessibility problems with axe-core, the open source rules engine from Deque Systems. For every page you get a score, counts of failing, passing, "needs review" and not applicable rules, and a list of the failing elements with the CSS selector, the HTML snippet, the WCAG success criterion, a link to the rule help and a fix hint.

It audits only the pages you name. It does not crawl links, does not sign in and does not try to get past bot protection.

Who is it for

  • Developers and QA teams who want an accessibility check in a scheduled run or a CI job (use the Apify API or the scheduler).
  • Agencies and freelancers who audit a handful of client pages and need a clean report.
  • Product and compliance owners who track WCAG 2.2 AA progress page by page.

How to use it

  1. Paste the page URLs into Page URLs (one per page, http or https).
  2. Pick the WCAG level (A, AA or AAA) and version (2.0, 2.1 or 2.2). The default is WCAG 2.2 level AA plus axe-core best practices.
  3. Optional: set the viewport (for example 390 wide for a phone), the color scheme, or a CSS selector to wait for on single-page apps.
  4. Click Start and open the Audit overview table, or download JSON, CSV, Excel or HTML from the dataset.

The prefilled input audits https://example.com and an intentionally inaccessible demo page from the W3C Web Accessibility Initiative ("Before and After Demonstration").

Input

FieldMeaningDefault
Page URLsPages to audit. Duplicates and #fragments are merged.required
WCAG conformance levelA, AA or AAA (cumulative)AA
WCAG version2.0, 2.1 or 2.22.2
Include best-practice rulesaxe-core best practices that WCAG does not requireon
Advanced: explicit axe-core tagsReplaces the three settings above. Valid: wcag2a, wcag2aa, wcag2aaa, wcag21a, wcag21aa, wcag22aa, best-practiceempty
Viewport width and heightBrowser window size in pixels1280 x 800
Color schemelight or dark (affects contrast results)light
Wait until, wait for selector, extra waitHow long to wait before auditingload, none, 1000 ms
Page timeoutSeconds to open one page (up to 2 retries)45
Maximum pagesCap on the list50
Maximum failing elements per ruleKeeps results small25
Pages in parallelSame host is always at least 2 s apart2

Output

One dataset item per URL. Example (shortened):

{
"url": "https://example.com/",
"finalUrl": "https://example.com/",
"status": "audited",
"httpStatus": 200,
"pageTitle": "Example Domain",
"score": 78.6,
"violationRuleCount": 3,
"violationCount": 9,
"impactCounts": { "critical": 0, "serious": 0, "moderate": 9, "minor": 0 },
"passesCount": 11,
"incompleteCount": 1,
"inapplicableCount": 76,
"violations": [
{
"ruleId": "landmark-one-main",
"impact": "moderate",
"wcagTags": ["best-practice"],
"wcagCriteria": [],
"help": "Document should have one main landmark",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.14/landmark-one-main",
"selector": "html",
"htmlSnippet": "<html lang=\"en\">",
"fixHint": "Fix all of the following: Document does not have a main landmark"
}
],
"auditedAt": "2026-10-21T20:43:46.567Z",
"axeVersion": "4.14.0",
"charged": true
}
  • status is audited when the audit completed. Other values: blocked, login_required, http_error, navigation_error, invalid_url, empty_page, audit_error. These items explain what happened in error and are never charged.
  • violations has one entry per failing element. HTML snippets are cut to 300 characters.
  • score is a number from 0 to 100: every rule that applied counts once, weighted by impact (critical 10, serious 7, moderate 3, minor 1), and the score is the weighted share of rules that passed. Rules that need manual review and rules that did not apply are left out. The score is a way to compare pages and track progress. It is not a conformance claim.
  • A short run summary is stored in the key-value store record SUMMARY.

Pricing

Pay per event. You pay only when an audit completed.

EventPriceWhen it is charged
Page audited$0.02One page loaded and the axe-core audit completed

Pages that are blocked, behind a login, return an HTTP error, fail to load or render nothing are reported but not charged. Set a maximum cost per run in the run options and the Actor stops when it is reached. Platform events that Apify itself defines (such as the Actor start event) are charged by the platform as shown on the Pricing tab. Auditing 50 pages costs $1.00 in page events.

FAQ

Does it find every accessibility problem? No. Automated rules find only a part of the problems that real users meet. Items under "needs review" (incompleteRules) need a human look, and keyboard, screen reader and content checks cannot be automated. Use the results as a baseline, not as proof of conformance.

Can it audit pages behind a login? No. The Actor never signs in and never bypasses logins, CAPTCHAs or bot protection. If a page redirects to a login or serves a challenge page, it is reported as login_required or blocked and not charged.

Does it crawl my whole site? No. It audits exactly the URLs you list. Some other Actors in the Store crawl from a start page; this one is for people who want to control which pages are checked. Build the list from your sitemap if you want broad coverage.

How polite is it? At most one page load per host every 2 seconds, one browser, and a User-Agent that ends with WCAGAccessibilityAuditor/1.0 (+https://apify.com/jetlaunch/wcag-accessibility-auditor; chris@jetlaunch.net). Only audit sites you own or have permission to test.

Which addresses are refused? Local and private network addresses (localhost, 10.x, 192.168.x, 169.254.x and similar) are refused so the Actor cannot be pointed at internal networks.

Which rules and version? axe-core 4.14.0, listed in every result as axeVersion.

Limitations

  • Single page snapshot: content that appears only after clicks, scrolling or form input is not tested.
  • Very large pages are capped by "Maximum failing elements per rule" and 1000 entries per page. The counts still show the full numbers and violationsTruncated is set.
  • Some sites serve different markup to headless browsers. Results describe what Chrome received.

Data source, licence and attribution

Rules and results come from axe-core 4.14.0 and @axe-core/playwright 4.14.0, both licensed under the Mozilla Public License 2.0 and used without modification. Copyright Deque Systems, Inc. The licence text and notices are included in the Actor source (THIRD_PARTY_NOTICES.md, licenses/). The browser automation uses Playwright (Apache-2.0). The prefilled demo page is published by the W3C Web Accessibility Initiative.

This Actor is not affiliated with, endorsed by or sponsored by Deque Systems, the W3C or Microsoft.

Support

Found a false positive, a missing field or a page that should work? Open a ticket in the Issues tab of this Actor and include the run URL. Custom reports and integrations (Slack, Google Sheets, webhooks) can be added with the standard Apify integrations.