Skip to main content
← Blog
METHODOLOGYFeb 10, 20267 min read

Why Static HTML Scans Miss Over Half of Real Accessibility Issues

Single-engine tools that scan static HTML are only seeing part of your store. Dynamic content, mobile viewports, and multimedia require additional detection layers to surface the full violation set.

Most accessibility scanning tools work by fetching a URL, parsing the returned HTML, and running a ruleset against the static markup. This approach is fast, cheap, and catches a meaningful fraction of violations — but it misses the majority of what users actually encounter on modern e-commerce sites.

The Problem with Static Analysis

Shopify stores are not static documents. They're JavaScript-driven applications where significant portions of the interface are rendered client-side after initial page load: quick-view modals, cart drawers, filter panels, recommendation carousels, search autocomplete, and size selectors all render dynamically.

A static HTML scan sees the initial server-rendered markup. It does not see what happens when a user opens a modal, applies a filter, or adds an item to cart. These interactions are precisely where the most severe violations — keyboard traps, missing focus management, unannounced state changes — tend to live.

What a Rendered DOM Scan Adds

Scanning the fully rendered DOM — after JavaScript has executed — surfaces violations in components that simply do not exist in the static HTML. This requires a headless browser engine rather than an HTML parser. The difference in violation count is typically 40–60% more findings compared to static analysis alone.

Rendered DOM scanning also enables interaction testing: triggering clicks, submitting forms, and opening UI components to evaluate the resulting DOM state. This is where keyboard trap violations, missing ARIA roles on dynamic widgets, and focus management failures become visible.

Mobile Viewport Coverage

A scan run at desktop viewport dimensions will not surface violations that only exist at mobile breakpoints. Hamburger menus, bottom navigation drawers, condensed product galleries, and touch-only interaction patterns each introduce their own accessibility concerns.

Mobile-specific failures we commonly find include: navigation drawers that do not trap focus, touch targets below 44×44px in compressed layouts, and content that becomes visually hidden at narrow widths but remains in the tab order.

Multimedia and Color Analysis

Static scanners cannot evaluate video content for captions or audio descriptions. They cannot determine whether a background image creates a contrast failure against overlaid text. And they cannot assess whether animations respect the prefers-reduced-motion media query.

These are not rare edge cases. Hero videos with overlaid text, background-image headers, and animated carousels are standard Shopify theme patterns — and standard sources of violations that static scanners report as clean.

The Compound Effect

The real problem is not that static scans are useless — they catch real violations, quickly. The problem is acting as if a clean static scan means a compliant store. Regulators and plaintiffs' counsel do not use static scanners. They use screen readers and keyboard navigation in real browsers.

BadgerTrace runs multiple detection engines — static analysis, rendered DOM evaluation, mobile viewport simulation, and multimedia inspection — because each layer surfaces violations the others miss. The goal is not a higher violation count. The goal is an accurate picture of what a real user encounters.