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:
Kotlin
import androidx.test.espresso.contrib.AccessibilityChecks
@RunWith(AndroidJUnit4::class)
@LargeTest
class AccessibilityChecksIntegrationTest {
companion object {
@BeforeClass @JvmStatic
fun enableAccessibilityChecks() {
AccessibilityChecks.enable()
}
}
}
Java
import androidx.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:
Kotlin
AccessibilityChecks.enable()
.setRunChecksFromRootView(true)
Java
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:
Kotlin
AccessibilityChecks.enable()
.setSuppressingResultMatcher(matchingViews(withId(R.id.example_view)))
Java
AccessibilityChecks.enable()
.setSuppressingResultMatcher(matchingViews(withId(R.id.example_view)));
For more advanced configuration of accessibility checking, see the eyes-free repository on GitHub.

