Accessibility Tools for Native Apps

I think everybody in the planet uses mobiles in this modern era and most of them use smart phones. In the earlier days, probably some years ago, we used to have basic phones through which we can make and receive calls and to the maximum, we can view SMS. With the evolution of smart phones, we can access the any information at our fingertips. The examples could be online shopping; booking flights, tickets, reading the materials, and so on… all these things are possible through apps on the phone. Imagine these apps are not accessible; people with disabilities are excluded in accessing the apps. As a whole, the phone is unusable for the people with disabilities. Making the apps accessible is very important in order to include people with disabilities. As soon as people hear app accessibility, they wonder how they can make the mobile apps accessible. Nothing to be panic. Like web accessibility, there are 2 methods to evaluate the accessibility on the native apps. One is manual and other one is automation. In this post, let us understand what automation tools are available for the native apps in the both iPhone and android platforms. Below are the tools that I have put together that I know but it does not mean that  it is end of the list and there might be many automation tools in the market. With that note, Let us begin

iPhone

WorldSpace Attest by Deque Systems

This tool is licensed.  Attest IOS is available as library for native IOS applications, while developing the applications users can integrate the Attest library into their code and analyze the developed code at node level and also for the complete screen that is displayed, users can run the tests on simulated device or a real one. This can be achieved in three simple steps once the code is ready and opened in any IDE, generally for IOS we prefer XCODE.

  • Copy the provided license shell script into Run script section of Build Phases ->New Run Phase Script
  • Build the app to download the Attest framework ,configure the libraries and link binaries with libraries for the downloaded framework
  • Call required methods from the downloaded libraries to analyze the developed app at node level or screen level.

The results are listed in the console as json, along with it we can install a desktop application or run a http server to view them in readable html format.

This can be used to perform accessibility testing when the app is being developed. A free version available in github. When we run the automation testing on the any app by using this tool then no false positives are listed and results are accurate. This tool runs with around 18 rulesets and it is pretty good. To know more about this tool, visit WorldSpace Attest for iOS by Deque systems

 

 

 

 

Accessibility inspector by Apple

This tool helps to evaluate the app on iPhone but it requires MAC machine. Below are the step by step instructions to perform the automation testing by using accessibility inspector.

 

 

  • Install the latest Xcode in the MAC
  • Connect the MAC and iOS device
  • Navigate
    • Xcode > Open Developer Tool > Accessibility Inspector in the menu bar or Dock
    • Target chooser > select iPhone
    • Click Run Audit

 

That is all you are done, you would get the automation issues like accessible name is not provided for the buttons, zooming is not enabled and so on.. I felt that this tool is helpful! To know more about the accessibility inspector, visit Accessibility inspector by apple

 

Color contrast app by User Light Ltd

It is free app by user light and step by step instructions are provided below to perform the color contrast by using this app.

 

 

  • Take the screenshot of the screen that you would like to perform color contrast testing
  • Browse this screenshot through the app
  • Use two color pickers to select two colors (background & foreground) And see results at bottom

 

What we usually do is that we take the screenshot of native app screen and send it to our desktops. From the desktop, we use typical Color contrast analyzer

to perform the color contrast testing. This app helps avoid all these steps and we can perform the color contrast test on your mobile itself. This tool is pretty good and it is really helpful. To know more about this app, please visit Color contrast app for iOS by User light

 

Android

WorldSpace Attest by Deque Systems

This tool is licensed. Attest Mobile operates via a secure application on the developer’s mobile device that interfaces with a corresponding desktop application to provide detailed accessibility issue reporting, including advanced issue descriptions and remediation guidance from Deque University. This is available in two flavors:

  • As a service for android and a desktop client
  • As a library that can be integrated with code to analyze the app while being developed

 

  1. Testers: Mobile app and site quality assurance testing professionals can use the attest android service and desktop client to analyze an installed app. The pre-requisites include android version of 4.2 or higher, a space of 8 MB on the mobile, talk- back service should be off the desktop and mobile should be on same network. The analysis against accessibility can be done in three simple steps:
    • Install the Attest android service on the mobile through provided link of App store and enable the service
    • Install the desktop client – available for IOS and Windows, launch it and connect to the device. The desktop client can scan for all the android devices on which Attest service is installed.
    • Open the app on the connected device and click on a button in the desktop client. This runs analysis against the visible screen of the opened app and violations are listed in the desktop client in readable format.
  2. Developers: Android application developers can access the attest libraries available and integrate into the developed code. Once access to the libraries are obtained, they need to reference the required classes and call methods to run analysis against accessibility. This can be done at node level or at the complete screen level. This involves the following three simple steps:
    • Configure build.gradle file for required Attest libraries
    • Build the project so that the dependencies are downloaded for the project
    • Write a test calling the methods in the Attest library to run accessibility audit

 

This tool can be used during development of the product and also after it is installed on the mobile. When we run the automation testing on the any app by using this tool then it does not throw any false positives and it is 100% accurate. This tool runs with around 18 rulesets and it is pretty good. To know more about this tool, visit WorldSpace Attest for Android by Deque Systems or watch WorldSpace Attest-android API integration demo(video)

 

 

Google accessibility scanner

It is free service by Google and the below are the step by step instructions to perform automation testing with the help of this tool.

 

  • Download and Install this app from the play store
  • Navigate to settings>accessibility>google accessibility scanner
  • Turn on the google accessibility scanner. Once it is turned on, accessibility scanner icon pops up on the every screen of your app
  • Navigate to the app screen that you would like to perform automation testing and Tap on the accessibility scanner icon
  • That is all it shows results

 

Unfortunately, Talkback users cannot tap on the accessibility scanner very efficiently as it requires explore by touch. Once the results are displayed, talkback users can navigate the results screen and understand the issues on the screen. What I observed is that this scanner runs with 5 to 6 rules and it displays the issues like touch target size, text contrast, multiple items have same description, and so on.. what I noticed is that this just throws the issues that are designed related issues. To know more about this tool, visit Accessibility scanner by Google

 

Lint in Android Studio

There is a Lint feature in the Android studio and it comes by default along with the android studio. Basically it is for developers and this tool helps to identify the accessibility issues during the development phase of the app itself. Please visit android accessibility tutorial

To know related information.

How to Filter Accessibility Issues

  • File > Other settings > default settings >
  • Editor > Inspections

How to Run Lint

  • Analyze > inspect code

This tool throws the issues like label missing for attribute, content description is missing and so on.. if you take care of the accessibility issues thrown by lint during the development itself then your app is good in terms of accessibility to some extent.