lightbulb_outline Help shape the future of the Google Play Console, Android Studio, and Firebase. Start survey

Accessibility checking

The AccessibilityCheck class allows you to use your existing test code to test for accessibility issues. As you interact with a View during a test, the accessibility test framework runs checks automatically before proceeding. Just import the class and add the following code to your setup methods annotated with @Before:

import android.support.test.espresso.contrib.AccessibilityChecks;

@RunWith(AndroidJUnit4.class)
@LargeTest
public class AccessibilityChecksIntegrationTest {
    @BeforeClass
    public static void enableAccessibilityChecks() {
        AccessibilityChecks.enable();
    }
}

This will cause accessibility checks to run on a given view every time you use a ViewAction from the ViewActions class. To instead run these checks on all views in the hierarchy, use the following logic:

AccessibilityChecks.enable()
        .setRunChecksFromRootView(true);

When first enabling checks, you may encounter a number of issues you may not be able to deal with immediately. You can suppress these errors by setting a matcher for the results that you would like to suppress. Matchers for AccessibilityCheckResult appear in AccessibilityCheckResultUtils within the accessibility test framework. For example, to suppress all errors for a view with the ID R.id.example_view:

AccessibilityChecks.enable()
        .setSuppressingResultMatcher(matchingViews(withId(R.id.example_view)));

For more advanced configuration of accessibility checking, see the eyes-free repository on GitHub.