An Introduction To Accessibility Testing

Accessibility testing is a subset of usability testing that takes into consideration both users with and without disabilities. In particular, it focuses on testing software, mobile apps and websites. Since 15 percent of the world population has some kind of disability, and three percent of those people have significant disabilities, accessibility testing is critical. QA performs the same tests they would for usability testing, but taking into consideration the tools and software people with disabilities would use.

Now, think about how much time you spend daily using your smartphone or your laptop. If your answer is “a lot of time,” it’s because we spend an average of seven hours per day using technology.

Accessibility testing is how we can make sure that computers and smart devices can be used by everyone, regardless of age or ability. We don’t want anyone to miss out on the digital era.

It should be a priority for everyone to ensure that every new digital component of our lives “can easily be accessible by physically disabled individuals despite their respective handicaps”. (source)

Accessibility testing is not only the right thing to do, there are also government regulations mandating it. In the U.S., for example, federal agencies need to make their electronic and information technology accessible to people with disabilities (Section 508 Amendment to the Rehabilitation Act of 1973 - updated in 2017). Fail to do so, and you will face violation fees and fines which can really hurt a company. In the European Union, websites and mobile apps of public sector bodies to conform with WCAG 2.0 Level AA.

Web Content Accessibility Guidelines (WACG) and best practices

A website or a mobile (web) app puts together the efforts of different teams and people, where most of them should know about Web Content Accessibility Guidelines (WACG). Both design and development should ideally be compliant to those guidelines and to our expectations.

We now expect a website to be responsive, have nice effects, such as counters, motion elements or images with parallax effects, a clean design, and to represent the brand. A mobile app should also add value, giving the user something extra than the website.

But can a screen reader identify all of the elements? Do all the pictures have descriptions? Do all the videos have subtitles? Can I deactivate the parallax effect? Do all of the icons have labels? Are all the elements tagged correctly? Can I navigate to every page using just the keyboard?

These are just a few questions that designers, developers and QA need to ask themselves at different stages of a project. Knowing how a screen reader works or how colorblind people can adjust the colors on their screens can make the creation and testing process a lot easier.

Here are the four principles on which the WCAG are based on:

Perceivable information and user interface

Operable user interface and navigation

Understandable information and user interface

Robust content and reliable interpretation

Perceivable information and user interface

This principle specifies everything that has to do with text alternatives for non-text content, captions and other alternatives for multimedia, different presentations of content, and to make sure content is easier to read and hear.

Every image, including icons, buttons, and graphics, video, charts, need to be properly tagged and described for a screen reader or a non-visual browser to show information properly. Videos should also have subtitles, as well as audio narrations for important visual content in the video. The text needs to be able to adapt quickly, including custom colors, text size, or any other customization that facilitates reading, as well as high contrast all the time.

Images with parallax effect (where the image stays fixed while the content moves on top of it) or flashing at a certain intervals, can cause nausea and epileptic attacks. Even though they might look good, designers and developers should take thoughtful care when using these elements on a website.

Operable user interface and navigation

A website needs to be navigable and interactive entirely through the the keyboard, which is essential for people who use a text browser or are unable to use a mouse for various reasons.

Hierarchy and structure needs to be a priority here to make it easier to navigate through the menu and the related pages. JavaScript will mostly be disabled on visual browsers, or screen readers might not be able to see those elements in JavaScript wrappers.

Another issue worth addressing in this section are the login timeouts or the re-authentication without any data loss, or text that disappears after the ideal “reading time.” Times need to be adjusted to slow readers and to people that need more time to fill out a form or triple check before confirming a transaction.

Responsive design is a must-have right now, mostly because of smartphones and tablets, but it also needs to look nice and not break if it’s magnified instead of made smaller.

Understandable information and user interface

Some things that seem obvious may not be for software, especially for text-to-speech software. The language on a website needs to be very clear.

Also, using the same structure, and system of where information or descriptions are on different pages, can help users learn how to navigate the website.

Forms and other interaction can be difficult and confusing for some people and consequently lead to errors. An example could be forms that have the description inside the field and the description disappears after the typing starts, instead of maybe moving above or underneath the typing. Error message descriptions become very helpful to describe what was amiss, and help users to correct the mistake made.

Robust content and reliable interpretation

This principle is about compatibility with older, newer, and coming accessible technology. Markup language is the safest way to keep technology compatible with different browsers, assistive technology.

Accessibility testing can actually improve the quality of the website/app

It’s important to understand the difference between having an accessible website and a website compliant to all of the accessible principles. Same goes for mobile apps - the principles can be applied to mobile, such as text-to-speech, different colors, app structure, text size variations, and more.Not every website or mobile app needs to be completely accessible, but even making small changes, such as tags, non-text element descriptions, a clear structure and better contrast, the experience can be enhanced for all users.

This may feel like usability testing, and you are right. Usability testing is all about how easy it is to use a system, in this case websites and mobile (web) apps. In turn, accessibility testing simply means these technologies accessible to all.

As you see, the core testing principle is the same for both, but accessibility testing goes a step farther, analyzing elements a bit deeper. Both rely on ease of use, earning, user satisfaction with both design and information, and avoiding errors. However, it is important to distinguish between complying with a standard and maximizing the accessibility of a web site. Ideally, the two would be the same, but any given standard may fail to:

address the needs of people with all disabilities

balance the needs of people with differing disabilities

match those needs to optimal techniques

use clear language to express needs or techniques

Looking for a target audience and find out what kind of people will search for the information on your website and/or your mobile (web) app, can help you concentrate on testing the important things for specific groups of people.

Conclusion

We often talk about test automation and how it can improve your testing, by saving you a lot of time and money. Like usability testing, accessibility testing can also be performed in an automated way. Frameworks like Selenium and Appium can be easily used to write tests, with easy maintenance, because they are cross-platform. Testing is important in all of the development stages and cannot be skipped. Test automation can easily be integrated into any DevOps process, giving nearly real-time feedback, based on the interval tests are running. The earlier bugs and changes to make are being identified, the easier it is to fix them. Regression testing should also definitely be on any pre-release checklist and on every further update.