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