For six consecutive years, web accessibility has been improving. Then 2026 happened.
According to WebAIM’s 2026 Million report, detected errors on home pages jumped 10.1% in a single year from 51 to 56.1 errors per page. WCAG failure rates climbed back to 95.9%, reversing the trend. The cause, per WebAIM: the average home page now contains 1,437 elements, with significantly more ARIA code being added, often incorrectly.
The issue is that the web has outgrown testing tools that read HTML as text. Modern pages produce their accessible experience at runtime — in a browser, after JavaScript runs and styles resolve. Testing at the markup level increasingly misses the failures that users actually encounter.
What is Browser-Based Accessibility Testing?
Browser-based accessibility testing means running accessibility checks against a page after the browser has fully built it, not against the source HTML. The browser applies CSS, executes JavaScript, loads third-party scripts, and constructs an accessibility tree: the structured model that screen readers and assistive technology actually use to navigate the page.
Key concept: Source code tells you what went into the page. Browser-based testing tells you what came out and what a screen reader actually encounters.
This distinction matters because the failures increasing fastest in 2026; incorrect ARIA states, computed contrast issues, and interaction-dependent content don’t exist in markup. They only exist once the browser has done its work.
Why testing at the HTML level isn’t enough

Static code analysis reads your HTML as text. It checks for known structural violations: missing alt attributes, inputs without labels, and heading levels that skip. These are real issues, and static analysis catches them reliably.
The same underlying rule engines that power browser extensions and accessibility platforms are also used in static analysis tools; the difference is execution context, not philosophy.
The problem is what that context cannot see.
When a browser loads a page, it builds two structures from your code. The first is the DOM — the parsed representation of your HTML. The second is the accessibility tree: a filtered, computed model of the page that assistive technology interacts with directly.
The accessibility tree is shaped by three layers that markup-level analysis cannot evaluate:
| Layer | What it affects | Why markup-level analysis misses it |
|---|---|---|
| CSS | Which elements exist in the tree, in what roles | Computed values require rendering |
| JavaScript | ARIA attributes, dynamic states, component behaviour | Runs after the parser reads the file |
| Third-party scripts | Injected DOM nodes, widgets, embeds | Outside the scanned codebase entirely |
What browser-based testing catches that markup analysis misses
Computed colour contrast, not declared contrast
Low contrast text appeared on 83.9% of home pages in the 2026 WebAIM report, the most common accessibility failure by volume. Static analysis can inspect authored styles and source markup, but it cannot fully evaluate the final rendered presentation after CSS resolution, web font loading, and runtime interaction.
Browser-based testing computes what the browser actually renders: what a CSS variable resolves to in context, what a web font looks like at its actual rendered weight, what happens to text colour after CSS layering or theme switching.
color: var(–text-secondary) tells a markup scanner nothing it can verify. It needs the browser to resolve that variable before a contrast check means anything.
ARIA state as JavaScript resolved it
This is the failure mode behind the 2026 regression. A server renders HTML with aria-expanded=”false” on a navigation component. The browser parses it. Then the JavaScript framework initialises, reads its own state, and sets a different value — sometimes correctly, sometimes not.
Markup analysis reads the initial HTML value. The screen reader announces the runtime value. In a complex single-page application, these diverge constantly, and the errors accumulate silently.
For a detailed breakdown of what correct ARIA implementation looks like on interactive inputs, see ARIA Input Fields Must Have an Accessible Name.
Third-party content you didn’t write
Cookie banners, chat widgets, video embeds, payment forms — these inject their own DOM nodes into your page and become part of the accessibility tree your users navigate. Markup analysis checks your codebase. Browser-based testing evaluates the full rendered page, regardless of where each element came from.
Focus management after interactions
When a modal closes, keyboard focus must return to the trigger element: WCAG 2.4.3 (Focus Order). When a route changes in a single-page app, focus must be explicitly managed. When form validation fails, focus must move to the error summary.
These are sequential runtime events. The failure only exists after an interaction has occurred. There is no markup state to analyse, only a live sequence to observe. This is the category of failure most disorienting to keyboard-only users, and it is entirely invisible to markup-level scanning.
Form error announcements in interaction state
A form field references an error element via aria-describedby=”field-error”. At page load, that element doesn’t exist; it’s injected after a failed submission. Markup analysis may flag the reference as broken (a false positive) or pass it (a false negative). Neither tells you what the screen reader actually announces when a user submits invalid data.
The only way to test this is to submit the form, inside a browser, and observe what happens.
What each method actually catches

The table shows this is a coverage question. Static analysis, rendered-page scanning, and in-context session testing each surface different failure types. Markup-level analysis is the foundation; fast, cheap, structural. Browser-based testing extends that foundation into the rendered, runtime layer where most real failures live.
Who can use it: not just developers
Because browser-based accessibility testing operates on the rendered page, it doesn’t require code access or technical knowledge. The browser is the common layer.
- Content editors can verify that image alt text actually describes what the image shows not just that a field was filled in
- Designers can check that contrast ratios held up in the built implementation, not just in the spec
- QA engineers can include accessibility in a standard test pass without a separate specialist tool
- Project managers can run a spot check on any page without reading source files
For a breakdown of how to assign specific checks to specific roles, design review, development, pre-publish, and QA, see 8 Ways to Use a Free Accessibility Checker Chrome Extension in Your Daily Workflow.
Browser-based accessibility testing tools worth knowing
If you’re starting out with in-browser accessibility testing, these are the tools most commonly used directly inside Chrome:
- WebYes Accessibility Checker — Full WCAG 2.0, 2.1, and 2.2 scanning at A, AA, and AAA levels, with focus order visualisation, heading structure review, and real-time element highlighting. Works alongside WebYes Accessibility for in-context testing on live pages.
- WAVE Evaluation Tool — Uses on-page icons to visually mark accessibility errors and features where they appear. Good for understanding what’s wrong without leaving the page.
- Accessibility Insights for Web — Automated scans combined with guided manual testing and step-by-step fix instructions. Suited to developers who want more than a pass/fail result.
All three are free Chrome extensions that test the rendered page, not your source code. For a full breakdown with feature comparisons across each tool, see 6 Best Website Accessibility Checker Chrome Extensions (Free).
Start testing where users actually are
If your accessibility testing currently relies on markup-level analysis alone, you’re checking a model of your site; one that was accurate for the static web and increasingly incomplete for everything built since.
Accessibility failures live in the rendered page, after the browser has run your JavaScript, resolved your styles, and loaded everything else that ends up in the DOM. Testing at the markup level misses a significant share of what your users actually encounter.
The most practical starting point is testing in the environment where the problems actually exist. Open the page, run the check, see what’s there.
The WebYes Chrome Extension is free and runs directly in your browser — no setup, no separate tool, no URL submission. Install it, open any page, and see your accessibility issues in context.
Try the WebYes Chrome Extension →
Frequently asked questions:
What is the difference between browser-based accessibility testing and static code analysis?
Static code analysis reads your HTML as text and checks for structural violations: missing alt attributes, unlabelled inputs, skipped heading levels. Browser-based accessibility testing renders the page first: running CSS, JavaScript, and third-party scripts, and checks the accessibility tree that assistive technology actually navigates. Browser-based testing catches a significantly broader range of failures, including computed contrast, ARIA state as JavaScript resolved it, and issues introduced by third-party content.
Can automated accessibility testing catch all WCAG issues?
No. Automated tools reliably detect approximately 25%-33% of WCAG success criteria. The rest requires manual evaluation or human testing with real assistive technology. Browser-based testing catches more than static analysis, but a thorough accessibility programme still includes manual review.
Does browser-based testing replace a WCAG audit?
No, it complements it. Automated browser-based testing catches the failures that follow predictable, machine-verifiable rules. A WCAG audit by specialists covers what requires human judgment: the quality of alt text descriptions, cognitive accessibility, and real screen reader behaviour across different assistive technology combinations.
Is browser-based accessibility testing only for developers?
No. Because it operates on the rendered page rather than source code, anyone who can open a page in Chrome can run a meaningful accessibility check: content editors, designers, QA testers, and product managers included.