What is Accessibility Testing?
Accessibility is all about making applications accessible for people who have impairments. It covers people with visual, auditory, or other cognitive impairments.
As we are developing our applications, we should keep these folks in mind as we test to ensure that our software is accessible to all our users.
Why is Accessibility Testing Important?
At least one in five people have some type of impairment, so it's very important to have them in mind when developing software. Recent figures from the Census Bureau show that 18.7% of the US population has some sort of disability and that 54% of those adults go online. From a business perspective, it makes sense for us to ensure them the best experience possible when using our apps.
Furthermore, more governments are passing regulations that make certain disability requirements for software mandatory.
Free Course Accessibility Testing Using Cypress
Can Testing be Automated with Accessibility Testing Tools?
Although using an exploratory-type testing approach conducted by folks that actually have impairments will give you some of the best coverage, partial and full automation of accessibility testing is also possible.
But before you fire up your favorite accessibility testing tool, I recommend downloading the Checkpoints for Web Content Accessibility Guidelines (WCAG) to help direct your automation efforts. Keep in mind Compliance with Web Content Accessibility Guidelines (WCAG) is important, but it should be used in conjunction with user research and feedback from users with disabilities.
This list includes three types of accessibility testing tooling: manual, automation, and user acceptance testing.
- Manual testing involves using browsers, plug-in tools, and assistive technology.
- Automation testing focuses on tools like Ax.
- User acceptance testing involves testing with people with disabilities to understand real-world performance and find issues beyond accessibility conformance.
Top Accessibility Testing Tool List
Web Accessibility Checker
The Web Accessibility Checker is probably the easiest way to perform accessibility checks on any ASP.NET Web application. It’s fully customizable and supports all major international accessibility standards.
UI Automation
Microsoft UI Automation is an accessibility framework that enables Windows applications to provide and consume programmatic information about user interfaces (UIs).
It provides programmatic access to most UI elements on the desktop. It enables assistive technology products, such as screen readers, to provide information about the UI to end users and to manipulate the UI by means other than standard input.
UI Automation also allows automated test scripts to interact with the UI.
Windows SDK
Some other helpful test tools in the Windows SDK are the Accessible Event Watcher, Inspect, AccScope, UI Accessibility Checker, and UI Automation Verify.
Automated Accessibility Testing Tools (AATT)
The GitHub page for AATT by PayPal describes itself as a browser-based accessibility testing tool, and plugins require manually testing each page, one at a time.
What’s cool is that instead of developing, testing, and using a separate accessibility test suite, you can now integrate accessibility testing into your existing automation test suite using AATT.
AATT integrates with automation frameworks like PhantomJS, SeLion, and NemoJS.
Accessibility Developer Tools
The Accessibility Developer Tools (ADT) is a library of accessibility-related testing and utility code.
Its main component is the accessibility audit: a collection of audit rules checking for common accessibility problems and an API for running these rules on an HTML page.
ADT has an Audit API axs_testing.js that you can use for automation. You can also run it at the command line using PhantomJS.
For testers that want to run Selenium-based accessibility tests, they even have an example of using it with Selenium Webdriver and Scala.
A11y Machine
The A11y Machine (or a11ym for short, spelled “alym”) is an automated testing tool that crawls and tests pages of any Web application to produce detailed reports. It validates pages against the following specifications/laws.
Tanaguru
Tanaguru is an automated accessibility (a11y) testing tool with an emphasis on reliability and automation. Tanaguru has an open-source (AGPL license) option and a paid option with more features.
It is dedicated to accessibility (a11y) audits and focuses on reliability and a high level of automation.
Axe-Selenium-Java
Axe-Selenium-Java is for Java testers that want to expand their test suites with automated accessibility tests. Axe offers the ability to perform web accessibility testing with JUnit and Selenium.
Axe-WebDriverJs
Axe-WebDriverJs provides JavaScript test automation engineers with a chainable Axe API for Selenium's WebDriverJS and automatically injects it into all frames.
Protractor-Accessibility-Plugin
Protractor has an Accessibility Plugin that will run each set of audits (depending on your configuration) on your existing end-to-end tests to ensure your site is free of obvious errors.
The creator of this plugin, Marcy Sutton, has written a post on how and why she created the Protractor Accessibility Plugin, along with some examples of how to use it for auditing Selenium WebDriver element objects.
Tenon.io
Tenon.io is an API that can add accessibility tests to pretty much any automation framework you might already be using. Tenon was also designed to test against WCAG.
Pa11y
Pa11y.org has a bunch of tools you can use to help automate your accessibility tests. They have a command-line interface, a browser-based dashboard for monitoring the accessibility of a number of your sites simultaneously, a web service, and even a tool that integrates with CI tools.
Apple’s Accessibility APIs
If you’re testing IOS apps, there are some accessibility APIs, like VoiceOver, that you can use in your scripts to help test accessibility.
Leveraging these APIs will not only make your testing easier, but it will also have the added benefit of improving your user experience.
Google’s Accessibility Test Framework for Android
Google’s Accessibility Test Framework (GATF) has test logic that can detect a bunch of common accessibility issues. It makes use of existing Android UI constructs and is easily integrated with other tools and frameworks.
For example, you can access the GATF functionality in Espresso by enabling AccessibilityChecks.enable.
Other Accessibility Testing Tools Resources
If you’re into browser extensions to help you with your accessibility testing, here are a few of the more popular web accessibility testing tools you should check out:
Wave Evaluation Tool
You can pass the Wave Evaluation Tool to your URL, and it will tell you what accessibility practices you might be missing or are not optimized for, along with a summary of errors and alerts. It provides visual feedback about the accessibility of your Web content by injecting icons and indicators into your page.
Color Contrast Analyzer
The Color Contrast Analyzer extension allows you to check for text color contrast problems on a Web page according to the WCAG 2 text-color-contrast requirements.
It evaluates the page as it appears in the browser, so it’s able to handle text over gradients and advanced CSS attributes. You can choose to analyze a portion of a Web page, the entire visible contents of a tab, or an entire Web page.
ChromeVox
The ChromeVox screen reader is an extension to Chrome that brings the speed, versatility, and security of Chrome to visually impaired users.
Accessibility Evaluation Toolbar
The Accessibility Evaluation Toolbar is a Firefox add-on that supports Web developers in testing Web resources for accessibility features.
DOM Inspector
The DOM Inspector is a Firefox add-on that will show you what areas of your application DOM are truly accessible.
It has a handy “accessible tree” mode.
Color Oracle
Color Oracle is a free color blindness simulator for Windows, Mac, and Linux. It takes the guesswork out of designing for color blindness by showing in real time what people with common color vision impairments will see.
What are some key Metrics used in Accessibility Testing?
Key Metrics used in Accessibility Testing are quantitative measures that assess various aspects of website accessibility.
These metrics play a crucial role in evaluating the level of accessibility, tracking progress, identifying areas for improvement, and ensuring compliance with accessibility standards.
Some of the key metrics include:
- Error Density, which measures the frequency of accessibility errors on a website
- Compliance with WCAG Levels, which evaluates the website's adherence to the Web Content Accessibility Guidelines
- Unique Issues, which identifies specific and distinct accessibility issues present on the website
- User Impact, which assesses how accessibility barriers affect users interacting with the website
- Keyboard Accessibility Score, which evaluates the ease of navigating the website using only keyboard controls
- Screen Reader Compatibility, which measures how well the website is compatible with screen readers for visually impaired users.
These metrics collectively provide valuable insights into the accessibility of a website and help in enhancing the overall user experience for all individuals.
Also many experts on my Test Guild Automation podcast have mentioned their view over the years. For example here are a few metrics and guidelines mentioned in some episodes that can help you with accessibility testing:
What are the different Types of Accessibility Testing?
Different types of accessibility testing aim to ensure that web and mobile applications are easily usable by individuals with disabilities such as visual, hearing, mobility, and cognitive impairments. The process involves thorough evaluation of the product against recognized accessibility standards and laws, such as WCAG Compliance, to address any existing accessibility issues.
Various key types of accessibility testing include:
- Color Contrast Testing: This involves assessing the contrast of text against its background to meet specific standards, like the minimum contrast ratio required by WCAG for different types of text sizes.
- Text Alternatives Verification: Verifying the presence of appropriate alternative text or aria-labels for images to aid users who cannot see the visuals.
- Accessible Rich Internet Applications (ARIA) Testing: Ensuring proper application of ARIA roles and attributes on interactive elements like buttons, form controls, and live regions to enhance screen reader compatibility.
- Keyboard Accessibility Testing: Testing the functionality of navigating through a website or application solely using the keyboard, including checking keyboard shortcuts that enable users to interact with links, buttons, and form controls effectively.
By conducting these types of accessibility testing, developers and testers work towards creating a digital environment that is inclusive and free from accessibility barriers, thus ensuring better user experience for individuals with disabilities.
Accessibility Advocate Crystal Preston-Watson breaks down accessibility testing into three main categories:
- Manual Accessibility Testing: This involves testing applications manually for accessibility issues that may cause problems for users with disabilities. It includes using browser and plug-in tools like WAVE, Lighthouse, or aXe, as well as assistive technologies like screen readers and switches.
- Automation Accessibility Testing: This involves using automated tools and frameworks to test for accessibility issues. Some examples include aXe, Applitools Contrast Advisor, and Espresso (for Android).
- User/Usability Testing: This involves testing with people with disabilities to understand how the application or site performs in the real world and to find issues beyond just accessibility conformance.
Who should be involved in Accessibility Testing?
Thats easy – everyone on the team!
But seriously based on the insights provided by the experts I've spoken with, it's clear that accessibility testing should involve a diverse group of people to ensure a comprehensive and inclusive approach. Here's who should be involved in accessibility testing:
1. Quality Assurance (QA) Teams: QA professionals, play a vital role in ensuring accessibility standards are met. They are responsible for creating test plans, executing tests, and reporting issues.
2. Accessibility Specialists: Experts who have deep knowledge of accessibility guidelines and best practices, should be involved to provide guidance and support throughout the testing process.
3. Designers and User Experience (UX) Professionals: As Shweta Sharma points out, accessibility should be considered from the early stages of design. Designers and UX professionals should work closely with accessibility specialists to create inclusive designs that meet accessibility standards.
4. Developers: Developers play a crucial role in implementing accessible code and fixing identified issues. They should be knowledgeable about accessibility guidelines and work closely with QA and accessibility specialists.
5. Product Managers: Product managers are responsible for ensuring that accessibility is prioritized and included in the product roadmap. They should work with the team to balance accessibility requirements with other product goals.
6. Users with Disabilities: As emphasized by Crystal Preston-Watson involving users with disabilities in the testing process is essential. They can provide valuable insights and feedback on the real-world usability of the website or application.
7. Stakeholders: All experts mentioned the importance of educating stakeholders about the importance of accessibility. Stakeholders, such as business owners and executives, should be involved in the process to ensure that accessibility is given the necessary resources and priority.
8. Legal and Compliance Teams: Given the legal implications of accessibility, it's important to involve legal and compliance teams to ensure that the website or application meets all relevant regulations and standards.
Accessibility testing should involve a collaborative effort from QA teams, accessibility specialists, designers, developers, product managers, users with disabilities, stakeholders, and legal and compliance teams. By involving this diverse group of people, organizations can ensure that their digital products are accessible, inclusive, and compliant with relevant standards and regulations.
Your Top Accessibility Testing Tools
Accessibility testing is an essential part of creating an effective, accessible website. While you automate accessibility testing with tools, you save time and money, as well as improve testing accuracy and reliability.
Do not let a lack of resources stand in your way any longer. Let me know if I missed one of your favorite accessibility test automation tools, and I will add it to the list.