Blog

Overlays vs. Code Fixes: An Honest Technical Teardown for CTOs

TestParty
TestParty
February 1, 2025

Accessibility overlays promise quick compliance—install a widget, and your accessibility problems disappear. For CTOs facing legal pressure or tight timelines, this pitch is seductive. But the overlay vs remediation debate isn't about fast versus slow solutions. It's about understanding what overlays can and cannot technically accomplish, and making informed architectural decisions about your accessibility strategy.

The reality is nuanced. Overlays work by injecting JavaScript that manipulates the DOM after page load, attempting to add or modify accessibility features. This approach has fundamental technical limitations. Some accessibility issues simply cannot be fixed through client-side manipulation. Others can be partially addressed but with performance, security, and UX tradeoffs.

This guide provides an honest technical teardown of both approaches, helping CTOs evaluate their current setup and plan a path toward sustainable accessibility—whether that means transitioning off overlays entirely, augmenting them during migration, or understanding where code-level fixes are non-negotiable.

Cutting Through the Overlay Hype

What Are Accessibility Overlays?

What is an accessibility overlay? An accessibility overlay is a JavaScript widget that loads on top of a website, attempting to detect and remediate accessibility issues by manipulating the DOM after page load—without modifying the underlying source code.

Overlay vendors market these tools as turnkey accessibility solutions. Common claims include:

  • "One line of code for instant compliance"
  • "AI-powered accessibility remediation"
  • "Automated WCAG conformance"

The appeal is obvious: minimal development effort, immediate deployment, and vendor-managed updates. For organizations without accessibility expertise or capacity, overlays appear to solve a complex problem simply.

Why CTOs Are Confused

The confusion stems from conflicting signals:

Marketing claims: Overlay vendors present case studies and compliance dashboards suggesting comprehensive coverage.

User complaints: Accessibility advocates and users with disabilities frequently criticize overlays as ineffective or actively harmful.

Legal uncertainty: Some overlaid sites have been sued successfully; others point to overlays as evidence of good faith efforts.

Technical opacity: Without deep technical evaluation, it's difficult to assess what overlays actually do versus what they claim.

The National Federation of the Blind and other disability advocacy organizations have publicly condemned overlay products, describing them as ineffective and harmful. Yet overlays remain a multi-million dollar market segment.

How Overlays and Widgets Work Under the Hood

Injected Scripts and DOM Manipulation

Understanding overlay mechanics reveals their limitations:

Page load sequence: The overlay script loads after initial page render. It then scans the DOM, identifies potential issues, and attempts fixes through JavaScript manipulation.

Common modifications:

  • Adding aria-label attributes to elements missing accessible names
  • Injecting skip links
  • Attempting to fix color contrast through CSS overrides
  • Adding a toolbar UI with font size, contrast, and other visual adjustments

Client-side constraints: Everything happens in the browser. The overlay can only work with what the page provides—it cannot change server-rendered HTML structure, reorder content, or fix issues that require source code changes.

Perceived Benefits

Why do organizations choose overlays?

Speed of deployment: Install a script tag and the overlay is active. No development sprints required.

Low internal effort: No need to train developers, modify build processes, or update component libraries.

Visible action: The overlay toolbar demonstrates "we're doing something" to stakeholders and potentially to regulators.

Vendor responsibility: The overlay vendor manages updates and claims responsibility for accessibility improvements.

These benefits are real—but they must be weighed against technical limitations and risks.

Technical Limitations and Risks of Overlays

Issues They Simply Cannot Fix

How much can overlays actually fix? Overlays can only manipulate the DOM client-side after page load. They cannot fix structural issues like heading hierarchy, DOM order, semantic HTML, complex widget accessibility, or form relationships that require source code changes.

Some WCAG failures require changes overlays cannot make:

Heading hierarchy: If your page has no <h1> or skips from <h1> to <h4>, the overlay cannot restructure HTML. It can add ARIA roles, but those don't fix the underlying structure that screen readers depend on.

DOM order vs. visual order: When CSS positions elements differently than they appear in source, keyboard users Tab in unexpected sequences. Overlays cannot reorder DOM elements without breaking functionality.

Semantic HTML: A <div> styled as a button but lacking role="button", proper keyboard handlers, and focus management cannot be fully fixed by injecting ARIA. The element may still not respond to keyboard activation correctly.

Form field relationships: Complex forms with groups, fieldsets, and error associations require proper HTML relationships. Overlays attempting to add these connections often create incorrect or incomplete associations.

Focus management in dynamic content: Single-page applications, modals, and dynamic UI require focus management that depends on application logic, not DOM manipulation.

Third-party embedded content: Overlays cannot modify iframes, third-party widgets, or embedded content from other domains due to browser security restrictions.

Research from Overlayfactsheet.com, maintained by accessibility professionals, documents these limitations in detail with technical evidence.

Performance and Security Concerns

Overlays introduce technical costs:

Additional JavaScript: Overlay scripts range from 100KB to 1MB+. This affects page load time, particularly on mobile and lower-powered devices—precisely the devices many users with disabilities rely on.

Runtime overhead: Continuous DOM monitoring and manipulation consume CPU cycles, potentially affecting performance and battery life.

Script conflicts: Overlays may conflict with existing JavaScript, CSS frameworks, or other third-party scripts. Debugging these conflicts requires understanding both your codebase and the overlay's implementation.

Third-party dependency: Your site's accessibility depends on external script availability. If the overlay service experiences downtime, your "accessibility" disappears.

Security surface: Any third-party script increases attack surface. Overlay scripts have access to your DOM and can potentially be compromised to inject malicious content.

UX Problems

User experience issues frequently accompany overlays:

Confusing toolbar UI: Overlay toolbars add interface elements that can confuse users, especially those who already use system-level accessibility settings.

Duplicate functionality: Overlay features often duplicate operating system and browser accessibility features, creating confusion about which settings apply.

Poor keyboard behavior: Ironically, overlay toolbars themselves are sometimes keyboard-inaccessible or create focus traps.

Inconsistent experience: Overlays may fix some pages or elements but not others, creating unpredictable experiences.

User rejection: Many users of assistive technologies disable overlays immediately because they interfere with their preferred tools and settings.

Code-Level Remediation: Fixing the Source

What It Means Practically

Code-level accessibility remediation means fixing issues in your actual source code:

Template updates: Modifying HTML templates to use semantic elements, proper heading structure, and ARIA attributes where needed.

Component fixes: Updating shared components in your design system or component library to be accessible by default.

Pattern improvements: Establishing accessible patterns for common interactions (modals, navigation, forms) and applying them consistently.

Build process integration: Adding accessibility checks to CI/CD that prevent new issues from shipping.

This approach requires development effort. But it produces permanent fixes that don't depend on external services.

Long-Term Benefits

Code-level fixes compound positively over time:

Reliability: Fixes exist in source code, not dependent on external scripts loading successfully.

Reusability: Fixing an accessible button component once means every button using that component is accessible.

Reduced technical debt: Accessible components are typically cleaner, more semantic, and easier to maintain.

Lower ongoing cost: No overlay subscription fees. Fixes don't require ongoing vendor relationships.

Complete coverage: Code-level fixes can address issues overlays cannot—structural problems, complex interactions, and source-level HTML.

Better performance: No additional JavaScript overhead, faster page loads.

Legal defensibility: Demonstrable code changes showing active remediation efforts.

A CTO's Decision Framework

Criteria to Evaluate Current Setup

If you're currently using an overlay, evaluate honestly:

What's the overlay actually fixing? Request detailed technical documentation of changes the overlay makes. Map these against WCAG success criteria.

What can't it fix? Identify issues that require source code changes. Assess the severity and user impact of these gaps.

What's the user experience? Test with actual assistive technology users or conduct expert evaluation. Is the overlay improving or degrading the experience?

What are the costs? Consider subscription fees, performance impact, and support burden when issues arise.

What's the legal posture? Consult legal counsel about whether the overlay provides meaningful legal risk reduction in your jurisdiction.

When to Phase Out Overlays

Consider transitioning away from overlays when:

You have development capacity: Even modest development investment can address issues overlays cannot.

User complaints persist: If users with disabilities report problems despite the overlay, the overlay isn't working.

Legal pressure continues: If you're receiving demand letters or facing litigation despite overlay deployment, the overlay isn't providing legal protection.

Performance matters: If page performance is a priority, removing overlay JavaScript improves load times.

You're building a sustainable program: Long-term accessibility requires code-level capability, not vendor dependency.

Hybrid Approaches During Migration

How do you transition from overlays to code-level fixes? Prioritize fixing critical user journeys in code first, use overlays only for low-impact pages during transition, measure and compare user experience between overlay and code-fixed pages, and set a clear timeline for complete transition.

Transitioning doesn't require immediate removal:

Phase 1: Identify highest-impact user journeys (checkout, signup, core features). Fix these in code. Remove overlay from these pages.

Phase 2: Extend code-level fixes to high-traffic pages. Continue using overlay for lower-priority areas while building capacity.

Phase 3: Complete code-level coverage of all critical functionality. Reduce overlay scope to legacy or rarely-updated content.

Phase 4: Remove overlay entirely. Maintain accessibility through integrated testing and monitoring.

Throughout migration, measure user experience on both overlay and code-fixed pages. Use this data to build the case for accelerated transition.

How TestParty Approaches Code-Level Accessibility

Integrating into CI and Repos

TestParty takes the opposite approach from overlays—finding and fixing issues in your actual code:

CI/CD integration: TestParty scans run in your build pipeline, catching accessibility issues before code ships to production.

Code-level fixes: When TestParty identifies issues, it provides specific remediation guidance showing exactly what code to change and where.

Component tracking: TestParty identifies patterns and components causing issues across your codebase, enabling efficient fixes at the source.

Regression prevention: Continuous scanning ensures fixed issues stay fixed, catching regressions before they reach users.

Helping Teams Transition Off Overlays

For organizations currently using overlays, TestParty supports transition:

Gap analysis: Compare what your overlay claims to fix against actual WCAG conformance. Identify issues requiring code-level attention.

Prioritization: Focus development effort on highest-impact issues that overlays cannot address.

Progress tracking: Measure accessibility improvement as you transition from overlay dependency to code-level fixes.

Evidence generation: Document remediation efforts for legal and compliance purposes.

Frequently Asked Questions

Do accessibility overlays actually work?

Overlays can make limited improvements—adding some ARIA labels, providing toolbar features, adjusting visual styling. However, they cannot fix structural issues like heading hierarchy, DOM order, semantic HTML problems, or complex interactive components. Many accessibility professionals and users with disabilities report that overlays are ineffective or harmful. Overlays should not be considered a complete accessibility solution.

Are overlays legally defensible?

Legal defensibility varies by jurisdiction and case. Overlaid sites have been successfully sued for accessibility violations despite overlay deployment. Overlays may demonstrate intent to address accessibility, but they don't guarantee compliance. Consult legal counsel familiar with digital accessibility litigation in your jurisdiction.

How much do overlays cost vs. code fixes?

Overlay subscriptions typically range from $500-$5,000+ monthly depending on traffic. Code-level fixes require development time but are permanent. For most organizations, the long-term cost of sustained overlay subscriptions exceeds the one-time investment in code-level remediation—plus code fixes address issues overlays cannot.

Can we use overlays temporarily while building code-level accessibility?

Yes, this hybrid approach is common during transitions. However, be clear about the timeline and scope. Overlays should cover only what code hasn't yet addressed, and you should progressively reduce overlay reliance as code-level fixes expand. Don't let "temporary" become permanent.

What should I tell my board about our overlay?

Be honest about what overlays can and cannot do. Explain that overlays are a partial measure addressing some issues but unable to fix structural problems. Present a roadmap for building code-level accessibility capability that reduces risk more effectively than overlay dependency.

Conclusion – Make the Architecturally Sound Choice

The accessibility overlays debate comes down to architectural philosophy: do you want to layer fixes on top of a broken foundation, or fix the foundation itself?

Overlays offer speed at the cost of completeness, reliability, and long-term sustainability. They address symptoms without curing causes. They create vendor dependency for a problem that belongs in your codebase.

Code-level accessibility requires investment but produces durable results. Every component fixed is permanently fixed. Every pattern improved improves every page using that pattern. Over time, code-level capability compounds while overlay dependency remains static.

For CTOs evaluating accessibility strategy, the question isn't "overlay or code"—it's "what's our path to code-level accessibility, and what role (if any) do overlays play during transition?"

The architecturally sound choice is clear: build accessibility into your code. Use tools that support that goal. Create sustainable capability that doesn't depend on external services.

Relying on an overlay today? Get a free code-level accessibility assessment and see what your overlay is missing.


Related Articles:

Stay informed

Accessibility insights delivered
straight to your inbox.

Contact Us

Automate the software work for accessibility compliance, end-to-end.

Empowering businesses with seamless digital accessibility solutions—simple, inclusive, effective.

Book a Demo