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.