Skip to main content
Guide5 min read

How Browser Extensions Audit Websites

By The bee2.io Engineering Team at bee2.io LLC

Illustration: a cutaway cross-section showing inner clockwork of a browser window

People ask me how browser extension audits work, and I usually watch their eyes glaze over about thirty seconds in when I start talking about the DOM. So let me try to explain this the way I wish someone had explained it to me: with an analogy that actually holds up.

Two Ways to Read a Building

Imagine you want to audit a building for safety issues. You have two options.

Option one: read the blueprints. You'll see the structural design, the planned layout, the specifications. If someone drew a door on the blueprint, you'll see a door.

Option two: walk through the actual building. You'll see what's really there. Maybe the door from the blueprint got moved during construction. Maybe someone added a partition wall that isn't in the drawings. Maybe there's furniture blocking the fire exit that wouldn't show up on any schematic.

Server-side crawlers read blueprints. Browser extensions walk through the building.

What "Live Rendered DOM" Actually Means

When you load a modern website, here's what happens in order. Your browser receives HTML from the server. That HTML is the raw starting point. Then your browser loads JavaScript files and executes them. Those scripts might fetch data from APIs, render components, build navigation menus, load modal dialogs, apply conditional content based on your location or login state. Finally, CSS gets applied and the page takes its visual shape.

The Document Object Model (the DOM) is the live version of the page after all of that has happened. It's the actual tree of elements your browser is rendering right now. It's what you see when you open DevTools and look at the Elements panel.

A server-side crawler requests your URL and gets back the initial HTML response. On a React or Vue or Angular application, that initial HTML might be nearly empty, with something like <div id="root"></div> and a bunch of script tags. The actual content doesn't exist yet; it gets created by JavaScript after the page loads.

When SCOUTb2 runs its 25+ accessibility and SEO checks, it's running them against the live DOM, the fully rendered, JavaScript-executed, CSS-applied version of your page. Not the raw HTML that hit the wire.

Why This Changes Everything for Accessibility

Here's a concrete example. Say you have a modal dialog that appears when users click a button. That modal has a form inside it with an unlabeled input field, which is a real WCAG 2.1 violation (1.3.1 Info and Relationships, and 1.1.1 for good measure).

A server-side crawler never sees that modal. The modal doesn't exist in the raw HTML; it gets created by JavaScript when the user interacts with the page. The crawler will scan your HTML, find no modal, and report no issues with form labels inside modals. Clean report. Completely wrong.

A browser extension sees the modal because it has access to the same runtime environment you do. The content script that runs the accessibility checks can read the full live DOM and find that unlabeled input field.

The same logic applies to: dynamically injected content, client-side rendered navigation menus, lazy-loaded images, conditionally rendered sections, third-party widgets, and basically anything that your JavaScript framework adds to the page after initial load.

The Login Wall Problem

This is my favorite part, honestly, because it's where server-side tools completely fall apart.

A significant portion of every web application is behind authentication. The customer dashboard. The account settings page. The order history. The actual product that users paid for. Server-side crawlers can't get in there; they hit the login form and stop.

A browser extension runs inside your browser session. If you're logged in, it audits the authenticated page. You can navigate to your dashboard, click the extension, and get an automated accessibility and performance scan of a page that no external crawler could ever reach.

For SaaS companies especially, this is huge. Your marketing site might be perfectly accessible. Your actual application, the thing your users spend hours in every day, might be a disaster. Server-side tools will give you a green checkmark and you'll never know.

How the Content Script Works

When you click to run an audit in SCOUTb2, here's what actually happens in sequence.

The extension injects a content script into the current tab. This script has access to the page's DOM, just like any JavaScript running on the page itself. It runs a series of checks against the DOM, querying for elements, checking attributes, measuring computed styles, verifying structure.

These checks run synchronously against the already-rendered page, which is why the whole thing finishes in a few seconds rather than minutes. There's no crawling, no network requests to the target site, no rendering pipeline to wait for. The page is already rendered. The extension just reads what's there.

The results get passed back to the extension's popup or panel for display. The whole thing happens locally in your browser. The target site never knows it's being audited (which is useful when you're auditing a competitor's site, though I didn't say that).

What Extensions Can't Do (Being Honest)

I want to be clear about the limitations, because I think overselling this stuff is how you end up with false confidence. Automated tools, including browser extensions, have inherent limitations compared to manual expert testing. No automated tool can fully replicate the judgment of an experienced accessibility professional or the lived experience of users with disabilities.

Automated checks typically catch an estimated 30-40% of WCAG issues. The remaining issues, such as whether alt text is actually meaningful, whether focus order is logical, or whether content is understandable to users with cognitive disabilities, require human evaluation.

Browser extensions audit one page at a time by default. To audit an entire site with hundreds or thousands of pages, you need a multi-page scanner that can navigate through the site systematically. SCOUTb2's PRO tier handles this with background scanning up to 10,000 pages, but it's worth understanding that the single-page audit is just that: one page.

Extensions also can't simulate how a page will look to a search engine crawler. The rendered DOM audit is great for finding real-world accessibility and usability issues, but if you need to understand what a search engine's crawler specifically sees (which uses a limited rendering pipeline, not a full browser), that requires different tools.

And extensions require you to have the browser open and navigate to the page. For automated scheduled auditing, you need a system that can run without manual intervention.

The Honest Recommendation

For pages with JS-rendered content or auth state, a browser extension audit can be more representative than a server-side crawl for accessibility and visual correctness, because it sees the same rendered page that users see.

For site-wide SEO and link structure, a dedicated crawler is still valuable for the completeness of coverage.

The best auditing setup uses both. Start with the browser extension for the pages that matter most, then use multi-page scanning for systematic coverage across the whole site.

Understanding why the tool works the way it does makes you a better user of it. You know what you're actually measuring, and you know where the gaps are. That's a better position than running any tool blindly and trusting the green checkmark.

Disclaimer: This article is for informational purposes only and does not constitute legal, professional, or compliance advice. SCOUTb2 is an automated scanning tool that helps identify common issues but does not guarantee full compliance with any standard or regulation.

browser-extensiontechnicaldomaccessibilityseohow-it-works

Stop finding issues manually

SCOUTb2 scans your entire site for accessibility, performance, and SEO problems automatically.