Sturdly
How it works

A scanner built to find what
plaintiffs' firms actually look for.

axe-core — the industry standard — covers about 57% of WCAG 2.1 AA issues. Sturdly runs five layers of analysis to reach ~97%. Here's exactly what each layer catches, what tools power it, and what the combined system still can't detect.

~25%
Browser DevTools / Lighthouse
Only runs axe-core subset
~57%
axe-core alone
No behavioral or content testing
~95%
Manual expert audit
Expensive, slow, point-in-time
~97%
Sturdly
Automated daily, at a fraction of the cost

The five-layer scanning stack

Each layer runs on every scan, every page. The results are deduplicated so you never see the same issue twice. Coverage percentages are based on the WCAG 2.1 AA criterion distribution in WebAIM's Million report and Deque's internal research.

01

Automated rule engine

~57% of all WCAG issues
Powered by axe-core + Playwright
1.1.11.3.11.4.32.4.14.1.14.1.2

Every page is loaded in a real Chromium browser and analyzed with axe-core — the same engine used by Google, Microsoft, and Deque to test their own products. This catches all machine-verifiable WCAG violations: missing alt text, insufficient color contrast, form labels, landmark regions, ARIA attribute errors, and more.

What it catches
  • Images missing alt text (WCAG 1.1.1)
  • Color contrast below 4.5:1 / 3:1 ratio (WCAG 1.4.3)
  • Form inputs without programmatic labels (WCAG 1.3.1)
  • Missing skip navigation (WCAG 2.4.1)
  • Duplicate or invalid ARIA attributes (WCAG 4.1.1)
  • Interactive elements without accessible names (WCAG 4.1.2)
Limitations
  • Whether alt text is actually descriptive
  • Whether link text makes sense out of context
02

Behavioral interaction testing

+15% additional coverage
Powered by Playwright keyboard simulation
2.1.12.1.22.4.32.4.73.3.1

After loading each page, Sturdly simulates real keyboard-only navigation using Tab, Shift+Tab, Enter, Escape, and arrow keys. This catches focus management failures that are invisible to static analysis but immediately apparent to keyboard users and screen reader users.

What it catches
  • Focus traps — modals and menus that keyboard users cannot exit (WCAG 2.1.2)
  • Focus order that doesn't match visual reading order (WCAG 2.4.3)
  • Focus indicators hidden or suppressed by CSS (WCAG 2.4.7)
  • Interactive elements unreachable via keyboard (WCAG 2.1.1)
  • Form errors not announced to assistive technology (WCAG 3.3.1)
  • Dynamic content updates not reflected in the accessibility tree
Limitations
  • Complex widget patterns require manual expert review
03

Advanced structural analysis

+12% additional coverage
Powered by Playwright + accessibility tree
1.3.41.4.101.4.122.5.83.1.1

Sturdly validates WCAG 2.2 criteria, structural patterns, and rendering behavior that no rule engine checks. This includes viewport-constrained reflow testing, text spacing injection, ARIA widget pattern validation (tabs, accordions, carousels), and touch target measurements on mobile viewports.

What it catches
  • Content that breaks at 320px width without horizontal scroll (WCAG 1.4.10)
  • Layout that breaks when letter/word/line spacing is overridden (WCAG 1.4.12)
  • Touch targets smaller than 24×24px (WCAG 2.5.8)
  • Orientation locked to portrait or landscape only (WCAG 1.3.4)
  • Missing lang attribute — screen readers can't select the right voice (WCAG 3.1.1)
  • ARIA widget patterns that violate APG design patterns (tabs, accordions, dialogs)
  • Content that flashes more than 3 times per second (WCAG 2.3.1)
Limitations
  • Subjective content quality judgments
04

AI content quality review

+10% additional coverage
Powered by Claude claude-opus-4-6
1.1.12.4.41.3.13.1.53.3.3

The hardest WCAG failures to catch are the ones that require reading comprehension. Sturdly sends extracted page content — all alt text, link text, headings, button labels, and error messages — to Claude for qualitative review. Claude evaluates whether content is genuinely accessible, not just syntactically correct.

What it catches
  • Alt text that is a filename, URL, or says 'image of' (WCAG 1.1.1)
  • Link text like 'click here', 'read more', or 'learn more' (WCAG 2.4.4)
  • Heading hierarchies that skip levels or use headings decoratively (WCAG 1.3.1)
  • Buttons labeled 'Submit' or 'Go' with no contextual aria-label (WCAG 4.1.2)
  • Error messages that don't tell users how to fix the problem (WCAG 3.3.3)
  • Body content written at a reading level inappropriate for the audience (WCAG 3.1.5)
Limitations
  • Complex multi-page form flows require end-to-end testing
05

Third-party widget audit

+3% additional coverage
Powered by iframe inspection + pattern matching
2.1.14.1.24.1.3

Chat widgets, cookie banners, feedback tools, and marketing pop-ups are consistently among the most accessible-inaccessible components on any site — and they're completely invisible to most scanners because they live in iframes. Sturdly inspects known third-party components and flags patterns associated with ADA litigation.

What it catches
  • Chat widgets (Intercom, Drift, Zendesk) with inaccessible trigger buttons
  • Cookie consent banners that trap keyboard focus
  • Overlay accessibility widgets — which are themselves a leading cause of ADA lawsuits
  • Marketing pop-ups that disable body scroll and cannot be dismissed without a mouse
  • Status messages not announced by assistive technology (WCAG 4.1.3)
Limitations
  • Proprietary third-party content inside closed iframes

What no scanner can catch — and how we handle it

The remaining ~3% of WCAG 2.1 AA issues require a human expert: live video captioning quality, complex custom widget interaction patterns, and cognitive accessibility judgments. We're honest about this.

We document the gap

Every Sturdly report includes a clear statement of what was tested automatically and what was not. Your VPAT reflects this honestly — which is exactly what regulators and plaintiffs' counsel expect.

We prioritize by litigation risk

The 3% we can't automate is almost never what triggers ADA litigation. We focus on the issues that plaintiff firms actually look for — alt text, keyboard access, contrast — and rank everything by legal exposure.

Expert audit partners

If you need a full manual audit — for a government contract, enterprise client, or pre-litigation defense — we can connect you with certified CPACC/WAS practitioners from our partner network.

Daily monitoring covers the rest

The biggest accessibility risk isn't what's wrong today — it's what breaks tomorrow when a developer pushes a change. Daily automated monitoring catches regressions immediately, before a plaintiff's investigator does.

What happens during a scan

A full site scan takes 5–15 minutes depending on page count. Free scans cover one page. Paid plans crawl every page on your site, every day.

  1. 1

    Crawl

    Sturdly navigates your site using a real Chromium browser, following internal links in breadth-first order. It respects robots.txt, skips binary assets, and handles authentication for protected pages.

  2. 2

    Analyze each page — 5 layers

    For each page: run axe-core, simulate keyboard navigation, test reflow and text spacing, check third-party widgets, then send content to Claude for qualitative review.

  3. 3

    Deduplicate and rank

    Issues are fingerprinted across pages so the same violation doesn't appear 50 times. Severity is calibrated to litigation risk — not WCAG impact level alone.

  4. 4

    Generate documentation

    Sturdly automatically produces: a VPAT (Voluntary Product Accessibility Template), a timestamped audit trail, and a public accessibility statement. These are your legal defense.

  5. 5

    Diff against last scan

    Every scan is compared to the previous one. New issues are flagged immediately. Fixed issues are marked and archived. You see the trend, not just the snapshot.

See all five layers in action on your site

Free scan · No signup required · Results in 60 seconds

Start a free scan →