tabindex =“ - 1” ใน bootstrap คืออะไร


105

เป็นสิ่งที่tabindexแอตทริบิวต์ใน Bootstrap 3?

เอกสารของมันไม่ได้บอกอะไรเกี่ยวกับพวกเขาแม้ว่าพวกเขาจะใช้มันจริงในทุกรูปแบบ

ฉันพบสิ่งนี้เกี่ยวกับการใช้งานเท่านั้นซึ่งไม่ได้พูดอะไรมาก

คำแนะนำเครื่องมือสำหรับผู้ใช้แป้นพิมพ์และเทคโนโลยีอำนวยความสะดวก

สำหรับผู้ใช้ที่ใช้แป้นพิมพ์และในผู้ใช้เทคโนโลยีอำนวยความสะดวกโดยเฉพาะคุณควรเพิ่มคำแนะนำเครื่องมือให้กับองค์ประกอบที่โฟกัสได้ของแป้นพิมพ์เช่นลิงก์การควบคุมแบบฟอร์มหรือองค์ประกอบใด ๆ ที่กำหนดโดยพลการที่มีแอตทริบิวต์ tabindex = "0"

และฉันพบว่าฉันไม่สามารถกดescเพื่อซ่อนกิริยาถ้าtabindex-1แอตทริบิวต์ไม่

คำตอบ:


168

tabindexแอตทริบิวต์อย่างชัดเจนกำหนดเพื่อนำทางสำหรับองค์ประกอบที่สามารถโฟกัส (โดยทั่วไปแล้วการเชื่อมโยงและการควบคุมรูปแบบ) ภายในหน้าเว็บ นอกจากนี้ยังสามารถใช้เพื่อกำหนดว่าองค์ประกอบควรโฟกัสได้หรือไม่

[ทั้งสอง] tabindex="0"และtabindex="-1"มีความหมายพิเศษและมีฟังก์ชันการทำงานที่แตกต่างกันใน HTML ค่าของ0บ่งชี้ว่าควรวางองค์ประกอบในลำดับการนำทางเริ่มต้น นี้จะช่วยให้องค์ประกอบที่ไม่สามารถโฟกัสกำเนิด (เช่น<div>, <span>และ<p>) จะได้รับการโฟกัสของแป้นพิมพ์ แน่นอนว่าโดยทั่วไปเราควรใช้ลิงก์และการควบคุมแบบฟอร์มสำหรับองค์ประกอบแบบโต้ตอบทั้งหมด แต่สิ่งนี้จะช่วยให้องค์ประกอบอื่น ๆ สามารถโฟกัสได้และกระตุ้นการโต้ตอบ

tabindex="-1"ค่าเอาองค์ประกอบจากการไหลนำทางเริ่มต้น (เช่นผู้ใช้ไม่สามารถแท็บไป) แต่มันก็ช่วยให้ได้รับการมุ่งเน้นการเขียนโปรแกรม , ความหมายโฟกัสสามารถตั้งค่าได้จากการเชื่อมโยงหรือสคริปต์. ** นี้สามารถมากมีประโยชน์สำหรับองค์ประกอบที่ไม่ควรแท็บ แต่อาจจำเป็นต้องตั้งโฟกัสไว้ที่องค์ประกอบเหล่านั้น

ตัวอย่างที่ดีคือหน้าต่างโต้ตอบโมดอล - เมื่อเปิดขึ้นควรตั้งโฟกัสไปที่กล่องโต้ตอบเพื่อให้โปรแกรมอ่านหน้าจอเริ่มอ่านและแป้นพิมพ์จะเริ่มนำทางภายในกล่องโต้ตอบ เนื่องจากกล่องโต้ตอบ (อาจเป็นเพียง<div>องค์ประกอบ) ไม่tabindex="-1"สามารถโฟกัสได้ตามค่าเริ่มต้นการกำหนดจึงอนุญาตให้ตั้งค่าโฟกัสด้วยสคริปต์เมื่อมีการนำเสนอ

ค่าของ-1ยังสามารถเป็นประโยชน์ในวิดเจ็ตและเมนูที่ซับซ้อนซึ่งใช้ปุ่มลูกศรหรือปุ่มทางลัดอื่น ๆเพื่อให้แน่ใจว่ามีเพียงองค์ประกอบเดียวในวิดเจ็ตเท่านั้นที่สามารถนำทางได้ด้วยปุ่มแท็บ แต่ยังคงอนุญาตให้ตั้งโฟกัสบนส่วนประกอบอื่น ๆ ภายในวิดเจ็ตได้

ที่มา: http://webaim.org/techniques/keyboard/tabindex

นี่คือเหตุผลที่คุณต้องการtabindex="-1"โมดอล<div>เพื่อให้ผู้ใช้สามารถเข้าถึงเมาส์และแป้นพิมพ์ลัดทั่วไปได้ หวังว่าจะช่วยได้


2
แอตทริบิวต์เป็นส่วนหนึ่งของ HTML ไม่มีส่วนเกี่ยวข้องกับ Bootstrap โดยเฉพาะ
Lutz Prechelt

8
ใช่นั่นคือสิ่งที่พูดกันตรงนี้ว่าเป็น "ฟังก์ชันการทำงานที่แตกต่างกันใน HTML" และไม่เกี่ยวข้องกับ Bootstrap
Kyle Anderson

1
เพื่อให้สามารถโฟกัสไปที่ <div> ด้วย JavaScript ต้องกำหนดแอตทริบิวต์ tabindex บนองค์ประกอบนี้ (ค่าใด ๆ เช่น tabindex = -1) หากไม่มี tabindex บน div การโฟกัสจะไม่ทำงาน นี่คือสาเหตุที่ BS เพิ่ม tabindex = -1 ให้กับ modal div โปรดดูdeveloper.mozilla.org/en-US/docs/Web/Accessibility/… : หากไม่มี tabindex การโฟกัสด้วย JS จะเป็นไปตามรูปแบบแพลตฟอร์มขององค์ประกอบ (ใช่สำหรับการควบคุมแบบฟอร์มลิงก์ ฯลฯ ) ซึ่งหมายความว่า <div> ไม่สามารถโฟกัสได้หากไม่มี tabindex
แคนาดาวันที่

ควรค่าแก่การเพิ่มองค์ประกอบที่มี tabindex = "- 1" ด้วยโดยคลิกที่องค์ประกอบเหล่านี้
ดำ

16

TabIndexแอตทริบิวต์มีความเกี่ยวข้องกับ HTMLก็ไม่ได้เฉพาะเจาะจงกับเงินทุน

คุณสมบัตินี้มีหน้าที่ระบุว่าองค์ประกอบสามารถเข้าถึงได้โดยการนำทางแป้นพิมพ์หรือไม่

คุณต้องมองหาสถานการณ์ที่แตกต่างกันสามสถานการณ์:

  1. เมื่อเพิ่มtabindex = "0"ลงในองค์ประกอบหมายความว่าสามารถเข้าถึงได้โดยการนำทางแป้นพิมพ์ แต่ลำดับถูกกำหนดโดยลำดับแหล่งที่มาของเอกสาร

  2. เมื่อเพิ่มค่าบวกให้กับแอตทริบิวต์ tabindex (ตัวอย่างtabindex = "1", tabindex = "2") องค์ประกอบเหล่านั้นสามารถเข้าถึงได้โดยการนำทางแป้นพิมพ์และลำดับจะถูกกำหนดโดยค่าของแอตทริบิวต์

  3. เมื่อเพิ่มค่าลบลงใน tabindex (โดยปกติtabindex="-1") หมายความว่าองค์ประกอบนั้นไม่สามารถเข้าถึงได้โดยการนำทางแป้นพิมพ์ แต่สามารถโฟกัสได้โดยใช้ฟังก์ชันโฟกัสใน JS

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.