आपके द्वारा देखी जाने वाली अधिकांश भूमिकाओं को 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 विशेषता चयनकर्ता का उपयोग कर सकते हैं।
*[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, इत्यादि) के साथ संघर्ष नहीं करते हैं।