Website Accessibility Regression Evidence avatar

Website Accessibility Regression Evidence

Pricing

from $80.00 / 1,000 complete axe-core page checks

Go to Apify Store
Website Accessibility Regression Evidence

Website Accessibility Regression Evidence

For developers and QA teams: compare axe-core findings on authorized static pages and track rules and affected elements. Scripts and external resources are disabled; use alongside interactive and manual testing.

Pricing

from $80.00 / 1,000 complete axe-core page checks

Rating

0.0

(0)

Developer

Revenue Pilot

Revenue Pilot

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Features

Limited permissions

Share

Run real axe-core in Chromium on authorized URLs or supplied HTML and compare reproducible rule and selector evidence between runs.

Quick start

Run with the default input for a working demonstration. The default uses authored fictional input. Demonstrations are owner tests, not customer revenue.

{
"monitorKey": "default"
}

For your own data, set rightsConfirmed to true only if you have permission to process it. Use the input descriptions for object fields and column mappings. URLs must be public HTTPS without credentials or secret query parameters. Website/feed requests respect robots.txt; APIs use their documented endpoints. No authenticated pages, anti-bot bypass or paid API is used.

Results and saved comparisons

OUTPUT in the run key-value store is authoritative JSON (records, diagnostics, summary and billing checkpoints). RESULTS.csv is a formula-protected export; DIAGNOSTICS.json explains failures and incomplete input. The dataset includes evidence records and nonbillable source diagnostics. Operator-stop and below-budget diagnostics are available in OUTPUT and DIAGNOSTICS.json. A green Apify run alone does not prove a source was healthy: inspect OUTPUT.status and diagnostics. Reuse monitorKey for comparisons, change it for an independent baseline. Customer state is stored in the Actor-specific named store in the customer's Apify account, bounded to 5,000 state entries / 4 MiB. Avoid concurrent runs with the same monitorKey. Source records outside the retained window may appear as baseline again.

Real Chromium and axe-core 4.14.0. Static DOM mode: page scripts and all external network resources, including external CSS, are disabled; inline styles remain. Dynamic interactions, external CSS-dependent layout and contrast require separate testing. Evidence includes rule IDs, selector targets, sanitized HTML snippets, failure summaries and tool versions. Only successful complete scans can yield resolved candidates. Automated testing covers a subset of accessibility requirements; no WCAG or legal compliance guarantee. External website consent and robots compliance are required.

Price

Actor start: $0.02, charged by Apify per GB of assigned memory with a one-event minimum. Complete axe-core page check: $0.080 for each successfully completed axe-core page check. Completed healthy checks include zero matches or no changes. Rejected/incomplete source units are not charged the custom event; the start event still applies. For standard runs, the Actor pricing page states whether platform usage during the run is included in event prices. After the run, interactions with the dataset can incur standard Apify platform usage charges. Check Apify pricing and your account usage for details. Use maxTotalChargeUsd in the run options to bound your expense. The Actor stops before starting a unit that does not fit the remaining event budget. Results are saved before a custom charge. Uncertain charge/dataset submissions are not retried, preventing duplicate submissions; inspect OUTPUT and chargedEventCounts when a response is uncertain.

Limits and operation

Each run is bounded by the documented input limits and 180-second default timeout. Memory is capped at 1024 MB. This is an evidence utility; review results before acting. Original INPUT and run outputs remain in your Apify account under its retention settings. Remove customer data according to your own policy; no external analytics or customer-data forwarding is implemented. Built-in price and compute assumptions are hypotheses until actual customer usage is observed.

Operator pause/recovery: build a version with PORTFOLIO_STOP=1 and switch latest to that build; a stopped run returns diagnostics and no custom outcome charge. For recovery, rebuild with PORTFOLIO_STOP=0, verify a private validation tag, then switch latest. Editing an environment variable alone does not modify an existing build.

Sources and licenses

Dependencies: cheerio (MIT), csv-parse (MIT), fast-xml-parser (MIT), robots-parser (MIT). axe-core 4.14.0 (MPL-2.0, unmodified dependency source: https://github.com/dequelabs/axe-core/tree/v4.14.0), Playwright 1.64.1 (Apache-2.0).

Actual owner cloud example

Validated 2026-10-26T02:24:11.564Z. Run MOpKKnU5bvDpkGdSc completed with 1 processing units and 5 records. This is an owner test, not a customer sale.

Input:

{
"monitorKey": "owner-validation-v1"
}

Selected actual output records (full JSON/CSV available in your run storage):

[
{
"recordType": "accessibility_scan_health",
"pageId": "authored-demo",
"status": "completed",
"sourceUrl": null,
"inputKind": "customer_html",
"observedAt": "2026-10-26T02:20:28.915Z",
"tool": "axe-core",
"toolVersion": "4.14.0",
"browser": "Chromium",
"browserVersion": "156.0.8078.4",
"viewport": {
"width": 1280,
"height": 720
},
"mode": "static_dom_no_external_network",
"sourceHtmlHash": "0d7e6ad0935d5823ab8b77d3da4c41d61c3d924d248ebd6c0f24a0208c0e760d",
"documentHash": "0023db5e1163c3229bde4222ad628a5aba4f1df0a40f798a97a5fb172263a608",
"violations": 4,
"affectedNodes": 4,
"manualReviewRules": [],
"passedRules": 15,
"inapplicableRules": 71,
"baseline": true,
"billable": true
},
{
"recordType": "accessibility_finding",
"pageId": "authored-demo",
"ruleId": "button-name",
"impact": "critical",
"help": "Buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.14/button-name?application=axeAPI",
"target": [
"button"
],
"htmlEvidence": "<button></button>",
"failureSummary": "Fix any of the following:\n Element does not have inner text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
"changeType": "baseline",
"sourceUrl": null,
"observedAt": "2026-10-26T02:20:28.915Z"
}
]