无障碍功能检查

通过 AccessibilityCheck 类,您可以使用现有测试代码来测试无障碍功能问题。当您在测试期间与 View 交互时,无障碍功能测试框架会自动运行检查,然后再继续操作。只需导入该类并将以下代码添加到带有 @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();
        }
    }
    

这将导致每当您使用 ViewActions 类中的 ViewAction 时都会在给定的视图上运行无障碍功能检查。要在层次结构中的所有视图上运行这些检查,请使用以下逻辑:

Kotlin

    AccessibilityChecks.enable()
            .setRunChecksFromRootView(true)
    

Java

    AccessibilityChecks.enable()
            .setRunChecksFromRootView(true);
    

首次启用检查时,您可能会遇到许多无法立即处理的问题。您可以通过为希望抑制的结果设置匹配器来抑制这些错误。AccessibilityCheckResult 的匹配器显示在无障碍功能测试框架内的 AccessibilityCheckResultUtils 中。例如,要抑制 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)));
    

如需了解无障碍功能检查的更高级配置,请参阅 GitHub 上的免视操作代码库