Main Screen | Highlighting Example |
---|---|
It currently only supports a small subset of intended functionality. Check the feature list below or in the app to see what features are currently supported. If there's something missing you would like, feel free to file an issue and I'll work on adding it.
- Select which apps to provide checks for
- Select what visual indicators to apply
- Issue Highlighting - Highlights views in your app that have accessibility issues
- Missing content descriptions
- Clickable views with no text or content description, making them opaque buttons to screen readers
- Clickable elements too small for all users to click.
- Content Description Labels - Overlay views with their
contentDescription
- Linear Navigation - Covers the screen with a depiction of what users relying on Linear Navigation experience
- Logging issues to
logcat
- Logging issues to a file for analysis
- Toggling of logging via Android Intents
- Investigate checking color-issues
- Color-blind friendliness
- High text to background contrast
- See issues for more and request what you'd like to see!
To get started, open the app and press the yellow, exclamation point button, following the prompts to grant the app its required permissions. Once set up, ensure the check mark at the top is green and turned on. Use the toggles to enable different feature sets and click on the buttons to their left to change their settings. Once set up, you can preview the overlay experience by tapping the Preview Accessibility Overlay button at the bottom.
To enable logging to logcat
and a file, you can send intents to the
com.quittle.a11yally.RecordingService
. To do so, you must have the custom permission
com.quittle.a11yally.MANAGE_RECORDING
. This is to prevent malicious apps from making recordings and
attempting to find sensitive data revealed to A11y Ally. The intents currently supported are
com.quittle.a11yally.START_RECORDING
- Starts a recording sessioncom.quittle.a11yally.STOP_RECORDING
- Stops a recording session
To toggle via ADB, you can use the following commands
$ adb shell run-as com.quittle.a11yally am startservice \
-n "com.quittle.a11yally/.RecordingService" \
-a "com.quittle.a11yally.START_RECORDING" \
--user 0
$ adb shell run-as com.quittle.a11yally am startservice \
-n "com.quittle.a11yally/.RecordingService" \
-a "com.quittle.a11yally.STOP_RECORDING" \
--user 0
Once recording is stopped, the app will print out the location of the recording file that you can retrieve. To read it, you will need to again run as the app's user. Below shows one way you could read the file. Note that the exact location may vary between devices.
$ adb shell run-as com.quittle.a11yally cat \
/data/user/0/com.quittle.a11yally/files/recordings/recording.json
In order to simplify the permission's configuration necessary for a user to toggle from the
commandline, A11y Ally grants itself permission to perform these actions. You can then run as the
app's user (com.quittle.a11yally
and --user 0
) to start the service.