บทบาทส่วนใหญ่ที่คุณเห็นถูกกำหนดเป็นส่วนหนึ่งของ ARIA 1.0 แล้วรวมเข้ากับ HTML5 ในภายหลัง องค์ประกอบ HTML5 ใหม่บางส่วน (กล่องโต้ตอบหลักและอื่น ๆ ) จะขึ้นอยู่กับบทบาท ARIA ดั้งเดิม
http://www.w3.org/TR/wai-aria/
มีสองเหตุผลหลักในการใช้บทบาทเพิ่มเติมจากองค์ประกอบความหมายดั้งเดิมของคุณ
เหตุผลที่ # 1 การแทนที่บทบาทที่ไม่มีองค์ประกอบภาษาโฮสต์เหมาะสมหรือด้วยเหตุผลต่างๆจึงใช้องค์ประกอบที่เหมาะสมน้อยกว่าความหมาย
ในตัวอย่างนี้มีการใช้ลิงก์แม้ว่าฟังก์ชั่นที่ได้จะมีลักษณะเหมือนปุ่มมากกว่าลิงค์การนำทาง
<a href="#" role="button" aria-label="Delete item 1">Delete</a>
โปรแกรมอ่านหน้าจอจะได้ยินสิ่งนี้เป็นปุ่ม (ตรงข้ามกับลิงก์) และคุณสามารถใช้ตัวเลือกแอตทริบิวต์ CSS เพื่อหลีกเลี่ยง class-itis และ div-itis
*[role="button"] {
/* style these a buttons w/o relying on a .button class */
}
เหตุผลที่ # 2 การสำรองบทบาทขององค์ประกอบพื้นฐานเพื่อสนับสนุนเบราว์เซอร์ที่ใช้งานบทบาท ARIA แต่ยังไม่ได้ใช้บทบาทขององค์ประกอบพื้นฐาน
ยกตัวอย่างเช่น "หลัก" บทบาทที่ได้รับการสนับสนุนในเบราว์เซอร์เป็นเวลาหลายปี แต่มันเป็นนอกจากนี้ล่าสุดค่อนข้างเป็น HTML5 <main>
เพื่อให้เบราว์เซอร์จำนวนมากยังไม่สนับสนุนความหมายสำหรับ
<main role="main">…</main>
นี่คือการซ้ำซ้อนทางเทคนิค แต่ช่วยให้ผู้ใช้บางคนและไม่เป็นอันตรายใด ๆ ในอีกไม่กี่ปีข้างหน้าเทคนิคนี้อาจไม่จำเป็น
คุณยังเขียนว่า:
ฉันเห็นบางคนแต่งเอง นั่นเป็นสิ่งที่ได้รับอนุญาตหรือการใช้งานที่ถูกต้องของคุณลักษณะบทบาทหรือไม่
นั่นเป็นการใช้แอตทริบิวต์ที่ถูกต้องเว้นแต่จะไม่มีการรวมบทบาทจริง เบราว์เซอร์จะใช้บทบาทแรกที่รู้จักในรายการโทเค็น
<span role="foo link note bar">...</a>
ออกจากรายการเท่านั้นlink
และnote
เป็นบทบาทที่ถูกต้องดังนั้นบทบาทลิงก์จะถูกนำไปใช้เพราะมาก่อน หากคุณใช้บทบาทที่กำหนดเองตรวจสอบให้แน่ใจว่าพวกเขาจะไม่ขัดแย้งกับบทบาทที่กำหนดไว้ใน ARIA หรือภาษาโฮสต์ที่คุณใช้ (HTML, SVG, MathML และอื่น ๆ )