開發全人 Windows 應用程式
本文討論如何開發無障礙 Windows 應用程式。 具體而言,本文假設您已了解如何設計應用程式的邏輯階層。 學習開發內含鍵盤導覽功能、色彩和對比設定,並支援輔助技術的無障礙 Windows 應用程式。
如果您尚未閱讀設計全人軟體,請先閱讀該篇文章。
為了確保應用程式符合無障礙條件,有三個您應該採取的動作:
程式存取
程式存取權對於在應用程式中建構協助工具至關重要。 這可以透過為應用程式中的內容和互動式 UI 元素設定無障礙名稱 (必要) 和描述 (選擇性) 來達成。 這可確保 UI 控制項會向螢幕助讀程式 (例如朗讀程式) 或替代輸出裝置 (例如點字顯示器) 等輔助技術 (AT) 公開。 少了程式存取權,輔助技術的 API 就無法正確解譯資訊,導致使用者無法充分使用產品,或迫使 AT 使用未經文件記載的程式設計介面、或從未打算用來當做無障礙介面的技術。 將 UI 控制項公開給輔助技術之後,AT 就能判斷使用者可以執行哪些操作,並能使用哪些選項。
如要進一步了解如何向輔助技術 (AT) 公開應用程式 UI 元素,請參閱公開基本的協助工具資訊。
鍵盤導覽
對盲人或行動不便的使用者來說,能夠以鍵盤導覽 UI 至關重要。 然而,只有那些需要使用者互動才能運作的 UI 控制項,才應獲得鍵盤焦點。 不需要動作的元件 (如靜態影像) 並不需要鍵盤焦點。
請務必記住,與使用滑鼠或觸控導覽不同的是,鍵盤導覽是線性的。 考慮鍵盤導覽方式時,請思考使用者將如何與您的產品互動,以及合理的導覽方式為何。 在西方文化中,人們的閱讀順序是由左至右、由上至下。 因此,常見的鍵盤導覽做法便是跟隨這個模式。
設計鍵盤導覽時,請檢查您的 UI,並思考下列問題:
- 如何在 UI 中配置或分組控制項?
- 是否有一些重要的控制項群組?
- 如果是,這些群組是否包含另一個層級的群組?
- 在對等控制項之間,是否應透過 TAB 鍵進行交替導覽,還是提供特殊的導覽方式 (例如方向鍵),或是兩種方式並行?
目的在於協助使用者了解 UI 配置,並識別可操作的控制項。 如果您發現,使用者完成導覽迴圈需要經過太多定位停駐點,請考慮將相關的控制項分組在一起。 某些相關的控制項 (例如:混合式控制項) 可能需要在目前的早期探索階段設置。 一旦開始開發產品,就很難修改鍵盤導覽方式,因此請儘早仔細規劃!
若要深入了解如何使用鍵盤交替導覽 UI 元素,請參閱鍵盤輔助功能。
此外,「適用於協助工具的工程軟體」電子書 (英文) 有一個探討此主題的精彩章節,標題為「設計邏輯階層」。
色彩和對比
Windows 內建的協助工具功能之一是高對比模式,此模式會提高電腦螢幕上文字和影像的色彩對比。 對某些人來說,提升色彩對比能降低眼睛疲勞,並使畫面更容易閱讀。 當您以高對比驗證 UI 時,建議您檢查控制項的編碼方式是否一致,並使用系統色彩 (不使用硬式編碼色彩) 確保使用者能夠看見畫面上的所有控制項,即能夠看見未使用高對比的使用者能看見的內容。
XAML
<Button Background="{ThemeResource ButtonBackgroundThemeBrush}">OK</Button>
如需使用系統色彩和資源的詳細資訊,請參閱 XAML 主題資源。
只要您尚未覆寫系統色彩,UWP 應用程式就會預設支援高對比佈景主題。 如果使用者選擇讓系統透過系統設定或協助工具使用高對比佈景主題,應用程式架構就會自動使用色彩和樣式設定,為 UI 中的控制項和元件產生高對比的配置和轉譯。
如需詳細資訊,請參閱高對比佈景主題。
如果您決定使用自己的色彩佈景主題,而不使用系統色彩,請考慮以下準則:
色彩對比率 - 已更新的美國《美國身心障礙法案 508 條款》和其他法規要求,文字及其背景之間的預設色彩對比必須至少為 5:1。 大型文字 (18 點字型大小,或 14 點加上粗體) 所需的預設對比為 3:1。
色彩組合 - 大約 7% 的男性 (以及小於 1% 的女性) 有某種形式的色覺缺陷。 色盲使用者有區別特定色彩的問題,因此切勿單獨使用色彩,傳達應用程式中的狀態或意義。 為裝飾性影像 (例如圖示或背景) 選擇色彩組合時,應以色盲使用者能夠最大限度地認知該影像為前提。
無障礙檢查清單
以下是協助工具檢查清單的縮略版本:
- 針對應用程式中的內容和互動式 UI 元素,設定協助工具的名稱 (必要) 和描述 (選擇性)。
- 實作鍵盤協助工具。
- 以視覺化方式驗證您的 UI,以確保文字對比足夠、高對比佈景主題中的元素正確轉譯,以及正確使用色彩。
- 執行協助工具、解決回報的問題,以及驗證螢幕閱讀體驗。 (請參閱協助工具測試主題。)
- 確保您的應用程式指令清單設定遵循協助工具指導方針。
- 在 Microsoft Store 中將您的應用程式宣告為無障礙。 (請參閱 Store 中的協助工具主題。)
如需詳細資訊,請參閱完整的協助工具檢查清單主題。