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.