@BeforeClass
public static void enableAccessibilityChecks() {
AccessibilityChecks.enable();
}
You are supposed to enable this in Espresso 3 by adding the following dependencies to your build.gradle file:
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-accessibility:3.0.1'
Unfortunately, I have not been able to make it work due to an error in the Espresso library.
Espresso 3.0.1 Broken
The setup described in the Android Documentation results in a run-time error if you include the espresso-accessibility library referenced in the documentation:
Error:Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files define Landroid/support/test/espresso/accessibility/R$attr;
This issue was reported on Stack Overflow, but the one answer did not work for me. In the Google Issue tracker a response implies the problem is fixed in v3.0.2. I was unable to get my hands on that version to test it out.
In order to solve the problem, I had to roll back the Espresso libraries to version 3.0.0 in build.gradle:
Espresso 3.0.0 Broken
Turns out this version of Espresso is also broken, but in a different way. It’s missing a transitive dependency on Guava. To get Espresso 3.0.0 to work, you need to add the missing dependency on Guava into your build.gradle:
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.0'
androidTestImplementation 'com.android.support.test:runner:1.0.0'
androidTestImplementation 'com.android.support.test.espresso:espresso-accessibility:3.0.0'
androidTestImplementation 'com.google.guava:guava:20.0'
I published a simple example project demonstrating an Espresso UI test that includes Accessibility checks on Github. The project’s one UI test actually fails, so you can see what the output looks like when an accessibility check fails. There is a comment in activity_main.xml where the accessibility problem lies. The “broken” branch has the project set up for Espresso 3.0.1 so you can see that error. Hopefully Google pushes 3.0.2 soon.