為了獲得最佳效果,請使用本文檔中介紹的所有方法:
手動測試:使用 Android 無障礙服務與您的應用互動。 使用分析工具進行測試: 使用各種工具發現改進應用無障礙功能的機會。 自動化測試: 在 Espresso 和 Robolectric 中開啟無障礙功能測試。 用戶測試: 從與您的應用互動的真實用戶那里獲得反饋。
手動測試
AccessibilityService
https://developer.android.google.cn/reference/android/accessibilityservice/AccessibilityService
開啟 TalkBack
打開設備的 "設置" 應用。 轉到無障礙,然后選擇 TalkBack。 在 TalkBack 屏幕的頂部,按開啟/關閉即可開啟 TalkBack。 在確認對話框中,選擇確定以確認權限。
使用 TalkBack 瀏覽應用
開啟 TalkBack 后,您可以通過以下兩種常見方式導航:
線性導航: 快速向左或向右滑動即可按順序瀏覽屏幕元素。點按任意位置兩次即可選擇。 觸摸瀏覽: 在屏幕上拖動手指即可讓系統讀出手指輕觸的內容。點按任意位置兩次即可選擇。
打開您的應用。 按順序滑動瀏覽各個元素。 在瀏覽過程中,注意下面幾個問題: 每個元素的語音反饋是否恰當地傳達了其內容或用途?(了解如何編寫有意義的標簽。) 朗讀內容是簡潔明了,還是過于冗長? 您能否輕松完成主要工作流程? 您能否通過滑動瀏覽每個元素? 如果出現提醒或其他臨時消息,TalkBack 能否朗讀出來?
編寫有意義的標簽
https://material.io/guidelines/usability/accessibility.html#accessibility-writing
TalkBack 用戶文檔
https://support.google.com/accessibility/android/answer/6006589
TalkBack 開發者設置可讓您輕松使用 TalkBack 測試應用。
打開設備的 "設置" 應用。
轉到無障礙,然后選擇 TalkBack。
依次選擇設置 > 高級設置 > 開發者設置: 日志輸出級別: 選擇詳細。
顯示語音輸出: 開啟此設置即可在屏幕上查看 TalkBack 語音輸出。
"開關控制" 可讓用戶使用開關 (而不是觸摸屏) 與 Android 設備互動。開關分為以下幾種: AbleNet、Enabling Devices、RJ Cooper 或 Tecla* 等出售的輔助技術設備;外部鍵盤按鍵;或者按鈕。對于有運動障礙的用戶,此服務非常有用。
配置 "開關控制" 的一種簡單方式是使用兩個開關。一個開關被指定為 "下一項" 開關,用于在屏幕上移動焦點;第二個是 "選擇" 開關,用于選擇焦點所在的元素。如需使用這種雙開關方法,您可以使用任意一對硬件按鍵。
如果您使用外部開關 (如鍵盤),還需要執行其他設置步驟。例如,您需要重新啟用軟鍵盤。如需了解詳情,請參閱開關控制用戶文檔:
https://support.google.com/accessibility/android/answer/6301497 如果您使用的是 TalkBack 5.1 或更高版本,則可以使用設置向導配置 "開關控制"。如需使用此向導 (而不是執行以下步驟),請依次轉到設置 > 無障礙 > 開關控制 > 設置 > 打開 "開關控制" 設置。
確保 TalkBack 已關閉。
打開設備的 "設置" 應用。 轉到無障礙并選擇開關控制,然后選擇設置。 在 "開關控制偏好設置" 屏幕中,確保自動掃描功能已關閉。 將音量調低鍵用作 "下一項" 開關:
依次輕觸指定掃描按鍵 > 下一項。 對話框打開后,按音量調低鍵。此時,對話框會顯示 KEYCODE_VOLUME_DOWN。 輕觸確定,確認并退出該對話框。 將音量調高鍵用作 "選擇" 開關:
輕觸 "選擇"。 對話框打開后,按音量調高鍵。此時,對話框會顯示 KEYCODE_VOLUME_UP。 輕觸確定,確認并退出該對話框。 如需返回 "開關控制偏好設置",請按返回按鈕。 可選: 如果您使用的是 TalkBack 5.1 或更高版本,則可以選擇語音反饋來開啟語音反饋。 如需返回 "開關控制" 主屏幕,請按返回按鈕。 在 "開關控制" 屏幕的頂部,按開啟/關閉即可開啟 "開關控制"。 在確認對話框中,選擇確定以確認權限。
通過 "開關控制" 瀏覽應用
如需通過 "開關控制" 瀏覽您的應用,請完成以下步驟:
打開您的應用。 如需開始掃描,請按 "下一項" 開關 (音量調低按鈕)。 繼續按 "下一項" 開關,直到找到您想要選擇的項。 如需選擇突出顯示的項,請按 "選擇" 開關 (音量調高按鈕)。 在瀏覽過程中,注意下面幾個問題:
您能否輕松完成主要工作流程? 如果存在文本或其他輸入內容,您能否輕松添加和修改內容? 這些項只有在您可以對它們執行操作時才會突出顯示嗎? 每項是否只能突出顯示一次? 可通過觸摸屏手勢使用的所有功能是否也可作為 "開關控制" 中的可選控件或自定義操作使用? 如果您使用的是 TalkBack 5.1 或更高版本,并且已開啟語音反饋,那么每個元素的語音反饋是否恰當地傳達了其內容或用途?了解如何編寫有意義的標簽: https://material.io/guidelines/usability/accessibility.html#accessibility-writing
可選: 通過組選擇來查看所有可掃描項
如需開啟組選擇,請完成以下步驟:
打開設備的 "設置" 應用。 轉到無障礙并選擇開關控制,然后選擇設置。 在 "開關控制偏好設置" 屏幕中,確保自動掃描功能已關閉。 依次選擇掃描方法 > 組選擇。 輕觸指定用來控制掃描的開關。 確保組選擇開關 1 和組選擇開關 2 下的文本表明已經為這兩者各指定了一個開關。如果您已經按照相應的步驟開啟 "開關控制",則應該已指定音量按鈕。 https://developer.android.google.cn/guide/topics/ui/accessibility/testing#turn-on-switch-access
如需通過組選擇使用 "開關控制" 來瀏覽您的應用,請完成以下步驟:
按 "選擇" 鍵 (音量調高按鈕) 以突出顯示當前屏幕上的所有可操作項。注意下面幾個問題: 是否僅突出顯示了可操作項?
是否突出顯示所有可操作項? 突出顯示的項的密度是否合理? 轉到其他屏幕以清除突出顯示效果。
盲文提示
https://support.google.com/accessibility/android/answer/3535226
打開設備的 "設置" 應用。
轉到無障礙,然后選擇盲文提示。 依次選擇設置 > 開發者選項 > 在屏幕上顯示盲文輸出。
Voice Access
Voice Access
https://play.google.com/store/apps/details?id=com.google.android.apps.accessibility.voiceaccess
開始使用 Voice Access
https://support.google.com/accessibility/android/answer/6151848
分析工具
使用分析工具進行測試可以發現手動測試可能會錯失的無障礙功能改進機會。
無障礙功能掃描儀
https://play.google.com/store/apps/details?id=com.google.android.apps.accessibility.auditor
無障礙功能測試框架
https://github.com/google/Accessibility-Test-Framework-for-Android
了解詳情:
開始使用無障礙功能掃描儀 https://support.google.com/accessibility/android/answer/6376570 如何解讀無障礙功能掃描儀的掃描結果 https://support.google.com/accessibility/android/answer/6376559
發布前測試報告
https://support.google.com/googleplay/android-developer/answer/7002270
將應用上傳
https://support.google.com/googleplay/android-developer/answer/113469
無障礙功能測試框架
https://github.com/google/Accessibility-Test-Framework-for-Android
觸摸目標大小
https://developer.android.google.cn/guide/topics/ui/accessibility/apps#touch-targets
低對比度
內容標簽
實現
可修改的 View 標簽
https://support.google.com/accessibility/android/answer/6378120
遍歷順序
https://support.google.com/accessibility/android/answer/7664232
uiautomatorviewer 工具提供了一個方便的 GUI,可掃描和分析 Android 設備上當前顯示的界面組件。您可以使用 UI Automator 檢查布局層次結構,并查看在設備前臺顯示的界面組件的屬性。利用此信息,您可以創建更精細的測試。例如,通過創建與特定可見屬性匹配的界面選擇器來做到這一點。該工具位于 Android SDK 的 tools 目錄中。
在無障礙功能測試中,此工具對于調試使用其他測試方法發現的問題很有用。例如,如果手動測試發現某個視圖應包含卻未包含可朗讀的文本,或者某個視圖不應獲得卻獲得了焦點,您可以使用該工具幫助找出錯誤的來源。
如需詳細了解 UI Automator 查看器,請參閱測試多個應用的界面:
Android Studio 會顯示有關各種無障礙功能問題的 lint 警告,并提供指向源代碼中包含這些問題的位置的鏈接。在以下示例中,一張圖片缺少 contentDescription 屬性。缺少內容說明會導致生成以下消息:
['contentDescription' attribute on image ] Missing
下圖舉例說明了此消息在 Android Studio 中是什么樣子的:
△Android Studio 中顯示缺少 contentDescription 屬性的消息
如果屏幕閱讀器等無障礙服務的用戶在應用內遇到這張圖片,他們將無法理解該圖片的含義。
自動測試
Espresso
https://developer.android.google.cn/guide/topics/ui/accessibility/testing#espresso
Robolectric
https://developer.android.google.cn/guide/topics/ui/accessibility/testing#robolectric
https://developer.android.google.cn/training/testing/espresso
啟用檢查
import androidx.test.espresso.accessibility.AccessibilityChecks
@RunWith(AndroidJUnit4::class)
@LargeTest
class MyWelcomeWorkflowIntegrationTest {
init {
AccessibilityChecks.enable()
}
}
AccessibilityChecks.enable().setRunChecksFromRootView(true)
ViewActions
https://developer.android.google.cn/reference/androidx/test/espresso/action/ViewActions
setRunChecksFromRootView()
https://github.com/google/Accessibility-Test-Framework-for-Android/blob/a6117fe0059c82dd764fa628d3817d724570f69e/src/main/java/com/google/android/apps/common/testing/accessibility/framework/integrations/espresso/AccessibilityValidator.java#L82
抑制結果的子集
setSuppressingResultMatcher()
https://github.com/google/Accessibility-Test-Framework-for-Android/blob/a6117fe0059c82dd764fa628d3817d724570f69e/src/main/java/com/google/android/apps/common/testing/accessibility/framework/integrations/espresso/AccessibilityValidator.java#L95
如果您對應用所做的更改可以改進無障礙功能的一個方面,讓 Espresso 盡可能多地顯示無障礙功能其他方面的結果會有好處。因此,最好僅抑制已知的具體改進機會。
如果您暫時抑制無障礙功能測試的某些結果,打算以后再處理,切勿意外抑制類似的結果。因此,請使用作用域較小的匹配器。為此,選擇的匹配器應確保只有在給定的結果滿足以下每項無障礙功能檢查的條件時,Espresso 才會抑制該結果:
某種類型的無障礙功能檢查,如用于檢查觸摸目標大小的無障礙功能檢查。 用于評估特定界面元素 (如按鈕) 的無障礙功能檢查。
匹配器
http://hamcrest.org/JavaHamcrest/tutorial#a-tour-of-common-matchers
AccessibilityChecks.enable().apply {
setSuppressingResultMatcher(
allOf(
matchesCheckNames(`is`("TextContrastViewCheck")),
matchesViews(withId(R.id.countTV))
)
)
}
ATF 定義了多個匹配器
https://github.com/google/Accessibility-Test-Framework-for-Android/blob/a6117fe0059c82dd764fa628d3817d724570f69e/src/main/java/com/google/android/apps/common/testing/accessibility/framework/AccessibilityCheckResultUtils.java
警告: Robolectric 4.5 中已移除此功能,請改用 Espresso 或無障礙功能掃描儀應用:
抑制已知問題
AccessibilityUtil
http://robolectric.org/javadoc/3.1/org/robolectric/util/AccessibilityUtil.html
setSuppressingResultMatcher()
http://robolectric.org/javadoc/3.1/org/robolectric/util/AccessibilityUtil.html#setSuppressingResultMatcher(org.hamcrest.Matcher)
用戶測試
為了找到可以測試您的應用的用戶,請使用如下方法:
與為殘障人士提供培訓的當地組織、學院或大學聯系。 在您的社交圈中詢問。可能會有殘障人士愿意提供幫助。 詢問用戶測試服務機構 (如 usertesting.com),看看他們能否邀請殘障用戶測試您的應用。 加入無障礙功能論壇 (如 Accessibility 或 Eyes-free),邀請志愿者試用您的應用。
usertesting.com
https://www.usertesting.com/
Accessibility
https://groups.google.com/forum/#!forum/accessible
Eyes-free
https://groups.google.com/forum/#!forum/eyes-free
如需更多提示,請觀看以下視頻的用戶測試部分 (從 31 分 10 秒到 44 分 51 秒):
△幕后花絮: Android 無障礙功能的新變化 | 2016 年 Google I/O 大會
原文標題:測試應用無障礙功能,助力構建適合更多人的精彩應用
文章出處:【微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。
-
谷歌
+關注
關注
27文章
6171瀏覽量
105507
原文標題:測試應用無障礙功能,助力構建適合更多人的精彩應用
文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論