With over 6.3 billion global smartphone users, it’s critical mobile apps are inclusive of everyone, including those with vision impairment, hearing limitations, or other physical or cognitive conditions.
Many developers focus on app features, leaving accessibility as an afterthought. However, development teams shouldn't overlook accessibility or view it as a last-minute task carried out at the end of the release. Doing this is inefficient and costly for a company. To build an accessible app, you must weave in accessibility at the beginning of the app design and development.
Mobile app accessibility: what is it and why is it important?
Accessibility goes beyond making information available to users with disabilities. It is about making information available to everyone, regardless of their condition or situation.
What is mobile app accessibility?
Approximately 15% of the world's population has a disability that can affect how they interact with both the world and their devices. Mobile app accessibility involves designing and developing mobile apps for people to understand, interact, and navigate regardless of their disability, race, gender, or age.
The standard for ensuring your mobile app is accessible is based on the internationally recognized Web Content Accessibility Guidelines, version 2.0(WCAG), Level AA — the same standard for desktop websites. The World Wide Web Consortium (W3C) published these guidelines, and failure to follow these requirements poses significant legal risks for any company.
The guidelines are based on these four principles:
- Perceivable: User interface components and information must be presented in ways users can perceive them.
- Operable: Users must be able to operate the navigation and the user interface.
- Understandable: Users must understand how to operate the user interface and the information presented to them.
- Robust: The content must be robust enough to be reliably interpreted by assistive technologies and user agents.
Why mobile app accessibility is important
Nearly 80% of the world's population are smartphone users so you shouldn’t limit your app’s audience to those without disabilities or impairments. You’re only preventing more users from interacting with your app. With this in mind, mobile developers should view accessibility not just as a “nice-to-have” feature but as an essential part of development.
The three primary reasons why building an accessible app is essential are:
- Moral reasons: If you develop an app without accessibility features, you restrict the usage to only people without any form of disability. Accessibility is about designing and developing products to provide universal access to users. That means anyone who wants to use your app can do so, regardless of physical or cognitive ability. For example, providing captions on audio content for users with hearing impairments allows them to access that content.
- Legal reasons: Title III of the Americans with Disabilities Act (ADA) prohibits discrimination against any individual "on the basis of disability in the full and equal enjoyment of the goods, services, facilities, privileges, advantages, or accommodations of any place of public accommodation ..." In 2020, according to Seyfarth Shaw, there were 10,982 ADA Title III lawsuits filed. Companies like Rideshare LLC and Domino's Pizza have also faced accessibility lawsuits. It’s best to ensure your mobile app is accessible to avoid the risk of legal action.
- Business reasons: With over 1 billion people living with some form of disability, creating an app not usable by them is limiting. Building an accessible app increases your app reach, user experience and makes over $6 trillion good business sense.
Best practices for mobile app accessibility in iOS and Android
The mobile accessibility best practices discussed below are for both Apple iOS and Google Android operating systems. We've focused on the six most critical best practices mobile app developers should incorporate when building their apps:
- Color contrast must be a minimum of 4.5:1: WCAG recommends the contrast between the text and the background be at least 4.5:1. This means that text and elements should always be easy to read against their background color. With a color contrast of 4.5:1, users with visual impairments will be able to see the elements on your mobile app.
- The on-screen keyboard and hardware keyboard must be functional: Android and iOS support both on-screen and hardware keyboards that help users with assistive technology, such as magnifiers or screen readers, navigate the app.
- Give proper labels to UI elements: UI elements such as images, buttons, and other controls should be labeled appropriately to be recognizable by assistive technology, such as the iOS Voiceover or Android TalkBack.
- Touch Target must be at least 44 dp: Touch targets help users physically interact with the app by touching the screen. Some users struggle with this due to unsteady fingers or visual disabilities. Touch targets should be at least 44 dp x 44 dp to be large enough for app accessibility.
- Keep app gestures simple: Users navigate mobile apps using gestures on the touch screen. App developers should keep these gestures simple by requiring a single finger tap to perform an action. Complex gesture control (multiple fingers or taps) can be particularly challenging for users with motor or dexterity impairments.
- Provide audio descriptions for video content: Users with visual impairments will find it challenging to understand visual information without an audio format. It is best to provide audio descriptions for video content so the visually impaired can understand.
Mobile app accessibility testing
Mobile app accessibility testing involves assessing the content or features of a mobile app to determine the degree to which they are accessible to those with special needs. It usually requires evaluating design elements such as color schemes and font sizes and also the controls to discover whether interacting with the app is easy or difficult.
In turn, accessibility testing helps you improve the overall user experience. There are two main approaches to testing the accessibility of your app:
Manual testing
Manual testing refers to a test process where you manually interact with and navigate your mobile app to identify accessibility flaws. When you manually test your app, you experience your app the same way your users would, allowing you to recognize the places where you need to incorporate accessibility features.
Three different techniques for manually testing the accessibility of your app are:
- Mobile Screen Readers: Both Android and iOS have built-in screen readers—VoiceOver for iOS and TalkBack for Android. Enabling these screen readers on mobile devices will help expose accessibility issues for visually impaired users.
- Switch Access or Control: The switch access in Android or switch control in iOS lets users interact with their devices using a switch instead of the touch screen. Turning on this setting is especially useful to check the accessibility for users with motor impairments.
- Accessibility Scanner: The Accessibility Scanner app for Android scans your screen and gives suggestions on how to improve the accessibility of your app. These are some guidelines for getting started with Accessibility Scanner. A good alternative for scanning accessibility for iOS apps is an open-source project called GSCXScanner.
Automated testing
The problem with manual testing for accessibility in mobile apps is that it takes considerable effort and is time-consuming. Automated tests help tackle these hurdles. Although automated accessibility testing can help you discover many accessibility flaws throughout the development process, it can't guarantee your app is fully accessible. The best practice is to combine automated testing and manual testing.
With automated accessibility tests set up via your CI pipeline, you can automatically test the accessibility of your apps in development. Bitrise helps you automate accessibility tests for your mobile apps and generates accessibility test reports to help your developers find and fix accessibility issues.
How to add accessibility tests to your CI pipeline using Bitrise
Android supports different testing frameworks such as Espresso and Robolectric, which each allow you to create and run automated tests for your app’s accessibility.Â
More details can be found in the overview of accessibility testing with Espresso and Robolectric video from Google I/O 2016.
There are different Accessibility checks that can be automated, such as checking for accessibility labels on-screen elements.
With Espresso you can enable the AccessibilityChecks in your automated test class:
Then you can use the following example to suppress the results of checks that relate to a single TextView element's color contrast. The element's ID is countTV:
Some additional good practices can also be found in the Accessibility Test Framework for Android open source project.Â
With Bitrise, once you have the automated accessibility tests ready in your app, you can easily add those instrumentation UI tests to your CI pipeline in a few steps using Steps such as Virtual Device Testing for Android.
In iOS, Apple devices come standard with built-in accessibility features, there is a huge list of videos from the Apple WWDC events that discuss how you can design, develop and test your app for accessibility.
We can use Apple’s XCUI Test framework in iOS to write automated accessibility UI tests.Â
But first, to make your app accessible, you can check Apple's documentation about UIAccessibility and UIAccessibilityContainer.
Then you can start adding the accessibilityIdentifier to the app’s elements to be able to test them.Â
Also, Bitrise supports you to easily add those XCUITest UI accessibility tests to your CI pipeline in a few steps using the bitrise steps such as: Xcode Test for iOS.
Develop your mobile apps with accessibility in mind
Many companies don't want to deal with accessibility because they're worried it'll take a long time to incorporate and comes with a significant cost burden. However, accessibility shouldn't be seen as an add-on feature but as an essential part of your mobile app.
Accessibility is not only a “nice” thing to do — your app quality increases as you make it more accessible.
An excellent approach to accessibility is to build accessibility into your app workflow rather than address it at the end. When you build an accessible mobile app, you make your app inclusive of everyone, both with and without a disability. With a tool like Bitrise, you can automate accessibility checks for your mobile apps and confidently roll out apps that meet accessibility standards.