ตั้งแต่ Chrome 130 เป็นต้นไป แถบเลื่อนจะโฟกัสได้ด้วยแป้นพิมพ์โดยค่าเริ่มต้นหากไม่มีองค์ประกอบย่อยที่โฟกัสได้ด้วยแป้นพิมพ์
ข้อมูลเบื้องต้น
แถบเลื่อนมีอยู่ทุกที่ คุณอาจเห็นข้อกำหนดใน "ข้อกำหนดและเงื่อนไข" กล่อง ที่ต้องเลื่อนลงไปจนสุดเพื่อคลิกปุ่ม "ส่ง" หรือคุณอาจเห็นแถบเมนูแนวตั้งที่มีไอคอนให้เลือกมากมาย
ในกรณีดังกล่าว ผู้ใช้เว็บจำนวนมากใช้การเลื่อนขึ้นลงจากเมาส์หรือ ทัชแพดเพื่อเลื่อนดูองค์ประกอบ อย่างไรก็ตาม อุปกรณ์ชี้ตำแหน่ง แทร็กแพด หรือหน้าจอสัมผัสไม่ใช่วิธีที่ดีที่สุดในการไปยังส่วนต่างๆ ของหน้าสำหรับผู้ใช้บางราย ผู้ใช้บางรายต้องการไปยังส่วนต่างๆ ในหน้า HTML โดยเข้าถึงองค์ประกอบที่โฟกัสได้ทั้งหมดโดยใช้แป้นพิมพ์เท่านั้น ซึ่งอาจเกิดจากหลายสาเหตุ สำหรับผู้ที่มีมือสั่นหรือปัญหาอื่นๆ ที่ทำให้ใช้เมาส์ได้ยาก ผู้ที่มีตาฝ้าฟางจนมองเคอร์เซอร์เมาส์ไม่ชัด และผู้ที่ใช้สวิตช์เดียวหรือการควบคุมด้วยเสียง
แนวทางปฏิบัติแนะนำสำหรับการช่วยเหลือพิเศษแนะนำให้ใช้ฟีเจอร์ทั้งหมด แป้นพิมพ์ วิธีนี้จะช่วยให้ทุกคนใช้เว็บในแบบที่เหมาะกับตนมากที่สุด
2.1.1 แป้นพิมพ์: ฟังก์ชันการทำงานทั้งหมดของเนื้อหาสามารถใช้งานได้ผ่านอินเทอร์เฟซแป้นพิมพ์โดยไม่ต้องกำหนดเวลาการกดแป้นแต่ละครั้ง ยกเว้นในกรณีที่ฟังก์ชันพื้นฐานต้องใช้อินพุตที่ขึ้นอยู่กับเส้นทางการเคลื่อนไหวของผู้ใช้ ไม่ใช่แค่ปลายทาง (ระดับ A)
ก่อนการเปลี่ยนแปลงนี้เพื่อโฟกัสในแถบเลื่อน
ก่อนการเปลี่ยนแปลงนี้ องค์ประกอบตัวเลื่อนจะโฟกัสเฉพาะแท็บได้ในกรณีที่ Tabindex ตั้งเป็น 0 ขึ้นไปอย่างชัดเจน เช่น ใช้ CSS และ HTML ต่อไปนี้ จากนั้นลองกด Tab จากปุ่มแรกไปยังองค์ประกอบ Scroller
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 และไม่มีองค์ประกอบย่อยที่โฟกัสได้โฟกัสได้ด้วยแป้นพิมพ์ ซึ่งทำให้ผู้ใช้ไม่สามารถหรือ เลือกไม่ใช้เมาส์เพื่อโฟกัสเนื้อหาโดยใช้แท็บและลูกศรของแป้นพิมพ์ คีย์
<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>
ฟีเจอร์นี้ช่วยให้เครื่องมือเลื่อน เข้าถึงได้ด้วยแป้นพิมพ์โดยค่าเริ่มต้นในทุกกรณี ซึ่งจะช่วยให้ผู้ใช้เว็บได้รับประสบการณ์ ที่ราบรื่นยิ่งขึ้นเมื่อไปยังส่วนต่างๆ ของแท็บ หน้าเว็บ