Listbox
選項清單
選項清單是自訂的選擇清單。它會管理目前所在的選項,以及方向鍵如何在清單中移動。
生活中的例子
物流調度員從 180 個可搜尋的結果中挑選一座倉庫。方向鍵可移動選項,Enter 可確認。篩選後,螢幕閱讀器仍會讀出已選倉庫;短而固定的清單則應改用內建的 `<select>`。
主要部分
- 01清單容器
- 02目前選項
- 03選取狀態
什麼時候用
只有內建的 `<select>` 無法處理搜尋、較豐富的選項或複選需求時,才製作自訂選項清單。
什麼時候不要用
不要在選項裡放按鈕、連結或其他可單獨操作的控制項。
程式裡的名稱
role=listbox + role=option + aria-selected + roving focus/aria-activedescendant 上線前要檢查
每個欄位都要有程式能讀到的標籤。連結提示與錯誤,並保留已輸入內容。檢查自動填寫、鍵盤順序、驗證時機、送出狀態、失敗復原、縮放與多語系。
預期成果:使用 選項清單 (Listbox) 解決這項需求,同時保留使用者目前的操作脈絡。 使用者情境:物流調度員從 180 個可搜尋的結果中挑選一座倉庫。方向鍵可移動選項,Enter 可確認。篩選後,螢幕閱讀器仍會讀出已選倉庫;短而固定的清單則應改用內建的 `<select>`。 建議介面模式:選項清單 (Listbox)。 適用理由:只有內建的 `<select>` 無法處理搜尋、較豐富的選項或複選需求時,才製作自訂選項清單。 不應使用的情況:不要在選項裡放按鈕、連結或其他可單獨操作的控制項。 產品要求:定義預設、載入、沒有內容、錯誤、成功與復原狀態。保留使用者已輸入的內容,每個操作後都提供清楚回饋。 無障礙與韌性:使用結構正確的 HTML(語意化 HTML)和完整鍵盤操作。焦點要清楚可見,版面縮放後仍要好用。也要提供減少動態效果。遵守專案現有規則。除非專案已採用,否則不要新增介面元件庫。 驗收條件:主要任務可只用鍵盤完成,在 320px 寬度也能正常使用。焦點與狀態變化可被輔助工具讀出。載入、失敗、重試、取消與減少動態效果都已驗證。 證據與限制(證據邊界):它只代表該來源的官方說法。其他平台或團隊可能有不同用法。 待確認:產品文字、資料來源、分析事件、支援裝置與語系,以及平台特有限制。
檢查這份需求
請 AI 程式助手檢查目前如何使用 選項清單 (Listbox)。 定義:選項清單是自訂的選擇清單。它會管理目前所在的選項,以及方向鍵如何在清單中移動。 正式環境檢查:每個欄位都要有程式能讀到的標籤。連結提示與錯誤,並保留已輸入內容。檢查自動填寫、鍵盤順序、驗證時機、送出狀態、失敗復原、縮放與多語系。 修改程式前,先列出看到的證據、缺口、嚴重程度,以及最小且安全的修正。