堆疊卡片布局的無障礙考量
幾週前,我發表了一篇關於使用 Compose 建立堆疊卡片布局的博客文章——以及可愛的貓咪。該布局存在一些無障礙問題,我的目標是在這篇文章中解決其中一些問題。由於本篇博客的範疇,我不會解決所有問題,而是討論它們造成的影響和可能的解決方案。
這次,我還會指出一些布局中好的地方。我覺得自己總是找問題並試圖解決它們,但這次我也想分享一些運行良好的內容。
在我們深入研究本篇文章選擇的不同方面之前,這裡有一個公平的提醒:這個清單並不全面,也不包含這種布局可能有的所有無障礙問題。我未用每一種可能的輔助技術或設置進行測試。我的目標是進步而非完美,我相信我將列出的修改已經是對該布局無障礙性的重大改善。
開關訪問
首先我要談論並改善應用的輔助技術是開關訪問。這是一項允許用戶使用一個或多個開關來瀏覽手機的服務。如果您想了解更多,Android 無障礙檢查清單中有一個關於開關訪問的部分。
當使用開關訪問進行測試時,我發現了一個問題:從堆疊中移除卡片時,焦點沒有轉移到任何地方,而是消失了。這是因為焦點所在的元件已經被刪除,無障礙服務失去了焦點。
解決這個問題的一種方法是將點擊事件移動到堆疊件而不是卡片本身上。可以透過在 CardStack 的 modifier 屬性中添加語義修改器來完成。
語音訪問
改善語音訪問使用的一件事是加強刪除按鈕的內容標籤。即使我們禁用了頂部卡片下方的按鈕,仍然存在兩個刪除按鈕:頂部卡片的和螢幕頂部單獨卡片的。
為何這是一個問題?因為當語音訪問用戶說“T掊 Delete”,有兩個刪除選項。當有多個相同標籤可用操作時,語音訪問會顯示每個操作的數字,用戶可以從中選擇。一整天都用語音導覽時,任何減少使用的方法都是可取的。
螢幕閱讀器
螢幕閱讀器用戶存在幾個問題。最明顯的是該應用程序顯示圖片,而圖片沒有內容描述。由於該應用程序從 API 使用圖片,因此撰寫內容描述的責任應該由 API 開發人員承擔。
為螢幕閱讀器用戶進行的最後改進是為標題添加語義信息以幫助導航。通過在 Title 元件中添加語義修改器來完成。
鍵盤
接下來的無障礙考量與鍵盤導航有關。當用鍵盤測試應用程序時,我發現兩個問題:首先,堆疊中的所有卡片刪除按鈕都是可聚焦的,刪除卡片後,焦點丟失。
只對可見按鈕聚焦
我們應該讓只有最頂部卡片的刪除按鈕可以聚焦,並移除堆疊中其他按鈕的聚焦性。
認知考量
雖然該應用程序很簡單,但確實存在一些認知無障礙考量。刪除按鈕只有圖標,沒有附加文本。並非每個人都能識別或記住 X 圖標表示刪除。
我們可以通過引入應用程序的無障礙設置來改善這一問題,並添加一個切換功能,在圖標旁顯示標籤。
螢幕方向
我還測試了橫向模式下的應用程序,這是重要的無障礙功能。由於我沒有將方向鎖定為縱向且數據存儲在數據存儲中而不是可合成內部狀態中,所以一切運行良好。
大字體和增大顯示尺寸
由於應用程序中的文本不多,因此增大字體大小效果良好,文本會縮放。布局也足夠靈活,可以增加顯示尺寸。
總結
在這篇博客中,我們研究了如何改善堆疊卡片布局的無障礙性。我們討論了開關訪問、鍵盤、語音訪問和螢幕閱讀器的無障礙性,還有螢幕方向、大字體和增加顯示尺寸以及認知考量。
這些變更都包含在此提交中。它還包含其他一些小的變更,因為該應用稍微不止堆疊卡片,因此我不得不修改其他方面以與這些變更協作。