แอตทริบิวต์เฉื่อย

แอตทริบิวต์ inert เป็นแอตทริบิวต์ HTML ส่วนกลางที่ช่วยลดความซับซ้อนในวิธีนำออกและกู้คืนเหตุการณ์อินพุตของผู้ใช้สำหรับองค์ประกอบ ซึ่งรวมถึงกิจกรรมโฟกัสและเหตุการณ์จากเทคโนโลยีความช่วยเหลือพิเศษ

การสนับสนุนเบราว์เซอร์

  • 102
  • 102
  • 112
  • 15.5

แหล่งที่มา

ความเฉื่อยเป็นลักษณะการทำงานเริ่มต้นในองค์ประกอบกล่องโต้ตอบ เช่น เมื่อคุณใช้ showModal เพื่อเปิดกล่องโต้ตอบให้ผู้ใช้เลือกแล้วปิดไปจากหน้าจอ หลังจากเปิด <dialog> ส่วนอื่นๆ ของหน้าเว็บจะไม่หายไป เช่น คุณจะคลิกหรือกด Tab ไปยังลิงก์ไม่ได้อีก

คุณใช้แอตทริบิวต์ inert เพื่อทำให้ได้ลักษณะการทำงานแบบเดียวกันในองค์ประกอบอื่นๆ ได้

ความเฉื่อยหมายถึงการที่ไม่สามารถเคลื่อนที่ได้ ดังนั้นการทำเครื่องหมายสิ่งเฉื่อยจะเป็นการนำการเคลื่อนไหวหรือการโต้ตอบออกจากองค์ประกอบ DOM เหล่านั้น

<div>
  <label for="button1">Button 1</label>
  <button id="button1">I am not inert</button>
</div>
<div inert>
  <label for="button2">Button 2</label>
  <button id="button2">I am inert</button>
</div>

ตรงนี้ มีการระบุ inert ในองค์ประกอบ <div> ที่ 2 ที่มี button2 ดังนั้น เนื้อหาทั้งหมดภายใน <div> นี้ รวมถึงปุ่มและป้ายกำกับ จะไม่ได้รับโฟกัสหรือคลิก

แอตทริบิวต์ inert มีประโยชน์อย่างยิ่งสำหรับการช่วยเหลือพิเศษ โดยเฉพาะอย่างยิ่งเพื่อป้องกันการค้างโฟกัส

การช่วยเหลือพิเศษที่ดีขึ้น

หลักเกณฑ์การพัฒนาเนื้อหาเว็บที่ทุกคนสามารถเข้าถึงได้ง่ายต้องมีการจัดการโฟกัสและลำดับการโฟกัสที่เหมาะสมและใช้งานได้ ซึ่งรวมถึงการค้นพบได้และการโต้ตอบ ก่อนหน้านี้ ความสามารถในการค้นพบอาจระงับได้ด้วย aria-hidden="true" แต่การโต้ตอบจะยากกว่า

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

การใช้ inert กับองค์ประกอบเพื่อทําให้การช่วยเหลือพิเศษดีขึ้นมี 2 กรณีหลักๆ ดังนี้

  • เมื่อองค์ประกอบเป็นส่วนหนึ่งของแผนผัง DOM แต่ไม่อยู่ในหน้าจอหรือซ่อนอยู่
  • เมื่อองค์ประกอบเป็นส่วนหนึ่งของแผนผัง DOM แต่ไม่ควรเป็นอินเทอร์แอกทีฟ

องค์ประกอบ DOM ที่ไม่ได้อยู่ในหน้าจอหรือซ่อน

ข้อกังวลหนึ่งที่พบบ่อยเกี่ยวกับการช่วยเหลือพิเศษคือองค์ประกอบ เช่น ลิ้นชัก ซึ่งจะเพิ่มองค์ประกอบลงใน DOM ที่ผู้ใช้มองไม่เห็นเสมอไป เมื่อใช้ inert คุณจะมั่นใจได้ว่าองค์ประกอบย่อยของลิ้นชักจะอยู่นอกหน้าจอ ผู้ใช้แป้นพิมพ์จะไม่โต้ตอบกับองค์ประกอบนั้นโดยไม่ตั้งใจ

องค์ประกอบ DOM แบบไม่โต้ตอบ

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

เพื่อมอบประสบการณ์ที่ดีที่สุดแก่ผู้ใช้ ให้กำหนดสถานะของ UI และ "ดัก" การโฟกัสส่วนของหน้าเว็บที่มีการโต้ตอบ

การดักจับโฟกัส

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

การใช้ inert ช่วยให้มั่นใจว่ามีเพียงเนื้อหาที่ค้นพบได้เท่านั้นที่สามารถเข้าถึงได้ ซึ่งจะเป็นประโยชน์สำหรับ

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

ระบุองค์ประกอบ inert ด้วยภาพ

โดยค่าเริ่มต้น จะไม่มีภาพบ่งชี้ต้นไม้ย่อยที่มีความเฉื่อย เราขอแนะนำให้คุณทำเครื่องหมายให้ชัดเจนว่าส่วนใดของ DOM ที่ทำงานอยู่และส่วนใดเฉื่อย

[inert], [inert] * {
  opacity: 0.5;
  pointer-events: none;
  cursor: default;
  user-select: none;
}

ผู้ใช้บางส่วนเท่านั้นที่สามารถดูทุกส่วนของหน้าเว็บได้ในคราวเดียว เช่น ผู้ใช้โปรแกรมอ่านหน้าจอ อุปกรณ์ขนาดเล็ก หรือแว่นขยาย และแม้แต่ผู้ใช้ที่ใช้หน้าต่างขนาดเล็กเป็นพิเศษอาจมองไม่เห็นส่วนที่มีการใช้งานอยู่ของหน้าเว็บ และอาจรู้สึกหงุดหงิดหากส่วนที่ไม่มีการเคลื่อนไหวมีความเฉื่อยอย่างเห็นได้ชัด สำหรับการควบคุมแต่ละรายการ แอตทริบิวต์ที่ปิดใช้อาจเหมาะสมกว่า

การโต้ตอบและการเคลื่อนไหวใดที่ถูกบล็อก

โดยค่าเริ่มต้น inert จะบล็อกโฟกัสและกิจกรรมการคลิก สำหรับเทคโนโลยีความช่วยเหลือพิเศษ การดำเนินการนี้จะบล็อกแท็บและการค้นพบได้ เบราว์เซอร์อาจไม่สนใจการค้นหาหน้าเว็บและการเลือกข้อความในองค์ประกอบ

ค่าเริ่มต้นของ inert คือ false