Roving tabindex
單一 Tab 停靠點
Roving tabindex 讓一組控制項只占一個 Tab 停靠點。進入後,方向鍵會在同組項目之間移動焦點。
one tabindex=0 + remaining tabindex=-1 + arrow key swaps the active itemtabindex=0斜體-1連結-1引言-1focus() + swap tabindexone tabindex=0 + remaining tabindex=-1 + arrow key swaps the active itemA11Y另一個例子
工具列一開始只有「粗體」使用 tabindex 0,其他按鈕使用 -1。按向右鍵後,0 會移到「斜體」。
主要部分
- 01複合元件
- 02單一 Tab 停靠點
- 03未啟用項目
- 04方向鍵規則
- 05更新後的目前項目
- 06Tab 離開位置
什麼時候用
複合元件有明確的方向鍵操作規則時,可以使用這個方法。一般 Tab 順序中只能保留一個項目。
什麼時候不要用
不要套用在互不相關的連結或整個頁面。也不要讓兩個項目同時使用 tabindex 0。
程式裡的名稱
one tabindex=0 + remaining tabindex=-1 + arrow key swaps the active item 上線前要檢查
讓輔助工具知道控制項的名稱(無障礙名稱)、用途(角色)、值與狀態。檢查鍵盤操作、清楚可見的焦點、點按範圍、停用與忙碌狀態、回饋及復原。
預期成果:使用 單一 Tab 停靠點 (Roving tabindex) 解決這項需求,同時保留使用者目前的操作脈絡。 使用者情境:工具列一開始只有「粗體」使用 tabindex 0,其他按鈕使用 -1。按向右鍵後,0 會移到「斜體」。 建議介面模式:單一 Tab 停靠點 (Roving tabindex)。 適用理由:複合元件有明確的方向鍵操作規則時,可以使用這個方法。一般 Tab 順序中只能保留一個項目。 不應使用的情況:不要套用在互不相關的連結或整個頁面。也不要讓兩個項目同時使用 tabindex 0。 產品要求:定義預設、載入、沒有內容、錯誤、成功與復原狀態。保留使用者已輸入的內容,每個操作後都提供清楚回饋。 無障礙與韌性:使用結構正確的 HTML(語意化 HTML)和完整鍵盤操作。焦點要清楚可見,版面縮放後仍要好用。也要提供減少動態效果。遵守專案現有規則。除非專案已採用,否則不要新增介面元件庫。 驗收條件:主要任務可只用鍵盤完成,在 320px 寬度也能正常使用。焦點與狀態變化可被輔助工具讀出。載入、失敗、重試、取消與減少動態效果都已驗證。 證據與限制(證據邊界):它只代表該來源的官方說法。其他平台或團隊可能有不同用法。 待確認:產品文字、資料來源、分析事件、支援裝置與語系,以及平台特有限制。
檢查這份需求
請 AI 程式助手檢查目前如何使用 單一 Tab 停靠點 (Roving tabindex)。 定義:Roving tabindex 讓一組控制項只占一個 Tab 停靠點。進入後,方向鍵會在同組項目之間移動焦點。 正式環境檢查:讓輔助工具知道控制項的名稱(無障礙名稱)、用途(角色)、值與狀態。檢查鍵盤操作、清楚可見的焦點、點按範圍、停用與忙碌狀態、回饋及復原。 修改程式前,先列出看到的證據、缺口、嚴重程度,以及最小且安全的修正。