測試無障礙功能,可讓您從整個使用者族群 (包括具有無障礙需求的使用者) 的角度體驗應用程式。這種測試形式可以發掘改善應用程式功能的機會,提供更豐富多元的應用程式。
本頁說明如何在現有的 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 僅在滿足下列「各項無障礙功能檢查」時,才會隱藏特定結果:
- 特定類型的無障礙功能檢查,例如檢查觸控目標大小。
- 用於評估特定 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))));