All Projects → quittle → a11y-ally

quittle / a11y-ally

Licence: Apache-2.0 license
A collection of tools to aid developers observe, verify, and test the accessibility of Android applications.

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to a11y-ally

accessibility-testing-tools
A collection of useful tools for accessibility testing and debugging in the browser, online and desktop
Stars: ✭ 18 (-21.74%)
Mutual labels:  accessibility, a11y-testing
buttonbuddy
Learn about accessible button contrast then generate your own accessible button color palette
Stars: ✭ 60 (+160.87%)
Mutual labels:  accessibility, a11y-testing
Tanaguru
Automated accessibility (a11y) testing tool, with emphasis on reliablity and automation
Stars: ✭ 116 (+404.35%)
Mutual labels:  accessibility, a11y-testing
accessibility-ruleset-runner
eBay Accessibility Ruleset Runner automates 20% of WCAG 2.0 AA recommendations, saving time on manual testing.
Stars: ✭ 24 (+4.35%)
Mutual labels:  accessibility, a11y-testing
accessibility-resources
A curated list of accessibility resources
Stars: ✭ 66 (+186.96%)
Mutual labels:  accessibility, a11y-testing
agnostic-axe
Framework agnostic accessibility reporter, powered by axe-core
Stars: ✭ 80 (+247.83%)
Mutual labels:  accessibility, a11y-testing
accessibility-resources
Screen reader and WCAG testing resources to maintain a consistent approach to testing and documenting behaviour.
Stars: ✭ 25 (+8.7%)
Mutual labels:  accessibility, a11y-testing
snippet-timekeeper
An android library to measure code execution time. No need to remove the measurement code, automatically becomes no-op in the release variants. Does not compromise with the code readability and comes with features that enhance the developer experience.
Stars: ✭ 70 (+204.35%)
Mutual labels:  android-development
dasher-web
Dasher text entry in HTML, CSS, JavaScript, and SVG
Stars: ✭ 34 (+47.83%)
Mutual labels:  accessibility
Kata-Dagger2-Android
Kata to practice Dependency injection using Dagger 2.
Stars: ✭ 21 (-8.7%)
Mutual labels:  android-development
color-links
🔗 Help Individuals With Color Blindness See Visited Links
Stars: ✭ 14 (-39.13%)
Mutual labels:  accessibility
bones
Accessible HTML code patterns for common UI widgets such as tabs, menus, dialogs, etc.
Stars: ✭ 79 (+243.48%)
Mutual labels:  accessibility
QuadTreeAndroid
Library that helps to implement the QuadTree in android, by using splitting images
Stars: ✭ 30 (+30.43%)
Mutual labels:  android-development
thankyounext
Next.js starter template featuring Preact, TypeScript, Tailwind CSS and much more
Stars: ✭ 18 (-21.74%)
Mutual labels:  accessibility
SAPC-APCA
APCA (Accessible Perceptual Contrast Algorithm) is a new method for predicting contrast for use in emerging web standards (WCAG 3) for determining readability contrast. APCA is derived form the SAPC (S-LUV Advanced Predictive Color) which is an accessibility-oriented color appearance model designed for self-illuminated displays.
Stars: ✭ 266 (+1056.52%)
Mutual labels:  accessibility
a11y-contracting
Building Accessibility Best Practices into Contracting
Stars: ✭ 43 (+86.96%)
Mutual labels:  accessibility
android-localization-helper
A python script that helps you create strings.xml for all languages in different hierarchical folder(using Google Translation API)
Stars: ✭ 19 (-17.39%)
Mutual labels:  android-development
android-pokemon-compose
A simple app demonstrates using Jetpack compose with other Jetpack libraries.
Stars: ✭ 56 (+143.48%)
Mutual labels:  android-development
MyNotes
📒Note taking app, MVVM with Google Architectural components Room, LiveData and ViewModel written in Kotlin, androidx libraries
Stars: ✭ 60 (+160.87%)
Mutual labels:  android-development
swift-android-kotlin
Kotlin/Swift integration example
Stars: ✭ 69 (+200%)
Mutual labels:  android-development

A11y Ally Get it on Google Play Build Status

A11y Ally Logo

A11y Ally (as in Accessibility Ally) tool is aimed at developers, designers, and testers to analyze and inspect Android applications' accessibility to all users. Providing an AR-style overlay, it runs alongside your app and highlights issues it discovers and provides insight into what assistive technology users experience when using your app. In addition to providing exploratory feedback for a user manually interacting with their app, A11y Ally can generate reports of accessibility issues it finds, making it possible to integrate into automated testing.

Learn how to get started now!

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.

Features

Filtering

  • Select which apps to provide checks for
  • Select what visual indicators to apply

Visual Feedback

  • 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

Reports

  • Logging issues to logcat
  • Logging issues to a file for analysis
  • Toggling of logging via Android Intents

Coming One Day

  • Investigate checking color-issues
    • Color-blind friendliness
    • High text to background contrast
  • See issues for more and request what you'd like to see!

Usage

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 logcatand 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 session
  • com.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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].