표시되는 대부분의 역할은 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 속성 선택기를 사용하여 클래스 염 및 div 염을 피할 수 있습니다.
*[role="button"] {
/* style these a buttons w/o relying on a .button class */
}
이유 # 2. ARIA 역할을 구현했지만 아직 기본 요소의 역할을 구현하지 않은 브라우저를 지원하기 위해 기본 요소의 역할 백업
예를 들어, "main"역할은 몇 년 동안 브라우저에서 지원되었지만 HTML5에 비교적 최근에 추가되었으므로 많은 브라우저에서 아직 시맨틱을 지원하지 않습니다 <main>
.
<main role="main">…</main>
이것은 기술적으로 중복되지만 일부 사용자에게 도움이되고 해를 끼치 지 않습니다. 몇 년 안에이 기술은 불필요해질 것입니다.
당신은 또한 썼습니다 :
일부 사람들이 스스로 구성하는 것을 봅니다. 이것이 역할 속성의 올바른 사용입니까?
실제 역할이 포함되지 않은 경우 속성을 올바르게 사용합니다. 브라우저는 토큰 목록에서 처음 인식 된 역할을 적용합니다.
<span role="foo link note bar">...</a>
목록에서, link
그리고 note
유효한 역할이므로 링크 역할이 처음부터 적용되므로 적용됩니다. 사용자 정의 역할을 사용하는 경우 ARIA 또는 사용중인 호스트 언어 (HTML, SVG, MathML 등)에서 정의 된 역할과 충돌하지 않아야합니다.