Skip to main content

Testing the software accessibility

 Software applications for everyone

What is Accessibility?

It is all about making applications accessible for ALL people, including those who have disabilities, like visual (color blindness, astigmatism), auditory (hearing loss), motor (cerebral palsy, muscle and joint conditions, spine injuries), cognitive (problem solving, processing, learning), or other impairments.

So, our applications should be designed and developed to keep all these folks in mind, as we test to ensure that our solutions are accessible for 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 studies show that +15% of the population has some sort of disability and that 54% of those adults go online, so from a business perspective, it makes sense for us to ensure them the best experience possible when using our applications. 

Additionally, this is a human right (legal/justice) and moral, because persons with disabilities face discrimination, so it is a social responsibility to avoid these problems.

How to achieve compliance?

The World Wide Web Consortium (W3C) organization has defined some standards on this Web Content Accessibility Guidelines 2.1 (WCAG). It is a set of guidelines that specify the manner which has to be followed to check the system accessibility especially for people with disabilities.

Some Principles defined by WCAG for system accessibility are as follows: perceivable (users must be able to perceive the information being presented), operable (users must be able to operate the interface), understandable (users must be able to understand the information), and robust (users must be able to access the content).

Under the principles there are 13 guidelines that provide the basic goals that authors should work toward in order to make content more accessible to users with different disabilities.

For each guideline, testable success criteria are provided to allow WCAG to be used where requirements and conformance testing are necessary such as in design specification, purchasing, regulation, and contractual agreements. In order to meet the needs of different groups and different situations, three levels of conformance are defined: 

  • A (lowest level of compliance, essential for basic accessibility)
  • AA (moderate level, required by accessibility regulation)
  • AAA (The highest level of WCAG compliance)

You can meet WCAG 2.1 on this quick reference (old full checklist).

According to working specifications, Accessibility Testing Tools are categorized as:

  1. Screen Reader Software: Read out the contents on the screen. For example: ChromeVox
  2. Speech Recognition Software: Converts the spoken words into text
  3. Special Keyboard: Ease of typing using this keyboard especially people with motor impairments
  4. Screen Magnification Software: Dedicated to vision-impaired users thus it is used to enlarge the display such that the reading will be easier

Tools to automate the Accessibility Testing in our pipeline for free

For sure, we can test that manually, but we are looking for some tools that could help us to automate all these checks, especially to put them in our pipeline (check automatically before merging a pull request) in a web application.

Following tasks are being verified by Accessibility Testing Tools:

  • Descriptive Link Text
  • Alt text and anchor texts (identifying images that don’t have alternative text)
  • Page structure and easy navigation (keyboard navigation)
  • Avoid Pop-ups
  • Small and simple sentences
  • Simple language
  • Internal and external links (detecting broken or empty links)
  • Use of CSS layouts instead of HTML (reviewing HTML and CSS)
  • Readability and color contrast (checking font size, spacing, etc)
  • PDF accessibility
  • Checking buttons (ensuring that buttons are big enough to be easily clicked on)

Let's analyze the following Benchmarking of tools

If your team is using the Storybook tool for developing and testing, I really recommend utilize @storybook/addon-a11y addon. Because, as you can see above, there are a lot of people using it (it is supported and maintained), it is free, it has a beautiful way to see the results inside the Storybook, especially, to see what needs to be improved if there are checks failing. Further, it has several ways to configure it, what you want to check and what you want to exclude, and of course, it supports the latest WCAG 2.1 version.

The following option is using something more native, for example, @axe-core. It is free, it is the most used by the community, it returns a clear report with the things to improve, support the WCAG 2.1 version, and it has a lot of things to be configured, additional, it supports several locations (not only the English is supported). It does not generate a nice HTML report, but the paid version from the deque, it offers a great Monitor and Auditor tools, extensions from the browser, and also mobile support for Android and iOS.

Demo

Watch the following video for more details about some of the above tools in action (if you already read the above text, I recommended you to start from 13:40 minute):

In the following links, you will find some examples of how to use most of the tools mentioned above:


Sources:

Popular posts from this blog

ISTQB - Foundation Level Agile Tester Recap

ISTQB - Foundation Level Agile Tester Recap This is a summary that will help you to approve the Agile Tester certification test. 1 - Agile Software Development 1.1 - The fundamentals of Agile Software Development  The Agile Manifesto has 4 values : - Individuals and interactions over processes and tools (people-centered) - Working software over big documentations (time to market advantage) - Customer collaboration over contract negotiation (customer requirements) - Responding to change over following plan (change is more important)   The Agile Manifesto has 12 principles : - Satisfy the customer with continuous delivery - Changing requirements - Deliver software frequently (few weeks or months) - Business people and developer must work together - Build projects around motivated individuals - Face to face conversation - Working software is the primary measure of progress - The team should maintain a constant pace indefinitely - Technical excellence and good design - Simplic

RasPI Assistant: Google Assistant + Dialogflow + Raspberry Pi

Would you like to control the TV using your voice without spend a lot of money? ... Amazing right?. So, in this post, I will teach you how to do that and more. Some of my dreams always have been control things without touch them, for example: the television, due to tired to raise the hand to change the channel. So ... let's create a device that can do this action automatically. What things will we need? First, I should understand the problem and be aware about it. For example: if we want to control a TV that is not smart, how will we do that? ... a possibility is to send infrared signals (IR) to transmit the events that the person's desire. Also, if I want that the device can hear me, I may need a microphone. Additionally, it should have a speaker to talk with the people. Further, I will need a database to save all the information, APIs that can help me with the smart logic and cheap electronic components like a Raspberry Pi , resistors, leds, wires an

How to create a simple Chatbot?

Developing an amazing Chatbot ... What is a Chatbot? First to understand how it works, you need to know how it was originated and some algorithms  like  the Natural Language Processing (NLP). It is another AI area, but it is around the language (usually written), it is the component that bridges the gap between human conversation and understanding programmed by a computer. NLP allows the computer to interpret the vast and complicated human language, understand it, process it, and effectively "speak", just like humans. Through the process, the machine has to understand all the jargon that is being using and developing or adapting with the ability to respond, as a human computer. NLP has to do with the creation of systems that process or "understand" the language to perform certain tasks, such as answering questions, analyzing the sentiment in a sentence, making translations between different languages, and another. In the past, the NLP involved a lot