測試應用程式的無障礙程度

測試無障礙程度可讓您從使用者的角度體驗應用程式,並找出您可能錯過的可用性問題。無障礙程度測試可協助您發掘更多機會,讓包括身心障礙者在內的所有使用者都能享有更強大、更靈活的應用程式。

為獲得最佳效果,請使用本文件所述的所有方法:

  • 手動測試:使用 Android 無障礙服務與您的應用程式互動。
  • 使用分析工具進行測試:利用相關工具探索可改善應用程式無障礙功能的機會。
  • 自動化測試:在 Espresso 和 Robolectric 中開啟無障礙程度測試。
  • 使用者測試:要求與應用程式互動的真實使用者提供意見回饋。

手動測試

手動測試會將您置於使用者的視角。Android AccessibilityService 物件會變更應用程式內容向使用者顯示的方式,以及使用者與內容互動的方式。使用無障礙服務與應用程式互動,可讓您像使用者一樣體驗應用程式。

TalkBack

TalkBack 是 Android 的內建螢幕閱讀器。開啟 TalkBack 後,使用者就能直接與 Android 裝置互動,而不必查看螢幕。視障使用者可能需要藉助 TalkBack 才能使用您的應用程式。

開啟 TalkBack

  1. 開啟裝置的「設定」應用程式。
  2. 前往「無障礙功能」並選取「TalkBack」
  3. 按下 TalkBack 螢幕頂端的「開啟/關閉」以開啟 TalkBack。
  4. 在確認對話方塊中,選取「確定」確認權限。

使用 TalkBack 探索應用程式

開啟 TalkBack 後,將提供兩種常用導覽方式:

  • 線性導覽:快速向右或向左滑動,即可瀏覽序列中的各個螢幕元素。輕觸兩下任意位置即可選取。
  • 輕觸探索:用一根手指在螢幕上拖曳,聽取指尖觸及的內容。輕觸兩下任意位置即可選取。

如要透過 TalkBack 探索應用程式,請完成下列步驟:

  1. 開啟應用程式。
  2. 依序滑動各個元素。
  3. 導覽過程中,請留意下列問題:

    • 每個元素的互動朗讀是否正確傳達了其內容或用途?(瞭解如何編寫有意義的標籤)。
    • 公告內容是簡潔明瞭,還是過於冗長?
    • 您能否輕鬆完成主要工作流程?
    • 您可以透過滑動手勢觸及每個元素嗎?
    • 如果出現快訊或其他臨時訊息,訊息會大聲讀出嗎?

如需詳細資訊和提示,請參閱 TalkBack 使用者說明文件

選用:TalkBack 開發人員設定

TalkBack 開發人員設定讓您能夠更輕鬆地使用 TalkBack 測試應用程式。

如要查看或變更開發人員設定,請完成下列步驟:

  1. 開啟裝置的「設定」應用程式。
  2. 前往「無障礙功能」並選取「TalkBack」
  3. 依序選取「設定」>「進階設定」>「開發人員設定」

    1. 記錄輸出等級:選取「詳細」
    2. 顯示語音輸出:開啟這項設定即可在螢幕上查看 TalkBack 語音輸出。

切換控制功能

「切換控制功能」可讓使用者使用切換裝置與 Android 裝置互動,而不使用觸控螢幕。切換裝置分為以下幾種:輔助技術裝置 (例如 AbleNet 販售的裝置、Enable Devices、RJ Cooper 或 Tecla*);外接鍵盤按鍵;或按鈕。這項服務對於動作功能受損的使用者非常實用。

* Google 不為這些公司或其產品背書。

開啟切換控制功能

一種簡單的切換控制功能設定方法是使用兩個切換裝置。其中一個切換裝置設計為「下一個」切換開關,用於在螢幕上移動焦點,第二個為「選取」切換開關,用於選取聚焦的元素。如要使用這種雙切換裝置的方法,則可使用任意硬體索引鍵配對。

注意:視乎使用的工具和軟體,切換控制功能的使用體驗會有所不同:

  • 如果使用外接切換裝置 (例如鍵盤),則需要額外的設定步驟。例如,您需要重新啟用螢幕鍵盤。詳情請參閱切換控制功能使用者說明文件
  • 如果使用 TalkBack 5.1 或以上版本,則可使用設定精靈設定切換控制功能。如要使用此設定精靈,而非執行下方步驟,請前往「設定」>「無障礙功能」>「切換控制功能」>「設定」>「開啟切換控制功能設定」

如要將切換控制功能設定為使用調低音量做為「下一個」切換開關,並使用調高音量鍵作為「選取」切換開關,請完成下列步驟:

  1. 確認 TalkBack 已關閉。
  2. 開啟裝置的「設定」應用程式。
  3. 前往「無障礙功能」並選取「切換控制功能」,然後選取「設定」
  4. 在「切換控制功能偏好設定」螢幕中,確認「自動掃描」為關閉。
  5. 使用調低音量鍵做為「下一個」切換開關:

    1. 依序輕觸「指定掃描按鍵」>「下一個」
    2. 當對話方塊開啟時,按下調低音量鍵。對話方塊會顯示 KEYCODE_VOLUME_DOWN。
    3. 輕觸「確定」即可確認並關閉對話方塊。
  6. 使用調高音量鍵做為「選取」切換開關:

    1. 輕觸「選取」。
    2. 當對話方塊開啟時,按下調高音量鍵。對話方塊會顯示 KEYCODE_VOLUME_UP。
    3. 輕觸「確定」即可確認並關閉對話方塊。
  7. 如要返回切換控制功能偏好設定,請按下返回按鈕。

  8. 選用:如果您使用 TalkBack 5.1 或以上版本,可以選取「互動朗讀」來開啟互動朗讀功能。

  9. 如要返回切換控制功能主畫面,請按下返回按鈕。

  10. 按一下「切換控制功能」螢幕頂端的「開啟/關閉」即可開啟切換控制功能。

  11. 在確認對話方塊中,選取「確定」確認權限。

使用切換控制功能探索應用程式

如要透過切換控制功能探索應用程式,請完成下列步驟:

  1. 開啟應用程式。
  2. 按一下「下一個」切換開關 (調低音量) 即可開始掃描。
  3. 持續按「下一個」,直到移到您想選取的項目。
  4. 按下「選取」切換開關 (調高音量) 即可選取醒目顯示的項目。
  5. 導覽過程中,請留意下列問題:

    • 您能否輕鬆完成主要工作流程?
    • 如果有文字或其他輸入內容,能否輕鬆新增和編輯內容?
    • 是否僅當對項目執行動作時,系統才會醒目顯示這些項目?
    • 每個項目是否只會醒目顯示一次?
    • 可透過觸控螢幕手勢執行的所有功能,都會在切換控制功能中做為可選控制項或自訂動作提供嗎?
    • 如果使用 TalkBack 5.1 或以上版本,且已開啟互動朗讀功能,每個元素的互動朗讀是否正確傳達了其內容或用途?(瞭解如何編寫有意義的標籤)。

選用:使用群組選取功能查看所有可掃描項目

群組選取功能是切換控制功能的一種導覽方法,可讓您一次查看所有可掃描項目。這個選項可讓您快速檢查螢幕上是否醒目顯示了正確的元素。

如要開啟群組選取功能,請完成下列步驟:

  1. 開啟裝置的「設定」應用程式。
  2. 前往「無障礙功能」並選取「切換控制功能」,然後選取「設定」
  3. 在「切換控制功能偏好設定」螢幕中,確認「自動掃描」為關閉。
  4. 依序選取「掃描方法」>「群組選取」
  5. 輕觸「為掃描指派切換裝置」
  6. 查看「群組選取切換開關 1」和「群組選取切換開關 2」下顯示的文字,確認已向每個切換開關指派切換裝置。如果您已執行開啟切換控制功能的相關操作,則應當已指派音量按鈕。

如要透過切換控制功能的群組選取功能探索應用程式,請完成下列步驟:

  1. 按下「選取」鍵 (調高音量) 即可醒目顯示目前螢幕上所有可操作項目。留意下列問題:

    • 是否只醒目顯示了可操作項目?
    • 所有可操作項目都醒目顯示了嗎?
    • 醒目顯示項目的密度是否合理?
  2. 導覽至其他畫面即可清除醒目顯示。

如要進一步瞭解使用者如何透過群組選取進行導覽,請參閱切換控制功能的使用秘訣

其他服務

Android 提供了數種其他工具,協助您測試應用程式的無障礙程度。

BrailleBack

Google BrailleBack 應用程式可讓使用者透過藍牙將可更新的點字顯示器連線至 Android 裝置。BrailleBack 可與 TalkBack 搭配使用,提供結合語音和點字的使用體驗。

如要使用點字顯示器測試應用程式,請參閱安裝和開啟 BrailleBack瞭解操作方式。

如要查看 BrailleBack 顯示的點字 (和 ASCII 翻譯),但不連線點字顯示器,則可使用 BraaBack 設定中的重疊選項:

  1. 開啟裝置的「設定」應用程式。
  2. 前往「無障礙功能」並選取「BrailleBack」
  3. 依序選取「設定」>「開發人員選項」>「在螢幕上顯示點字輸出」

Voice Access

Voice Access 讓使用者能透過語音指令控制 Android 裝置。Voice Access 適用於搭載 Android 5.0 (API 級別 21) 及以上版本的裝置。如要使用 Voice Access 測試應用程式,請參閱 Voice Access 入門指南瞭解詳情。

分析工具

使用分析工具進行測試,有助於發現使用手動測試可能錯失的無障礙功能改善機會。

無障礙功能掃描工具

無障礙功能檢查工具會掃描螢幕並提供建議,協助改善應用程式的無障礙設計。無障礙功能掃描工具會使用無障礙功能測試架構,並在檢查內容標籤、可點擊項目、對比等內容後,給出具體建議。

我們已將 Android 無障礙功能測試架構整合至 Android Studio,協助您找出版面配置中的無障礙功能問題。如要啟動面板,請按一下版面配置編輯器中的錯誤報告按鈕

無障礙功能檢查工具示範

瞭解詳情:

Google Play 正式發布前測試報告

如果您在 Google Play 上發布應用程式,即可存取有關應用程式的正式發布前測試報告。在您使用 Google Play 管理中心將應用程式上傳至發布版本後,Google Play 很快就會產生這份報告。Google Play 管理中心內也會提供正式發布前測試報告,其中顯示 Google Play 對應用程式的測試結果。

需要特別注意的是,Google Play 會使用無障礙功能測試架構執行無障礙程度測試。測試結果會顯示在應用程式正式發布前測試報告「無障礙功能」分頁的表格中。

表格會將改進機會分入以下類別:

觸控目標大小
應用程式內具有可聚焦區域 (或觸控目標大小) 的互動元素,且該元素的大小低於建議值。
低對比
文字元素和元素後方背景的色彩對比度低於建議值。
內容標籤
UI 元素不包含用於說明給定元素用途的標籤
實作
系統指派給 UI 元素的屬性,讓系統的無障礙服務更難以正確解讀元素。例如定義可編輯 View 標籤的說明,以及使用不符合元素邏輯排列方式的元素週遊順序

在表格之後,正式發布前測試報告會顯示應用程式的數據匯報。這些數據匯報代表各個類別中改善應用程式無障礙功能的機會。選取螢幕截圖即可查看詳細資料,包括建議的改善項目,以及應用程式中可執行相同改進的完整位置清單。

圖 1 為 Google Play 正式發布前測試報告的「無障礙功能」分頁中顯示的資料表範例。此圖還包含應用程式的一個數據匯報,顯示「下一個」按鈕的觸控目標大小低於建議值。

正式發布前測試報告螢幕截圖部分
圖 1.正式發布前測試報告「無障礙功能」分頁中的摘要表格 (左側) 和螢幕截圖 (右側) 範例

UI Automator Viewer

uiautomatorviewer 工具提供便利的 GUI,用以掃描和分析 Android 裝置上當前顯示的 UI 元件。您可以使用 UI Automator 檢查版面配置階層,以及查看裝置前景可見的 UI 元件之屬性。此資訊可讓您建立更精細的測試,例如建立符合特定可見屬性的 UI 選取器。該工具位於 Android SDK 的 tools 目錄中。

在無障礙程度測試中,這款工具非常適合用來解除使用其他測試方法發現的問題。舉例來說,如果手動測試產生的檢視畫面本應具有朗讀文字但沒有,或本不應收到聚焦卻實際收到了聚焦,則可使用此工具找出錯誤來源。

如要進一步瞭解 UI Automator Viewer,請參閱測試多個應用程式的 UI

Lint

Android Studio 會針對多種無障礙問題顯示 Lint 警告,並提供包含這些問題的原始碼位置連結。在以下範例中,圖片缺少 contentDescription 屬性。缺少內容說明會產生下列訊息:

[Accessibility] Missing 'contentDescription' attribute on image

圖 2 為 Android Studio 中此訊息顯示方式範例:

訊息的螢幕畫面擷取
圖 2. Android Studio 中的訊息顯示缺少 contentDescription 屬性

如果無障礙服務 (如螢幕閱讀器) 的使用者在應用程式中遇到這張圖片,就無法理解圖片的含義。

自動化測試

Android 平台支援多種測試架構,包括 EspressoRobolectric,使用每種架構都可建立並執行自動化測試,評估應用程式的無障礙程度。

如要瞭解如何使用 Espresso 和 Robolectric 進行無障礙程度測試,請觀看下列影片中從 31:54 到 34:19 分的片段:多元包容設計和測試:讓您的應用程式更容易使用 - 2016 年 Google I/O 大會

Espresso

Espresso 是專用於加速並簡化 UI 測試的 Android 測試程式庫。使用該程式庫,您可與應用程式中正在進行測試的 UI 元件互動,並斷言會發生特定行為或符合特定條件。

本節說明如何使用 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(
                    matchesCheckNames(`is`("TextContrastViewCheck")),
                    matchesViews(withId(R.id.countTV))
                )
        )
}

Java

AccessibilityValidator myChecksValidator = AccessibilityChecks.enable();
Matcher<? super AccessibilityViewCheckResult> myChecksMatcher =
        Matchers.allOf(matchesCheckNames(is("TextContrastViewCheck")),
                       matchesViews(withId(R.id.countTV)));
myChecksValidator.setSuppressingResultMatcher(myChecksMatcher);

Robolectric

Robolectric 是開放原始碼的 Android 測試程式庫,可讓您在 JVM 上測試真實的 Android 程式碼,而無需啟動模擬器。請參閱 Robolectric 入門瞭解詳情。

略過已知問題

首次啟用 Robolectric 檢查時,可能會遇到無法立即處理的問題。可以為想要略過的結果設定一個比對器,從而略過這些錯誤。詳情請參閱 AccessibilityUtil 類別的 setSuppressingResultMatcher() 方法說明文件 (該類別可在 Robolectric 中使用)。

使用者測試

除了本指南中提供的測試方法外,使用者測試也可以提供有關應用程式可用性的寶貴深入分析資訊。

如要尋找可測試應用程式的使用者,可使用下列方法:

  1. 聯絡為身心障礙者提供訓練的當地機構、學院或大學。
  2. 詢問社交圈。有些身心障礙者可能會樂意提供協助。
  3. 詢問使用者測試服務 (例如 usertesting.com) 是否能聯繫身心障礙使用者來測試您的應用程式。
  4. 加入無障礙工具論壇 (例如 AccessibilityEyes-free),詢問是否有志工願意試用您的應用程式。

如需更多秘訣,請觀看本影片中的「使用者測試」部分,時間為 31:10 到 44:51 分:幕後花絮:Android 無障礙功能的新進展 - 2016 年 Google I/O 大會