VOOZH about

URL: https://thenewstack.io/accessibility-is-just-another-functional-test/

⇱ Accessibility Is Just Another Functional Test - The New Stack


TNS
SUBSCRIBE
Join our community of software engineering leaders and aspirational developers. Always stay in-the-know by getting the most important news and exclusive content delivered fresh to your inbox to learn more about at-scale software development.
REQUIRED
It seems that you've previously unsubscribed from our newsletter in the past. Click the button below to open the re-subscribe form in a new tab. When you're done, simply close that tab and continue with this form to complete your subscription.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.
Welcome and thank you for joining The New Stack community!
Please answer a few simple questions to help us deliver the news and resources you are interested in.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Great to meet you!
Tell us a bit about your job so we can cover the topics you find most relevant.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Welcome!

We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.

What’s next?

Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.

Follow TNS on your favorite social media networks.

Become a TNS follower on LinkedIn.

Check out the latest featured and trending stories while you wait for your first TNS newsletter.

PREV
1 of 2
NEXT
VOXPOP
As a JavaScript developer, what non-React tools do you use most often?
Angular
0%
Astro
0%
Svelte
0%
Vue.js
0%
Other
0%
I only use React
0%
I don't use JavaScript
0%
Thanks for your opinion! Subscribe below to get the final results, published exclusively in our TNS Update newsletter:
NEW! Try Stackie AI
From clobbered drafts to real-time sync
Apr 14th 2026 10:00am, by David Moore
TypeScript 6.0 RC arrives as a bridge to a faster future
Mar 14th 2026 9:00am, by Darryl K. Taft
Mastra empowers web devs to build AI agents in TypeScript
Jan 28th 2026 11:00am, by Loraine Lawson
2022-11-23 10:00:21
Accessibility Is Just Another Functional Test
contributed,
Frontend Development

Accessibility Is Just Another Functional Test

Why are companies checking for accessibility at the end of a development cycle? Evinced provides a better solution: automating functional tests.
Nov 23rd, 2022 10:00am by Navin Thadani
👁 Featued image for: Accessibility Is Just Another Functional Test

Editor’s Note: The following post has been provided by Evinced. Insight Partners is an investor in both Evinced and The New Stack.

Accessibility advocates have been demanding more accessible websites and mobile apps for years. And, with an estimated 15% of the global population living with disabilities, most businesses are striving to make their digital experiences accessible to differently-abled people.

So, if everyone wants accessibility, what’s taking so long to make it happen?

And why are companies checking for accessibility at the end of a development cycle — or worse, months after a release?

At Evinced, we’ve been asking the question: Why can’t accessibility be just another automated functional test?

The truth is that it’s been too hard to do, for far too long.

It’s Too Hard to Set up and Maintain Tests

Legacy tools only take static scans, forcing developers to program the scans to run at specific points in the test to ensure they check the application thoroughly.

There are two approaches to this, and frankly, both are bad:

Option 1: Add the scans directly. Going through each line of a test and adding a static scan at every interaction could produce many more scans that need to be added per test. It’s not practical for hundreds and thousands of tests.

//Original Test
@Test
public void trvlHomePage() {
driver.get(demoPage);
// Click "Accommodation Type" dropdown
driver.findElement(By.cssSelector("div.filter-container > div:nth-child(1)")).click();
// Click "City" dropdown
driver.findElement(By.cssSelector("div.filter-container > div:nth-child(2)")).click();
// Click "When" date picker
driver.findElement(By.cssSelector(".react-date-picker")).click();
}

//Test with legacy accessibility scans
@Test
public void trvlHomePageLegacy() {
driver.get(demoPage);
scanForAccessibility();
// Click "Accommodation Type" dropdown
driver.findElement(By.cssSelector("div.filter-container > div:nth-child(1)")).click();
scanForAccessibility();
// Click "City" dropdown
driver.findElement(By.cssSelector("div.filter-container > div:nth-child(2)")).click();
scanForAccessibility();
// Click "When" date picker
driver.findElement(By.cssSelector(".react-date-picker")).click();
scanForAccessibility();
}

Option 2: Abstract away the static scans of individual tests into your page objects or helper methods. This approach only works until the page changes. Maintaining pages and ensuring static scans are in the correct places to sustain accessibility coverage creates too much work.

 public void homePageLogin(String username, String password) {
driver.findElement(By.id("username")).sendKeys(username);
driver.findElement(By.id("password")).sendKeys(password);
driver.findElement(By.id("loginBtn")).click();
scanForAccessibility();
}

There’s a lot of noise — reports with hundreds and thousands of issues and many duplicates — when using legacy tools.

For example, when testing for accessibility using a legacy tool like aXe, developers need to add an accessibility check and a resulting report for each element in the test. Afterward, they must manually deduplicate the issues across the reports. While a single-page site could be manageable, if you like de-duplicating reports, it’s not practical for tests involving multiple elements, user interactions, and pages.

Manual Checks Aren’t Scalable and Can’t Keep up with Build Cycles

Functional testing has become automated in the last decade, but accessibility testing still relies heavily on manual audits and reviews at the end of a development cycle. These reviews can interrupt production cycles causing expensive delays. Audits occurring after builds are released can result in live bugs.

A New Approach

We need solutions to these problems and a cohesive approach that helps developers shift accessibility testing left and treat it like any other round of functional testing.

Simply put: What would make accessibility testing easier?

Here’s a thought: What if you could set up an accessibility SDK within your company’s test framework before running the first test?

For instance, perhaps you could simply instantiate and call a test automation SDK during setup, just once, with a few lines of code even if you were working with 10 or 10,000 tests. Wouldn’t accessibility testing be easier if it were this simple to implement?

 
import com.evinced.EvincedWebDriver;


@BeforeClass
private void driverSetup() {
driver = new EvincedWebDriver(new ChromeDriver());
driver.evStart();
}

Support for Most Frameworks

Of course, the best accessibility testing solutions would include built-in support for the most commonly used web and mobile automation frameworks — Selenium, Cypress, Playwright, WebdriverIO, Ruby, XCUITest, Espresso, Appium, and others.

And, you’d want an SDK that integrates directly with continuous integration systems like Jenkins, CircleCI, etc., and supports various output formats — JSON, HTML, SARIF etc. (It also raises the possibility of conditional gating based on accessibility for each build.)

Two More Requirements

To really bring it together, it would be important to continuously scan the document object model (DOM) for changes as your UI tests run and exercise various UI elements.

Instead of asking you to code up a single test and report for every single page and interaction, the accessibility SDK could discover issues automatically. Ideally, there would be no per-test code at all. And then you’d receive a single, de-deduplicated report for your whole test suite.

That’s accessibility testing made simple, and what’s simple is sustainable.

Toward Automation-Empowered Expertise

Accessibility testing isn’t new, but it does need to change.

The model we’ve suggested above is the key. Shifting accessibility testing left, making testing easier and more sustainable will ensure more users are served, developers stop throwing their hands up in frustration, and experts can focus where experts are truly needed.

TRENDING STORIES
SHARE THIS STORY
TRENDING STORIES
Insight Partners, which owns The New Stack, is an investor in Diagrid.
TNS owner Insight Partners is an investor in: Simply, evinced.
SHARE THIS STORY
TRENDING STORIES
TNS DAILY NEWSLETTER Receive a free roundup of the most recent TNS articles in your inbox each day.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.