การทำงานร่วมกันปี 2024: Chrome 100% สำหรับพื้นที่มุ่งเน้นการช่วยเหลือพิเศษ

Jocelyn Tran
Jocelyn Tran

Chrome เริ่มต้นปีด้วยการผ่านการทดสอบ 88.2% ในพื้นที่ที่มุ่งเน้นการช่วยเหลือพิเศษของ Interop 2024 ในเดือนมิถุนายน 2024 เราถือเป็นบริษัทแรกที่ผ่านการทดสอบ 100% โพสต์นี้อธิบายถึงสิ่งที่ทําเพื่อให้บรรลุเป้าหมายนี้

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

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

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

ทีม Chrome ต้องทําอะไรบ้าง

เรามีงานขนาดใหญ่ 2 ด้านที่ต้องดำเนินการให้เสร็จสมบูรณ์ ได้แก่ การเปลี่ยนการแมปบทบาทเป็นบทบาททั่วไปและการนำบทบาทที่เลิกใช้งานออก จากนั้นมีการแก้ไขและฟีเจอร์เล็กๆ น้อยๆ เพิ่มเติมที่จะนำมาใช้งาน นอกจากงานต่อไปนี้ที่ทีม Chrome ได้ทำเสร็จแล้ว เรายังร่วมมือกับ Microsoft ในการแก้ไขที่ Microsoft มุ่งมั่นที่จะทำใน Chromium สำหรับพื้นที่ที่มุ่งเน้นการช่วยเหลือพิเศษด้วย

เปลี่ยนการแมปบทบาทบางอย่างเป็นบทบาททั่วไป

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

  • <header> ที่มีขอบเขตระดับ <main> หรือองค์ประกอบเนื้อหาการจัดแบ่งส่วน (<article>, <aside>, <nav> หรือ <section>)
  • <footer> ที่มีขอบเขตระดับ <main> หรือองค์ประกอบเนื้อหาที่มีการแบ่งส่วน (<article>, <aside>, <nav> หรือ <section>)
  • <aside> ภายในองค์ประกอบเนื้อหาส่วน (<article>, <aside>, <nav> หรือ <section>) ที่ไม่มีชื่อสำหรับการช่วยเหลือพิเศษ
  • <section> ที่ไม่มีชื่อสำหรับการช่วยเหลือพิเศษ
  • รายการในลิสต์ที่ไม่มีเจ้าของ (<li>)

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

นำบทบาทที่เลิกใช้งานแล้วออก

เราเลิกใช้งานบทบาท directory และจับคู่กับบทบาทรายการ ARIA 1.2 เลิกใช้งานบทบาท directory ข้อกําหนดอธิบายว่าบทบาทนี้เทียบเท่ากับบทบาท list และนักพัฒนาแอปควรใช้ list ตอนนี้ Chrome จะแมป directory กับ list เพื่อรักษาความหมายของเนื้อหาเก่าที่ใช้ directory

การแก้ไขอื่นๆ

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

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

บทบาทบางอย่างจะใช้ได้ก็ต่อเมื่ออยู่ในบริบทที่ถูกต้อง เราจึงเพิ่มการตรวจสอบการใช้บทบาทที่ไม่ถูกต้อง ดังนี้

  • บทบาท row ควรอยู่ภายใน table, grid, rowgroup หรือ treegrid
  • บทบาท rowgroup ควรอยู่ภายใน table, grid, tree หรือ treegrid
  • บทบาท listitem ควรอยู่ภายใน list

หากบทบาทไม่ถูกต้อง ตอนนี้ Chrome จะใช้ข้อมูลอื่นๆ เช่น องค์ประกอบ HTML เพื่อคํานวณบทบาทอื่น

เราได้ทําเครื่องหมาย thead และ tfooter ว่ารวมอยู่ในลําดับชั้นการช่วยเหลือพิเศษแล้ว ก่อนหน้านี้ระบบได้ทำเครื่องหมายว่าไม่สนใจ แต่ยังคงรวมอยู่ในแผนภูมิ ตอนนี้เทคโนโลยีความช่วยเหลือพิเศษจะแยกวิเคราะห์ส่วนหัวและส่วนท้ายของตารางได้แล้ว


แม้ว่านักพัฒนาแอปส่วนใหญ่อาจไม่เห็นการเปลี่ยนแปลงเหล่านี้ แต่เรามั่นใจว่าบทบาทต่างๆ จะแสดงในลักษณะเดียวกันในทุกที่ เนื่องจากเบราว์เซอร์ทุกรุ่นพยายามทำให้สิ่งเหล่านี้ทำงานในลักษณะเดียวกัน