EAA Accessibility Reporter: WCAG Findings and Fixes
Pricing
from $10.00 / 1,000 pages
EAA Accessibility Reporter: WCAG Findings and Fixes
I find automated WCAG 2.1 A/AA issues with plain-language fixes, selectors and EN 301 549 references. Get a report for remediation and manual review. This scan does not establish EAA or WCAG conformance.
Pricing
from $10.00 / 1,000 pages
Rating
0.0
(0)
Developer
Jessy Mariau
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
Give developers the evidence to fix an accessibility issue and give everyone else a report they can read. This Actor runs automated WCAG 2.1 A/AA checks, maps findings to WCAG criteria and EN 301 549 references, and explains the user barrier and a possible fix.
Use it to prepare a remediation backlog and a manual audit. An automated scan does not establish EAA or WCAG conformance. The output keeps undecided checks visible and never labels an empty findings list as certified compliance.
See the report shape: leave Websites empty and run the bundled demo with no Actor event charge. A real five-page audit costs $0.05 in Actor events; 100 audited pages cost $1.00. Failed pages are not charged. Optional proxy costs are additional.
Inside the sample report
The fixtures below are fictional pages. These values were read from the actual demo output on 8 September 2026.
| Sample | Automated state | Rules failing | Elements affected |
|---|---|---|---|
| demo-shop.example | FAIL | 6 | 29 |
| demo-clean.example | NO AUTOMATED FAILURES | 0 | 0 |
For the sample shop, the leading issue is an image without a text alternative. The report explains what a screen-reader user misses, then supplies a fix summary, affected selectors and reference links. An empty automated findings list still needs keyboard, screen-reader and other human checks.
What it does
Give it a website. It opens the page in a real Chromium, crawls up to 25 internal pages, and runs the axe-core WCAG 2.1 A and AA rule set against the rendered DOM. Then it writes up what it found.
Per page you get a state, and there are only three of them. FAIL means at least one rule failed outright. NEEDS REVIEW means nothing failed but something came back undecided and a human has to look. NO AUTOMATED FAILURES means the automated pass found nothing at all, which is the strongest thing a machine is entitled to say.
Per finding you get the rule id, its severity, how many elements it hits and three sample selectors, plus the WCAG criteria and EN 301 549 clauses. Then the part that makes it a report rather than a log: one sentence on what the visitor experiences, and one on the fix. A missing alt attribute comes back as a screen reader announcing nothing where sighted visitors see a picture, rather than as the string image-alt.
Per site you get the totals, the ten issues affecting the most elements, and eaa_report_text, which is a few plain paragraphs you can paste into an email.
There is also a scope flag, and it is deliberately modest. likely_in_eaa_scope is set from features the Actor can actually see on the page, such as a basket, a checkout, a login, a booking flow or consumer banking wording, and eaa_scope_reasoning says in words which ones were seen. It never claims a business is legally in scope. It cannot know that. Scope depends on what a company sells and how big it is, not on what one page displays.
What you need
Nothing. No API key, no account anywhere, no proxy for most sites. Run it with no input at all and it returns two sample rows, one failing and one clean, so you can see the shape before you spend anything.
How to run it
{"websites": ["https://www.your-shop.de/","https://www.your-bank.fr/"],"maxPages": 5,"wcagLevel": "AA","includeIncomplete": true}
maxPages defaults to 5 and caps at 25. The URL you give is always audited first, then internal links found on it. wcagLevel is AA by default, for automated WCAG 2.1 A/AA checks mapped to EN 301 549 clause 9. Drop it to A for the smaller rule set.
The Actor also runs in Standby mode as an MCP server, so an AI agent can call audit_accessibility as a tool and get the same report back live.
Output fields
| Field | What it holds |
|---|---|
input, final_url, site | what you asked for, where it ended up after redirects, and the hostname |
conformance_state | FAIL, NEEDS REVIEW or NO AUTOMATED FAILURES for the site |
pages_audited | how many pages were rendered and audited |
violations_count | distinct rules failing across the site |
violating_elements | how many elements those rules hit in total |
critical_count, serious_count, moderate_count, minor_count | affected elements by severity |
passes_count | checks that came back clean |
incomplete_count, incomplete_elements | checks axe could not decide, which need a person |
violations[] | every failing rule: rule_id, impact, wcag_criteria[], en301549_clauses[], element_count, pages_affected, sample_selectors[], plain_english, fix_summary, help_url |
top_10_issues[] | the ten rules affecting the most elements |
top_issue | the plain-English line for the worst one |
wcag_criteria_failed[] | every WCAG criterion broken, such as 1.1.1 |
en301549_clauses_failed[] | the matching EN 301 549 clauses, such as 9.1.1.1 |
likely_in_eaa_scope | whether the pages showed features of the kind the directive covers |
eaa_scope_signals[], eaa_scope_reasoning | which features were seen, and the same in words; this is a page observation, not legal applicability |
eaa_report_text | the plain-paragraph report |
pages[] | the same breakdown per page, including the undecided checks |
error | why a site could not be audited, or null |
checked_at | when the run happened |
The OUTPUT record in the key-value store holds the run summary: sites audited, how many failed, how many need review, how many came back with no automated failures, and how many pages were charged.
Pricing
Pay per event, at one page-audited charge for every page that is rendered and audited. A page that could not be fetched costs nothing, and neither does a site that times out, gets bot-blocked or answers with an error. The demo run charges nothing at all.
Limits
Read this part before you send the output to anyone.
Automated testing finds some of the problem, never all of it. Deque's Automated Accessibility Coverage Report puts automated coverage at 57% of accessibility issues by volume, while noting that only 16 of the 50 WCAG 2.1 AA success criteria have automated checks at all. Those are their numbers, not mine, and they are the most generous credible figures I could find. A machine cannot tell you whether your alternative text is actually descriptive. Nor can it judge focus order, the helpfulness of an error message, or the accuracy of captions. A keyboard-only pass and a screen-reader pass are still needed, and so is a person who knows what they are looking at.
A clean run is a floor, not a certificate. NO AUTOMATED FAILURES says the automated checks found nothing. It does not say the site is accessible and it does not say you are compliant.
Scope flags are observations, not legal findings. The Actor reports the features it saw on the pages you gave it. Whether the directive applies to your business is a question about your business, and it needs a lawyer rather than a scraper. Microenterprises providing services are treated differently under the directive, which is another thing no page scan can see.
This is not legal advice and it is not a certified audit. It is an engineering to-do list with the right legal references attached, which is a genuinely useful thing to have before you commission the real audit, and no substitute for one.
Practical limits. Only public http and https pages are audited. Bare IPs and local hostnames are refused. A site behind a hard bot wall fails its row honestly rather than reporting a page nobody could open as clean, which happened to w3.org during testing and is the correct behaviour. Fonts and media are blocked to keep runs cheap, since axe judges an image from its markup rather than its pixels.
Pair it with a workflow
If you run n8n, my free templates on https://n8n.io/creators/fractional-hq can take this Actor's output and turn it into a tracked remediation backlog, a scheduled re-audit or a report that lands in someone's inbox without another tool in the chain.
I have written up the build and its honest limits at https://fractionalhq.uk/use-cases/accessibility-act-audit
Use it from an AI agent
Agents get the same report through MCP. The endpoint is https://fractionalhqforyou--eu-accessibility-act-reporter.apify.actor/mcp and the one tool on it is audit_accessibility, which takes a site URL and returns the audit findings without a separate dataset read. Per-event pricing is unchanged for agent calls. For clients that cannot add a raw endpoint, use apify/actors-mcp-server with fractionalhqforyou/eu-accessibility-act-reporter in its Actor list.
Related Actors I publish
The accessibility act is one of several EU rules landing on the same teams, so I publish these companions to it.
- E-Invoice Validator: validates XRechnung, ZUGFeRD and Peppol invoices before they bounce.
- EU Pay Transparency Job Ad Auditor: checks job ads for the pay information the EU directive now expects.
- Website Redesign Lead Scorer: reads a list of websites and scores its measured redesign opportunities.
Built by Fractional HQ
Independent design and automation by Jessy Mariau. For setup or a custom integration, send a brief.