無障礙程度檢查

測試無障礙功能,可讓您從整個使用者族群 (包括具有無障礙需求的使用者) 的角度體驗應用程式。這種測試形式可以發掘改善應用程式功能的機會,提供更豐富多元的應用程式。

本頁說明如何在現有的 Espresso 測試中加入無障礙功能檢查。如要進一步瞭解無障礙工具,請參閱無障礙指南

啟用檢查功能

您可以使用 AccessibilityChecks 類別啟用及設定無障礙程度測試作業:

Kotlin

import androidx.test.espresso.accessibility.AccessibilityChecks

@RunWith(AndroidJUnit4::class)
@LargeTest
class MyWelcomeWorkflowIntegrationTest {
    init {
        AccessibilityChecks.enable()
    }
}

Java

import androidx.test.espresso.accessibility.AccessibilityChecks;

@RunWith(AndroidJUnit4.class)
@LargeTest
public class MyWelcomeWorkflowIntegrationTest {
    @BeforeClass
    public void enableAccessibilityChecks() {
        AccessibilityChecks.enable();
    }
}

根據預設,當您執行 ViewActions 中定義的任何查看動作時,會執行檢查。每個檢查都包含在其上執行動作的檢視區塊,以及所有子系檢視區塊。在每項檢查期間,您可以將 true 傳遞至 setRunChecksFromRootView(),以評估螢幕的整個檢視區塊階層,如下方程式碼片段所示:

Kotlin

AccessibilityChecks.enable().setRunChecksFromRootView(true)

Java

AccessibilityChecks.enable().setRunChecksFromRootView(true);

略過部分結果

Espresso 對應用程式執行無障礙功能檢查後,應用程式無障礙功能的一些改進機會可能無法立即解決。為避免 Espresso 測試因這些結果而持續失敗,您可以暫時予以忽略。無障礙功能測試架構 (ATF) 使用 setSuppressingResultMatcher() 方法提供此功能,指示 Espresso 略過所有符合指定比對器運算式的結果。

如果您對應用程式的變更可解決一個方面的無障礙問題,Espresso 會盡可能顯示更多其他方面的無障礙設計結果。因此,建議僅略過特定的已知改進機會。

當您暫時略過計劃稍後處理的無障礙功能測試發現結果時,請務必小心操作,不要意外略過相似的發現結果。出於此原因,建議使用限定範圍的比對器。為此,請選擇一個比對器,讓 Espresso 僅在滿足下列「各項無障礙功能檢查」時,才會隱藏特定結果:

  1. 特定類型的無障礙功能檢查,例如檢查觸控目標大小。
  2. 用於評估特定 UI 元素 (例如按鈕) 的無障礙功能檢查。

ATF 定義多個比對器,可協助您定義在 Espresso 測試中顯示的結果。下列範例會略過與單一 TextView 元素色彩對比相關的檢查結果。這個元素的 ID 是 countTV

Kotlin

AccessibilityChecks.enable().apply {
        setSuppressingResultMatcher(
                allOf(
                    matchesCheck(TextContrastCheck::class.java),
                    matchesViews(withId(R.id.countTV))
                )
        )
}

Java

AccessibilityValidator myChecksValidator =
    AccessibilityChecks.enable()
        .setSuppressingResultMatcher(
            allOf(
                matchesCheck(TextContrastCheck.class),
                matchesViews(withId(R.id.countTV))));