從 Chrome 130 開始,如果捲軸沒有可透過鍵盤聚焦的子項,則預設可透過鍵盤聚焦。
背景
捲動畫面是無所不在的。您可能會在「條款及細則」方塊中找到一個,需要向下捲動畫面才能點選提交按鈕。或者,您可能會看到垂直的選單列,列出可供選擇的圖示。
在這種情況下,許多網頁使用者會使用滑鼠或觸控板的上下動作,在元素上捲動。不過,並非所有使用者都喜歡透過滑鼠、觸控板或觸控螢幕瀏覽網頁。有些人偏好只使用鍵盤,在 HTML 頁面中瀏覽每個可聚焦的元素。這可能是出於多種原因。包括有震顫症或其他導致難以操作滑鼠的問題、視覺上難以找到滑鼠游標,以及使用單一切換鈕或語音控制功能的使用者。
無障礙最佳做法建議您必須能夠使用鍵盤操作所有功能。如此一來,每個人都能以最適合的方式使用網路。
2.1.1 鍵盤:內容的所有功能都可以透過鍵盤介面操作,不需要為個別按鍵輸入特定時間,但如果基礎函式需要輸入內容取決於使用者移動路徑,而非端點,則不在此限。(A 級)
在變更前,捲軸的焦點
在這項變更之前,只有在 tabindex 明確設為 0 以上時,捲動器元素才能成為分頁焦點。例如,使用下列 CSS 和 HTML。接著,請嘗試從第一個按鈕切換至捲軸元素。
div.scroll, button {
border: 1px solid lightgray;
margin-top: 1em;
border-radius: 0.5em;
}
div.scroll {
overflow: auto;
width: 20em;
height: 5em;
display: block;
}
div.long {
width: 10em;
height: 10em;
}
<button>Start</button>
<div class="scroll" tabindex="0">
<p>This is a tab focusable scroller...</p>
<div class="long"></div>
<p>You need to scroll down to see this line.</p>
</div>
<button>End</button>
使用負 tabindex (如以下 HTML 所示) 時,系統會略過捲軸。
<button>Start</button>
<div class="scroll" tabindex="-1">
<p>This is not a tab focusable scroller...</p>
<div class="long"></div>
<p>You cannot see this line using the keyboard.</p>
</div>
<button>End</button>
如果您未設定 tabindex 值,使用者可能會很難透過順序焦點導覽來存取捲軸。這對沒有滑鼠的使用者來說可能會非常惱人。
<button>Start</button>
<div class="scroll">
<p>This scroller does not have a tabindex value set...</p>
<div class="long"></div>
<p>You cannot see this line using the keyboard.</p>
</div>
<button>End</button>
請注意,包含可聚焦子項的捲軸 (如以下 HTML 所示) 已可供存取,因為在聚焦可聚焦子項時,可使用方向鍵捲動。在這種情況下,系統不會變更任何行為。
<button>Start</button>
<div class="scroll">
<p>This is a terms and conditions text. Please scroll down to acknowledge reading.</p>
<div class="long"></div>
<button id="B">Acknowledge</button>
</div>
<button>End</button>
從 Chrome 130 開始,可聚焦捲軸
這項功能可讓沒有設定 tabindex 值且沒有任何可聚焦子項的捲軸,可透過鍵盤聚焦。這樣一來,無法或選擇不使用滑鼠的使用者,就能使用鍵盤的 Tab 鍵和方向鍵聚焦內容。
<button>Start</button>
<div class="scroll">
<p>This scroller does not have a tabindex value set...</p>
<div class="long"></div>
<p>but you can scroll through its content!</p>
</div>
<button>End</button>
請注意,只有在捲軸沒有可聚焦子項時,才會發生這項行為。舉例來說,如果捲軸已有按鈕,Tab 鍵焦點會略過捲軸,直接將焦點移至按鈕。在這種情況下,只要將焦點放在按鈕上,就能使用方向鍵存取捲軸內容。因此,如果有此類子項,預設值可能不會以最理想的方式運作。如果您希望捲軸元素本身在這種情況下可透過鍵盤聚焦,建議您將 tabindex 值設為 0 以上。
<button>Start</button>
<div class="scroll" tabindex="0">
<p>This is a terms and conditions text. Please scroll down to acknowledge reading.</p>
<div class="long"></div>
<button id="B">Acknowledge</button>
</div>
<button>End</button>
這項功能可讓捲動器在所有情況下預設為可透過鍵盤存取,有助於網頁使用者在瀏覽網頁時,透過分頁瀏覽功能獲得更流暢的體驗。