fotogestoeber - Fotolia


Software accessibility testing: Standards, strategy and tools

Assistive technology ensures that all customers can access software easily. Don't overlook this important element of software quality. Here's how to test software accessibility.

For the more than one billion people in the world who have disabilities, accessible software can enhance quality of life. Some percentage of any given IT organization's customers have a permanent or temporary disability. If the software is not accessible, customers might move on to competitors' offerings.

IT organizations need guidance to prioritize software accessibility. Software accessibility testing is a specialized area of usability testing that aims to ensure that anyone can understand, navigate and otherwise use a website or application.

Let's go over what to include in a software accessibility testing strategy and the standards that support those efforts.

Software accessibility testing standards

There are standards for what constitutes an accessible website or web application. The World Wide Web Consortium (W3C) offers these four principles of software accessibility:

  • perceivable information and UI;
  • operable UI and navigation;
  • understandable information and UI; and
  • robust content and reliable interpretation.

Accessibility testing should assess each of these characteristics.

Perceivable. An app that is perceivable means that information can be identified by more than one sense. For example, text alternatives should describe non-text content, such as labels and icons. Similarly, a website or app must provide captions and audio to accommodate users with hearing and vision disabilities.

For software to be perceivable, it must also present content in formats and colors that make it easy to understand. To accomplish this objective, software designers can use bullet points and lists for text, allow for magnification and design screens with high-contrast backgrounds.

Operable. Web apps should allow users to perform all the actions necessary to navigate the UI, including how they complete interface components like forms and inputs. Navigation should be seamless via all methods, such as the mouse, arrow keys and trackpad. When software is operable, it facilitates the use of assistive technologies like mouth sticks or speech recognition.

Understandable. Software that is understandable means that the user comprehends both the information it presents and the requirements for operation. App content should be easy to read and simple to grasp; the app should be predictable, and its format should be consistent across pages. All instructions and error messages should be descriptive and easy to follow, and software should help users correct their mistakes.

Robust. Software should be compatible with most assistive technologies. Robust software adapts to ensure content is accessible as technologies evolve. To meet this principle, use consistent markup and standardized UI components.

Section 508 provides a public example

In the U.S., Section 508 of the Workforce Rehabilitation Act of 1973 (1998 amendment) mandates that the websites, electronic technology and IT of any federal agency be accessible to people with disabilities. The law's requirements are comparable to standards issued by the European Commission, and compatible with the W3C Web Content Accessibility Guidelines.

Section 508 also serves as a longstanding and large-scale example of software accessibility design and testing for private organizations to follow. The government website for Section 508,, includes resources on how to make content accessible, from PDFs to video meetings, as well as how to manage a software accessibility program and purchase accessible products.

Software accessibility test design

Like most non-functional testing, software accessibility testing should begin as early as possible in the development process. Design flaws often are the root cause of software accessibility issues; these flaws can be difficult and expensive to remediate late in the development process.

Effective accessibility test design reflects the perspective of users, specifically those with disabilities. Test for suitability for people with a broad range of disabilities: Vision, hearing, physical limitations, learning disabilities and literacy issues are among the recognized disabilities.

Software accessibility testing can include some automation, but it's crucial to perform manual tests, given the importance of the user perspective. Automate accessibility tests for basic scenarios, then enable QA professionals to assess complex test scenarios.

Functional testers with checklists of accessibility requirements can perform manual testing. It might be worthwhile to bring in an accessibility testing consultant with an International Association of Accessibility Professionals certification, especially if the team plans to build a new website or if a high percentage of users are people with disabilities.

Types of accessibility testing tools

IT organizations can use a variety of software accessibility testing tools.

Some assessment tools determine whether the application under test meets Web Content Accessibility Guidelines (WCAG) standards. This category of tools includes AChecker and Cynthia Says.

Additionally, most web browsers offer accessibility plugins; Firefox and Chrome both offer accessibility extensions and connect with third-party options, such as the open source IBM Equal Access Accessibility Checker plugin.

Tools that focus on accessibility for mobile applications include mobiReady and W3C mobileOK Checker.

To assess an application against WCAG 1.0 requirements and obtain a bug report, consider a tool like EvalAccess.

Tools that automate accessibility testing include aDesigner, which focuses on visual accessibility issues. Vischeck, another option, enables the tester to see the screen from the perspective of users with various types of disabilities. Color contrast checkers and linguistic checkers also exist for more specific usability scenarios.

Dig Deeper on Software test types

Cloud Computing
App Architecture