Android Accessibility at Google IO

A summary of Android accessibility services covered during talks at Google IO 2015

Phil Weaver, Eve Andersson, Casey Burkhardt, Hugh Oh, and Mark Riccobono presented at Google IO on Android accessibility and how we can remove and replace assumptions about users and how they interact with Android apps.

I will briefly cover three means of achieving this and the assumptions that come along with each technology.

TalkBack: this is a screen reader that adds spoken, audible, and vibration feedback to your device. It helps blind and vision-impaired users interact with their devices. It makes the assumption that users can hear but not see.

Enable TalkBack

BrailleBack: BrailleBack allows users to connect a refreshable braille device via Bluetooth. Users can navigate using their display and input text using the braille keyboard. This tool assumes that users can’t hear or see.

Enable BrailleBack

Switch Access: this enables users to interact with a device using one or more buttons/switches that work like keyboard keys. This removes that assumption that a user can touch and interact with a screen with their hands.

Enable Switch Access

Developers have the important task of making sure application code can properly interact with these devices. Phil Weaver noted that the World Health Organization estimates 15% of people have some disability (1 billion people).

Catching accessibility bugs as early as possible using automated testing(Android Lint, etc.) and manually testing are essential to making sure our Android applications can be using by everyone.

The basic solutions making your apps accessible on Android are the following:

1. Adding descriptions to all image that convey meaning

contentDescription="@string/desc"

2. Give users immediate feedback on view updates.

android:accessibilityLiveRegion="polite"

3. Remove redundant text

android:contentDescription="7 Button" // incorrect as screen reader reads "7 Button Button"
android:contentDescription="7" // correct as screen reader reads "7 Button"

4. Remove extraneous clickable views on the screen

android:clickable="true" // Region 1
android:clickable="true" // Region 2
android:clickable="true" // Region 3

When using a tool such as Switch Access, users will have to scan through all regions that are clickable, so having extraneous clickable regions hinders the overall user experience.

In comes Accessibility Checker For Android!

Accessibility Checker is a new Google Research project and it looks specifically for accessibility defects. It will help us automatically find issues like: missing speakable descriptions and incorrectly labeled views. This is available today in both the Espresso(2.2+) and Robolectric testing frameworks.

Setting up Espresso


/**
* Enable Accessibility Checker in Espresso 2.2+
*/
@Test
public void setUp() {
AccessibilityChecks.enable(); // one extra line of code to enable accessibility checks
}

Getting Started with Robolectric


/**
* Enable Accessibility Checker in Robolectric
*/
@Test
@AccessibilityChecks // One line Java annotation to enable accessibility checks
public void testOneButton_shouldAddOne() {
...
}

Resources

For further reading and a more in-depth look at accessible application development in Android please visit Developing Accessible Applications

Comments are closed