Skip to main content

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

NameDescriptionPlatform
Accessibility Test Framework for AndroidThis library performs various accessibility-related checks on Android objects.Android
Accessibility ScannerAccessibility 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 AppThis 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
AccessibilitySnapshotAccessibilitySnapshot 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
GSCXGSCX, 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
GTXiLibGTXiLib, Google Toolbox for Accessibility for the iOS platform, expands your XCTests with accessibility checks.iOS
SwiftLintSwiftLint is a tool to enforce Swift style and conventions, it contains 1 rule for accessibility.iOS
Xcode Accessibility InspectorThe 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
XCUIAccessibilityAuditThe XCUIAccessibilityAudit API's enable you to perform an accessibility audit, it contains 9 types of tests.iOS
xiblintThe xiblint script will test .xib and .storyboard files for compliance, it contains 4 rules for accessibility.iOS
NameDescriptionPlatform
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 WorkspaceReveal'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.

Learning resources