Accessibility Testing for Android
Accessibility has become a trending topic in app development for many apps recently. Let’s look at the some key topics which are useful in planning & implementing accessibility testing for applications.
Accessibility testing identifies usability issues and reveals enhancement opportunities to make the apps more usable and versatile.
Evaluation criteria & principles:
Below are the key evaluation criteria factors for planning accessibility testing use cases,
Content visibility
Size
Speech to text
Contrast ratio
Following the evaluation criteria, we have to keep in mind the four main principles designed by World Wide Consortium (W3C) that define accessibility standards, as outlined below, during the development of accessibility features and related use cases:
- Perceivable: Information and user interface components must be presentable to users in ways they can perceive. This means that users must be able to perceive the information being presented (it can’t be invisible to all of their senses)
- Operable: User interface components and navigation must be operable. This means that users must be able to operate the interface (the interface cannot require interaction that a user cannot perform)
- Understandable: Information and the operation of user interface must be understandable. This means that users must be able to understand the information as well as the operation of the user interface (the content or operation cannot be beyond their understanding)
- Robust: Content must be robust enough that it can be interpreted reliably by a wide variety of user agents, including assistive technologies. This means that users must be able to access the content as technologies advance (as technologies and user agents evolve, the content should remain accessible)
Accessibility features:
We will use the below accessibility features available on Android 11 OS in this blog post for illustration,
How to enable ?
Example: Things to consider for designing Talkback use cases
After TalkBack is ON, there are two common ways to navigate:
- Linear navigation: Swipe right or left to navigate through screen elements in sequence. Double-tap anywhere to select.
- Explore by touch: Drag over the screen to hear what’s selected and double-tap to select
To explore the app with TalkBack, follow the step below:
- Open the app
- Swipe through each element in sequence
- As you navigate, check for the following:
- Does the spoken feedback for each element convey its content or purpose accurately ?
- Are you able to complete the main workflows easily?
- Are you able to reach every element by swiping?
- If alerts or other temporary messages appear, are they clearly audible?
How to audit for accessibility ?
There are multiple tools to verify and audit accessibility of the web/mobile applications. Google Lighthouse is one of the widely used tool in the market for accessibility audit.
Google Lighthouse can be run in Chrome DevTools, from the command line, or as a Node module. Lighthouse runs a series of audits against the page, and then it generates a report on failing audits as indicators on how to improve the page. Each audit has a reference doc explaining why the audit is important, as well as how to fix it.
Outlining the steps to audit accessibility of a web application for reference:
- Launch the website
- Right click on the web page and select ‘Inspect’
- Select ‘Lighthouse’ tab from the DevTools
4. Select ‘Accessibility’ category from the options (and others as needed)
5. Select the device type for audit (Mobile/Desktop)
6. Click on ‘Generate Report’ (Web page audit will be initiated for the website selected and Lighthouse will audit through the categories selected in Step-4)
Once the report is generated, scores for different categories selected are displayed and upon clicking on the category, audit factors and improvement suggestions are provided.
From my experience, I have seen apps/web pages enhance their usability and become more versatile by adopting accessibility testing and improvements it suggests. Along with Lighthouse audit findings, there are also some benchmark metrics for measuring accessibility, as outlined below:
- Validity: This attribute is related to the extent to which the measurements obtained by a metric reflect the accessibility of the website to which it is applied
- Reliability: This attribute is related to the reproducibility and consistency of scores i.e. the extent to which they are the same when evaluations of the same resources are carried out in different contexts (different tools, different people, different goals, different time)
- Sensitivity: Sensitivity of a metric is related to the extent that changes in the output of the metric are quantitatively related to changes of the accessibility of the site being analysed
- Adequacy: This is a general quality, encompassing several properties of accessibility metrics: the type of data used to represent scores, the precision in terms of the resolution of the scale, normalization, the span covered by actual values of the metric (distribution)
Reference:
- https://developer.android.com/guide/topics/ui/accessibility/testing
- https://developers.google.com/web/tools/lighthouse
- https://www.w3.org/WAI/WCAG21/Understanding/intro#understanding-the-four-principles-of-accessibility
- https://www.w3.org/WAI/RD/wiki/Benchmarking_Web_Accessibility_Metrics#The_benefits_of_using_metrics
To conclude, in this blog post we glanced over a few different evaluation & principles to consider when developing accessibility testing use cases followed by accessibility features and a few sample use cases as a reference. Additionally, the benchmark metrics measurement is an efficient method to evaluate accessibility for the application and plan enhancements for make the application more versatile.
I hope you enjoyed reading this article and you know the drill — clap, comment and share.
Cheers, Karthik