Automated accessibility testing of Android and iOS apps
It is essential that developers incorporate accessibility features into their apps in order to provide a great user experience for all users. You can run automated accessibility tests to check if your Android or iOS app meets the accessibility requirements. This process can be used to detect issues that prevent users from using your app such as poor contrast, missing labels, or missing name, role or values.
Automatically test the accessibility of an app
Automated accessibility tests can be used on both Android and iOS devices, and they can be performed in a variety of ways. Most commonly, automated accessibility tests are performed using a platform-specific tool, such as UI Automator on Android and XCTest on iOS. In addition, there are cross-platform tools such as Appium, and framework tools such as Widget Tests on Flutter and Component Tests on React Native.
When using these tools, you need to write your own accessibility tests. For example, you can write a test case where you check whether an accessibility label has been set for an image. Or you can check whether the accessibility role ‘button’ has been applied to all buttons in your app.
Fortunately, there are also tools that can execute automated accessibility tests for you.
Free tools for automated app accessibility testing
Name | Description | Platform |
---|---|---|
Accessibility Test Framework for Android | This library performs various accessibility-related checks on Android objects. | Android |
Accessibility Scanner | Accessibility Scanner is a tool that scans an app’s user interface to provide recommendations on how to improve accessibility of the app. | Android |
Accessibility Insights for Android (archived) | Accessibility Insights for Android is a free, open source tool that helps developers find and fix accessibility issues in Android apps. | Android |
Android Accessibility Inspector App | This is a desktop app that allows you to view the 'accessibility node tree' of Android devices. | Android |
Axe Android (archived) | Axe Android is a library with automated WCAG 2.0 and WCAG 2.1 tests for Android apps. | Android |
A11yUITests (archived) | A11yUITests is an extension to XCTestCase that adds tests for common accessibility issues that can be run as part of an XCUITest suite. | iOS |
AccessibilitySnapshot | AccessibilitySnapshot makes it simple to add regression tests for accessibility in iOS apps. The framework builds on the idea of snapshot testing to provide snapshots of the accessibility hierarchy. | iOS |
GSCX | GSCX, Google Scanner for Accessibility, is a developer assistant, it sits in an iOS app's process scanning it for accessibility issues to catch them before the developer even writes a test for them. | iOS |
GTXiLib | GTXiLib, Google Toolbox for Accessibility for the iOS platform, expands your XCTests with accessibility checks. | iOS |
SwiftLint | SwiftLint is a tool to enforce Swift style and conventions, it contains 1 rule for accessibility. | iOS |
Xcode Accessibility Inspector | The Accessibility Inspector enables you to identify parts of your app that are not accessible and it provides feedback on how you can make them accessible. | iOS |
XCUIAccessibilityAudit | The XCUIAccessibilityAudit API's enable you to perform an accessibility audit, it contains 9 types of tests. | iOS |
xiblint | The xiblint script will test .xib and .storyboard files for compliance, it contains 4 rules for accessibility. | iOS |
Paid tools for automated app accessibility testing
Name | Description | Platform |
---|---|---|
Abra Desktop Abra SDK | Abra automatically detects accessibility issues in Android and iOS apps using testing engines created by Apple, Google and Abra. | Android and iOS |
axe DevTools Mobile Analyzer axe DevTools Mobile SDK | axe DevTools Mobile provides tools for identifying accessibility issues in mobile apps. | Android and iOS |
BrowserStack Automated App Accessibility BrowserStack Manual App Accessibility Testing | BrowserStack provides tools to audit, automate, and monitor mobile app accessibility health using the Spectra™ Rule Engine. | Android and iOS |
Evinced Mobile Flow Analyzer Evinced Mobile Automation SDK | Evinced automatically analyzes the accessibility of one or more screens of your app. | Android and iOS |
Reveal Accessibility Workspace | Reveal's Accessibility Workspace gives you tools to inspect if your app is accessible. | iOS |
Conclusion
In conclusion, automated accessibility testing tools are essential for developers to ensure that their apps are accessible to all users. There are a variety of tools available for Android and iOS, both free and paid. Developers should choose the tool that best suits their needs and budget.
If you know of tools to automatically test mobile accessibility which are not listed, please create a Pull Request or Issue.