번역 도 참조하라.
저작권 © 2024 월드 와이드 웹 컨소시엄 . W3C ® 책임 , 상표 및 허용되는 문서 라이센스 규칙이 적용된다.
이 명세는 [ HTML ] 요소 에 WAI-ARIA(Accessible Rich Internet Application) 1.2 및 Digital Publishing WAI-ARIA 모듈 1.0 속성을 사용하기 위한 저작 규칙(저작자 준수 요구 사항)을 정의한다 . 이 명세의 주요 목적은 저작자(즉, 웹 개발자)가 사용하는 준수 검사 도구와 함께 사용하기 위한 요구 사항을 정의하는 것이다. 이러한 요구 사항은 저작자가 호스트 언어( HTML ) 의 기능을 보완하거나 확장하기 위해 ARIA를 활용하는 사용자 정의 인터페이스 및 위젯을 포함한 웹 콘텐츠를 개발하는 데 도움이 된다 .
이 섹션에서는 발행 당시 이 문서의 상태를 설명한다. 현재 W3C 간행물 목록 과 이 기술 보고서의 최신 개정판은 W3C 기술 보고서 색인( https://www.w3.org/TR/)에서 확인할 수 있다.
HTML의 ARIA는 [ HTML ] 명세 모듈이다. 이 명세 모듈에서 참조하지만 명시적으로 정의하지 않은 모든 HTML 기능, 준수 요구 사항 또는 용어는 HTML 표준 에 의해 정의된다.
이 명세는 2021년 12월 9일에 W3C 권장 사항이 되었기 때문에 다음과 같은 실질적인 추가 및/또는 수정 사항이 제안되었다.
separator
역할을 허용하도록 버튼 요소 및 input type=button,image,reset,submit 요소 업데이트
img
요소 허용 업데이트
group
역할에 대한 업데이트된 매핑에 따라 address
및 hgroup
요소 허용 업데이트
doc-glossary
역할을 허용하도록 aside
요소 업데이트
button
, input type=button
, input type=image
, input type=reset
, input type=submit
요소를 업데이트하여 허용된 역할 정리
role=deletion
사용이 중복된 것으로 간주됨을 나타내기 위해 s
요소 허용 역할 업데이트
summary
요소에서 허용되는 aria-*
속성 및 역할을 조건부 수정
li
목록 요소 부모에 대한 요소의 상위 관계 또는 부족에 대한 맥락에서 요소 역할 허용 업데이트
search
요소 추가
body
에 aria-hidden=true
요소 불허
doc-example
를 포함하도록 figure
요소 역할 허용 업데이트
datalist
요소에 역할 및 aria-*
속성 불허
aria-checked
는 checked
속성 을 지원하는 요소에는 사용 안함
nav
요소에 대한 none
및 presentation
역할 허용
dl
요소의 하위인 경우 div
요소에 대한 역할 허용 제한
button
요소에 combobox
역할 허용. input type=button
요소에 combobox
및 checkbox
역할 허용
li
요소에 대한 doc-biblioentry
및 doc-endnote
역할 허용 변경. 이 역할은 Digital Publishing WAI-ARIA Module 1.1에서 더 이상 사용되지 않음
img alt="some text"
element에 radio
역할 허용
wbr
요소에 대한 역할 none
과 presentation
만 허용.
br
및 wbr
요소에 대해 aria-hidden
전역 속성만 허용
section
element에 group
역할 허용
href
없는 area
요소에 link
및 button
역할 허용.
picture
요소에 aria-hidden
속성 허용
문서 검토자는 문서의 고유한 스타일을 통해 후보 추가 및/또는 수정 사항을 식별할 수 있다.
수정 후보는 문서에 표시된다.
추가 후보는 문서에 표시된다.
이 문서는 권고안 트랙(Recommendation track)을 사용하여 웹 애플리케이션 작업 그룹(Web Applications Working Group)에서 권고안으로 게시되었다. 여기에는 이전 권고안 이후 실질적인 변경 사항과 새로운 기능을 도입하는 수정안 후보(candidate amendments)가 포함된다.
W3C는 이 명세을 웹 표준으로 광범위하게 배포할 것을 권장한다.
W3C 권장 사항은 광범위한 합의 구축 후 W3C 와 회원이 승인하고 실무 그룹 회원이 구현을 위해 로열티 없는 라이센스를 약속하는 명세 이다 . 이 권고안에 대한 향후 업데이트에는 새로운 기능이 포함될 수 있다.
추가 후보는 문서에 표시된다.
수정 후보는 문서에 표시된다.
이 문서는 W3C 특허 정책에 따라 운영되는 그룹에 의해 작성되었다. W3C는 그룹의 결과물과 관련하여 공개된 모든 특허 공개 목록을 유지 관리한다. 해당 페이지에는 특허 공개에 대한 지침도 포함되어 있다. 필수 주장이 포함되어 있다고 생각하는 특허에 대한 실제 지식을 갖고 있는 개인은 W3C 특허 정책 의 섹션 6에 따라 정보를 공개해야 한다.
이 문서는 2023년 11월 3일 W3C 프로세스 문서의 적용을 받다.
이 섹션은 비규범적이다.
ARIA를 사용하면 저작자는 기본 HTML의 현재 기능을 넘어서는 의미 체계를 지정할 수 있다. 이는 저작자에게 위젯을 만들 수 있는 기회를 제공하거나 HTML만 사용해서는 불가능한 기본 HTML 기능에 특정 액세스 가능한 상태 및 속성을 노출할 수 있는 기회를 제공하므로 매우 유용할 수 있다.
예를 들어, button
요소에는 "누름" 상태를 노출하는 기본 HTML 기능이 없다. ARIA를 사용하면 저작자는 속성을 지정하여 요소의 의미를 확장할 수 있으므로 aria-pressed
컨트롤의 시각적 표현과 일치하는 청각적 UI가 가능해집니다.
다음 예에서는 button
요소를 통해 사용자가 웹 애플리케이션 내 설정 상태를 전환할 수 있다. aria-pressed
속성은 button
요소를 보강하는 데 사용된다. "눌린" 상태에서는 정보가 보조 기술 사용자에게 노출될 수 있다.
<button aria-pressed=true>...</button>
특정 aria-*
속성이 특정 role
과 함께 요소에 사용되도록 허용되는 상황도 있지만, 이에 상응하는 기본 속성은 현재 HTML 자체에서는 유효하지 않다.
예를 들어 HTML에는 비활성화된 하이퍼링크(a href
요소)에 대한 직접적인 개념이 없다. <a href="..." disabled> ... </a>
와 같은 구문은 유효하지 않으며 보조 기술로 전달되지 않다.
ARIA는 HTML과 달리 명시적인 role=link
로 지정된 요소에 aria-disabled
속성을 지정할 수 있다. 저작자가 aria-disabled=true
하이퍼링크에 을 지정하는 경우 사용자 에이전트는 하이퍼링크를 기능적으로 다르게 처리하지 않지만(여전히 클릭 가능/작동 가능) 보조 기술에는 비활성화된 상태로 노출된다.
마찬가지로 select
요소의 자손인 기본 HTML option
요소는 selected
로만 설정될 수 있지만, 명시적 option
역할을 가진 요소는 aria-selected
와 동등한 역할뿐만 아니라 aria-checked
속성도 허용할 수 있다. 이를 통해 기본 select
요소의 기능을 넘어서는 위젯/구조를 지원할 수 있다.
불행하게도 ARIA와 HTML이 기능 동등성을 갖고 있지만 허용 범위가 다른 상황에서는 사용자 경험은 아니더라도 지원에 불일치가 발생할 수 있다. ARIA가 HTML에서 지원하지 않는 기능을 허용하는 상황에서는 완전한 사용자 정의 ARIA 위젯으로 구현하는 것이 저작자와 궁극적으로 사용자에게 가장 큰 이익이 되는 경우가 많다.
다음 예에서는 하이퍼링크가 비활성화된 상태로 전달되어야 한다. HTML은 하이퍼링크에서 disabled
속성 사용을 허용하지 않으며, aria-disabled=true
을 사용하면 보조 기술에 하이퍼링크가 비활성화된 것으로 전달되지만 실제로 요소가 비활성화되지는 않다. 하이퍼링크를 전달하고 실제로 비활성화하는 가장 효과적인 방법은 a
요소에서 href
을 제거하여 플레이스홀더를 만드는 것이다. 그런 다음 ARIA를 이 플레이스홀더 링크에 적용하여 요소의 의도된 역할과 상태를 전달할 수 있다.
<a role=link aria-disabled=true>...</a>
이 섹션은 비규범적이다.
ARIA는 사용자에게 노출시키기 위해 다른 역할이 필요할 때 요소의 역할을 수정하거나 수정하는 데 유용한다. 그러나 상호작용 요소(예: button
)의 역할을 일반적으로 비상호작용 요소(예: 헤딩)에 의해 노출되는 역할로 대체하려고 ARIA를 사용하는 것은 사용자나 저작자 모두에게 이롭지 않다. 이는 바람직하지 않다. ARIA는 본래의 용도대로 사용하는 것이 가장 좋다.
예를 들어 다음은 button
요소에 role=heading
을 사용한다 . 이는 button
요소에 제목 역할에 대한 사용자 기대와 충돌하는 기본 기능이 있기 때문에 허용되지 않다.
<button role="heading">search</button>
저작자는 button
의 기본 기능과 표시가 제거되었는지 확인하기 위해 추가 조치를 취해야 하며, 그렇게 해도 사용자가 웹 페이지에 참여하기로 선택한 방식에 따라 요소의 암묵적 기능을 완전히 억제하는 데 충분하지 않을 수 있다. 예를 들어 Windows 고대비 테마를 켜거나 브라우저의 리더 모드에서 웹 페이지를 보는 것이다.
다음 예시는 role=button
이 명시적으로 제공된 button
요소를 보여준다. 이 역할을 지정하는 것은 불필요한다. 왜냐하면 "button" 요소는 이미 암묵적 button
역할로 노출되기 때문이다. 실제로 이런 중복은 마크업을 불필요하게 길게 만들고 다른 저작자들에게 이 관행이 유용하다는 잘못된 신호를 주는 것 외에는 예기치 않은 부작용이 없을 것이다. 불필요한 역할 지정이 문제가 될 수 있는 예시는 3.3 부작용에 주의하라를 참고하시기 바랍니다.
<!-- Avoid doing this! -->
<button role="button">...</button>
마찬가지로 다음 예시에서는 fieldset
요소에 role=group
을, main
요소에 role=Main
을 사용하고 있다. 이는 불필요한다. 왜냐하면 fieldset
요소는 암묵적으로 role=group
으로 노출되고, main
요소 또한 암묵적으로 role=main
으로 노출되기 때문이다. 다시 말해, role
값의 선언이 ASCII 소문자를 사용하는 한 보조 기술 사용자에게 예기치 않은 부작용은 없을 것이다. 자세한 내용은 4.4 ARIA 역할, 상태 및 속성 특성의 대소문자 요구 사항을 참고하라.
<!-- Avoid doing this! -->
<fieldset role="group">...</fieldset>
<!-- or this! -->
<main role="Main">...</main>
다음은 ul
요소에 role=list
를 사용한다. ul
요소에는 암묵적 list
역할이 있으므로 명시적으로 역할을 추가하는 것은 일반적으로 중복되는 것으로 간주된다. 그러나 일부 사용자 에이전트는 목록 항목의 시각적 표현에서 목록 마커가 제거되면 목록의 암묵적 ARIA 의미 체계를 억제한다. 일반적으로 요소의 암묵적 역할을 중복적으로 선언하는 것은 권장되지 않지만, 이와 같은 특정 상황에서 역할을 노출해야 하는 경우 저작자는 역할을 명시적으로 추가할 수 있다.
<!-- Generally avoid doing this! -->
<ul role="list">...</ul>
다음은 요소 summary
에 role=button
을 사용한다 . 이는 불필요하며 플랫폼 간 문제가 발생할 수 있다. 예를 들어, 요소가 해당 상태를 올바르게 노출하지 못하도록 방지하고 플랫폼이나 브라우저 특정 역할로 노출될 수 있는 경우 button
역할을 강제한다.
<details>
<!-- Avoid doing this! -->
<summary role="button">more information</summary>
...
</details>
WAI-ARIA(Accessible Rich Internet Application) 1.2에서는 저작자가 사용하지 않아야 하는 여러 역할을 정의하고 있다. 이러한 역할 중 많은 수가 추상적 역할로 분류되어 있으며, 저작자가 사용해서는 안 된다고 명시적으로 언급되어 있다. 다음 예시는 추상 select
역할의 잘못된 사용을 보여주고 있다. 저작자는 combobox
역할을 사용하려고 했을 것이다.
<!-- Do not do this! -->
<div role="select" ...>...</div>
ARIA는 또한 generic
role 역할을 정의하고 있는데, 이는 HTML 요소 중 보다 구체적인 ARIA 의미론이 없는 요소들(예: div
span
등)과의 기능 동등성을 제공하기 위한 것이다. ARIA에서는 generic
역할의 용도가 사용자 에이전트 구현자를 위한 것이므로 저작자가 이를 사용하지 말 것을 권장하고 있다.
다음 예시에서 저작자는 generic
역할인 article
요소 대신 div
를 사용하는 것이 좋다. 만약 HTML 요소를 변경하기 어렵다면, article
의 암묵적 역할을 제거하기 위해 presentation
또는 none
역할을 지정하는 것도 허용되는 대안이다.
<!-- Avoid doing this! -->
<article role="generic" ...>...</article>
또한 ARIA는 호스트 언어 의미와 충돌(Conflicts with Host Language Semantics)에서 저작자가 ARIA 대응 요소뿐만 아니라 상태 및 속성을 노출하기 위해 기본 HTML 기능을 모두 사용하는 경우 호스트 언어 기능이 또한 사용되는 명시적 ARIA 속성보다 우선순위를 갖는다는 점을 구체적으로 언급한다.
예를 들어, 다음 예에서 저작자는 HTML의 input type=checkbox
를 aria-checked=true
로 지정해 사용하고 있다. 그러나 사용자 에이전트는 aria-checked
속성을 무시하도록 되어 있다. 대신 사용자 에이전트는 양식 컨트롤의 기본 기능을 기반으로 상태를 노출한다.
<!-- Do not do this! -->
<input type="checkbox" checked aria-checked="false">
ARIA를 사용하여 HTML 기능이 보조 기술 사용자에게 노출되는 방식을 변경할 수 있지만 이러한 수정으로 인해 HTML의 기본 구문 분석 및 허용되는 콘텐츠 모델이 변경되지는 않다. 예를 들어 div
를 사용하면 저작자가 이에 대한 역할을 지정할 수 있다. 그러나 이는 HTML이 해당 요소에 대해 정의한 규칙에서 벗어나는 방식으로 해당 요소를 사용할 수 있다는 의미는 아닙니다.
예를 들어, 다음 예에서는 저작자가 div
요소에 대한 link
역할을 지정했다. HTML에서는 하이퍼링크(role=link
로 노출됨)가 p
요소의 하위 항목이 되도록 허용하지만 HTML 파서는 div
가 요소 p
의 하위 항목이 되는 것을 허용하지 않다.
<!-- Do not do this! -->
<p>
... <div role=link tabindex=0>...</div> ...
</p>
HTML 파서는 위의 마크업을 수정하여 다음과 같이 출력한다.
<!-- The previous example's markup will render as follows -->
<p>...</p>
<div role=link tabindex=0>...</div>
...
<p>
</p>
<!-- Instead of a div, use a span. Spans are allowed descendants of p elements! -->
<p>
... <span role=link tabindex=0>...</span> ...
</p>
이 명세는 각 HTML 요소에 지정할 수 있는 허용된 ARIA 속성을 나타내지만, 이 예에서는 역할이 허용되더라도 역할이 사용되는 맥락으로 인해 잠재적인 렌더링 및 접근성 문제가 발생할 수 있음을 보여준다.
다음 표는 HTML 문서에서 ARIA 마크업을 사용하기 위한 규범적인 요소별 문서 적합성 요구 사항을 제공한다. 또한 HTML 요소에 적용되는 암묵적 ARIA 의미를 식별한다 . 이러한 요소의 암묵적 ARIA 의미는 HTML AAM에 정의되어 있다.
첫 번째 열의 셀에 있는 각 언어 기능(요소)은 동일한 행의 두 번째 열에 있는 셀에 제공된 ARIA 의미(역할, 상태 및 속성)를 의미한다.
각 행의 세 번째 셀은 저작자가 요소에 지정할 수 있는 ARIA role
값과 aria-*
속성을 정의한다.
세 번째 열의 셀에 모든 role
이라는 용어가 포함되어 있으면 모든 role
값이 요소에 사용될 수 있음을 나타냅니다.
그러나 저작자가 요소의 암묵적 역할, generic
역할 또는 이러한 요소에 대해 ARIA에서 더 이상 사용되지 않는 역할을 지정하는 것은 권장되지 않다.
세 번째 열의 셀에 role
없음이라는 용어가 포함되어 있으면 저작자가 암묵적 ARIA 의미 체계 또는 HTML 요소의 기본 의미 체계를 덮어쓰면 안 된다는 것을 나타냅니다.
WAI-ARIA는 금지된 상태와 속성을 가진 역할을 식별한다 . 이러한 역할은 저작자가 특정 WAI-ARIA 속성을 지정하는 것을 허용하지 않다. 이러한 암묵적 WAI-ARIA 역할을 노출하는 HTML 요소는 저작자가 이러한 WAI-ARIA 속성을 지정하는 것을 금지한다.
명명 금지로 식별된 요소는 요소가 저작자의 이름 지정을 허용하는 명시적인 WAI-ARIA 역할로 암묵적 역할을 덮어쓰는 것을 허용하지 않는 한 저작자가 aria-label
또는 aria-labelledby
속성을 지정해서는 안 되는 요소 이다. 자세한 내용은 다음을 참조하라. 4.1 요소 이름을 지정하기 위해 ARIA 속성을 사용하기 위한 요구 사항.
암묵적 ARIA 의미와 일치하는 ARIA role
및/또는 aria-*
속성을 설정하는 것은 권장되지 않지만 일부 상황에서는 이러한 속성을 명시적으로 설정하는 것이 도움이 될 수 있다. 예를 들어 특정 요소에 대한 암묵적 ARIA 의미 체계를 노출하지 않는 사용자 에이전트의 경우이다.
다음 표에 설명된 대로 Digital Publishing WAI-ARIA Module 1.0 role
값을 사용하도록 준수하지만 보조 기술 사용자에게 이러한 값의 의미를 노출하기 위한 현재 지원은 거의 존재하지 않다.
HTML 요소 |
암묵적 ARIA 의미론 |
ARIA 역할, 상태 및 속성 허용 |
---|---|---|
href 있는 a
|
role=link
|
역할:
DPub 역할:
전역
참고
링크가 "disabled"로 프로그래밍 방식으로 전달되어야하는 경우
href 속성을 삭제한다.
|
href 없는 a
|
role=generic
|
모든
그 외에는 전역 |
abbr
|
해당하는 역할 없음 |
그 외에는 전역 |
address
|
role=group
|
그 외에는 전역 |
href 있는 area
|
role=link
|
전역 |
href 없는 area
|
role=generic
|
역할:
그 외에는 전역 |
article
|
role=article
|
역할:
전역 |
aside
|
role=complementary
|
역할:
DPub 역할:
전역 |
audio
|
해당하는 역할 없음 |
역할:
전역 |
자율 맞춤 요소(autonomous custom element) |
저작자가 정의한 그 외에는 |
그 외에는,
모든
그 외에는 전역 |
b
|
role=generic
|
그 외에는 전역 |
base
|
해당하는 역할 없음 |
|
bdi
|
role=generic
|
그 외에는 전역 |
bdo
|
role=generic
|
그 외에는 전역 |
blockquote
|
role=
|
모든
전역 |
body
|
role=generic
|
그 외에는 |
br
|
해당하는 역할 없음 |
역할:
저작자는 |
button
|
role=button
|
역할:
전역 |
canvas
|
해당하는 역할 없음 |
전역 |
caption
|
role=
|
그 외에는 전역 |
cite
|
해당하는 역할 없음 |
그 외에는 전역 |
code
|
role=
|
그 외에는 전역 |
col
|
해당하는 역할 없음 |
|
colgroup
|
해당하는 역할 없음 |
|
data
|
role=generic
|
그 외에는 전역 |
datalist
|
role=listbox
|
|
dd
|
해당하는 역할 없음 |
전역 |
del
|
role=
|
그 외에는 전역 |
details
|
role=group
|
전역 |
dfn
|
role=term
|
전역 |
dialog
|
role=dialog
|
역할:
전역 |
div
|
role=generic
|
그 외에는 전역 |
dl
|
해당하는 역할 없음 |
역할:
전역 |
dt
|
해당하는 역할 없음 |
역할:
전역 |
em
|
role=
|
모든
그 외에는 전역 |
embed
|
해당하는 역할 없음 |
역할:
전역 |
fieldset
|
role=group
|
역할:
전역 |
figcaption
|
해당하는 역할 없음 |
역할:
그 외에는 전역 |
figure
|
role=figure
|
그 외에는
전역 |
footer
|
그 외에는 |
역할:
DPub 역할:
그 외에는 전역 |
form
|
|
Roles:
전역 참고
액세스 가능한 이름 이 제공되지 않는 한 랜드 마크 |
양식 관련 맞춤 요소(form-associated custom element) |
저작자가 정의한
그 외에는 |
그 외에는 양식 관련 역할:
그 외에는 전역 |
h1 ‐ h6
|
role=heading , aria-level =요소 태그의 숫자
|
역할:
DPub 역할:
전역 |
head
|
해당하는 역할 없음 |
|
header
|
그 외에는 |
역할:
그 외에는 전역 |
hgroup
|
role=group
|
그 외에는 전역 |
hr
|
role=separator
|
역할:
DPub 역할: 전역 |
html
|
role=document
|
|
i
|
role=generic
|
그 외에는 전역 |
iframe
|
해당하는 역할 없음 |
역할:
전역 |
접근 가능한 이름이 있는
img .
|
img 가 비어있지 않은 alt (alt="some text" )를 가지거나 접근 가능한 이름이 다른 img 명명 방법으로 제공되는 경우:role=img
|
역할:
DPub 역할:
전역 |
접근 가능한 이름이 없는 img .
|
|
그 외에는, |
input type=button
|
role=button
|
역할:
전역 |
input type=checkbox
|
role=checkbox
|
역할: 저작자는
그 외에는,
전역 참고
HTML |
input type=color
|
해당하는 역할 없음 |
전역 |
input type=date
|
해당하는 역할 없음 |
전역 |
input type=datetime-local
|
해당하는 역할 없음 |
전역 |
list 속성 없는 input=email
|
role=textbox
|
전역 |
input type=file
|
해당하는 역할 없음 |
전역 |
해당하는 역할 없음 |
|
|
input type=image
|
role=button
|
역할:
전역 |
input type=month
|
해당하는 역할 없음 |
전역 |
input type=number
|
role=spinbutton
|
전역 |
input type=password
|
해당하는 역할 없음 |
전역 |
input type=radio
|
role=radio
|
역할:
저작자는 그 외에는,
전역 참고
HTML |
input type=range
|
role=slider
|
저작자는 그 외에는 전역 |
input type=reset
|
role=button
|
|
list 속성 없음input type=search
|
role=searchbox
|
전역 |
input type=submit
|
role=button
|
|
list 속성 없는 input type=tel
|
role=textbox
|
전역 |
list 속성이 없는 input type=text 또는 유효하지 않은 type 사용 또는 누락
|
role=textbox
|
역할 :
전역 |
list 속성이 있고, 유효하지 않은 type 을 사용하거나 누락한 input type=text , search , tel , url , email
|
role=combobox
|
저작자는 지정된 그 외에는 전역 |
input type=time
|
해당하는 역할 없음 |
전역 |
list 속성 없는 input type=url
|
role=textbox
|
textbox 이외의
전역 |
input type=week
|
해당하는 역할 없음 |
전역 |
ins
|
role=
|
모든
그 외에는 전역 |
kbd
|
해당하는 역할 없음 |
그 외에는 전역 |
label
|
해당하는 역할 없음 |
그 외에는 전역 |
legend
|
해당하는 역할 없음 |
그 외에는 전역 |
li
|
그 외에는 |
부모의 리스트 요소가 암묵적 또는 명시적인 그 외에, 부모의 목록 요소가 암시 적 또는 명시적인 역할을
전역 저작자는 사용되지 않는 DPub 역할 |
link
|
해당하는 역할 없음 |
|
main
|
role=main
|
전역 |
map
|
해당하는 역할 없음 |
|
mark
|
해당하는 역할 없음 |
그 외에는 전역 |
math
|
role=math
|
전역 |
menu
|
role=list
|
역할:
전역 |
meta
|
해당하는 역할 없음 |
|
meter
|
role=
|
저작자는
그 외에는, 전역 |
nav
|
role=navigation
|
역할:
DPub 역할:
전역 |
noscript
|
해당하는 역할 없음 |
|
object
|
해당하는 역할 없음 |
역할:
전역 |
ol
|
role=list
|
역할:
전역
저작자는 더 이상 사용되지 않는 |
optgroup
|
role=group
|
전역 |
옵션 목록에 있거나 datalist 요소에서 제안을 표시하는 option 요소
|
role=option
|
저작자는
전역 |
output
|
role=status
|
전역 |
p
|
role=
|
모든
그 외에는 전역 |
param
|
해당하는 역할 없음 |
|
picture
|
해당하는 역할 없음 |
저작자는 |
pre
|
role=generic
|
그 외에는 전역 |
progress
|
role=progressbar
|
저작자는 그 외에는 전역 속성 |
q
|
role=generic
|
그 외에는 전역 |
rp
|
해당하는 역할 없음 |
전역 |
rt
|
해당하는 역할 없음 |
그 외에는 전역 |
ruby
|
해당하는 역할 없음 |
전역 |
s
|
role=
|
모든
그 외에는 전역 |
samp
|
role=generic
|
그 외에는 전역 |
script
|
해당하는 역할 없음 |
|
search
|
|
역할:
전역 |
section
|
그 외에는 |
역할:
DPub 역할:
전역 |
select (multiple 속성이나 1 보다 큰 값을 가진 size 속성 없음)
|
role=combobox
|
역할:
저작자는 그 외에는 전역 |
select (multiple 속성 또는 1 보다 큰 값을 가진 size 속성이 있음)
|
role=listbox
|
저작자는 그 외에는 전역 |
slot
|
해당하는 역할 없음 |
|
small
|
role=generic
|
그 외에는 전역 |
source
|
해당하는 역할 없음 |
|
span
|
role=generic
|
그 외에는 전역 |
strong
|
role=
|
그 외에는 전역 |
style
|
해당하는 역할 없음 |
|
sub
|
role=
|
모든
그 외에는 전역 |
summary
|
참고 전부는 아니지만, 많은 유저 에이전트는, 암묵적인 ARIA role=button 과 함께 summary 요소를 공개한다. |
전역 그 외에는, 저작자는 모든 |
sup
|
role=superscript
|
모든
그 외에는 전역 |
SVG
|
SVG AAM에 정의된 role=graphics-document
|
모든
전역 |
table
|
role=table
|
전역 |
tbody
|
role=rowgroup
|
모든
전역 |
td
|
조상 조상 조상 |
조상
그 외에는, 조상
전역 |
template
|
해당하는 역할 없음 |
|
textarea
|
role=textbox
|
전역 |
tfoot
|
role=rowgroup
|
모든
전역 |
th
|
조상 조상 조상 |
조상
그 외에 조상
전역 |
thead
|
role=rowgroup
|
모든
전역 |
time
|
role=time
|
그 외에는 전역 |
title
|
해당하는 역할 없음 |
|
tr
|
role=row
|
조상
전역 |
track
|
해당하는 역할 없음 |
|
u
|
role=generic
|
그 외에는 전역 |
ul
|
role=list
|
역할:
전역 저작자는 더 이상 사용되지 않는 |
var
|
해당하는 역할 없음 |
그 외에는 전역 |
video
|
해당하는 역할 없음 |
역할:
전역 |
wbr
|
해당하는 역할 없음 |
역할:
저작자는 |
테이블의 두 번째 열에 해당하는 역할 없음이 표시되는 요소는 암묵적 ARIA 의미를 갖지 않지만 의미를 가지고 있으며 이 의미는 ARIA에서 제공되지 않는 역할, 상태 및 속성으로 표현될 수 있고 접근성 API를 통해 보조 기술 사용자에게 노출될 수 있다. 따라서 저작자는 나열된 요소의 의미론을 무시하기보다는 div
또는 span
과 같은 의미론적으로 중립적인 요소에 role
속성을 추가하는 것이 좋다.
여기에 제공된 것 외에도 HTML에서 ARIA 사용에 대한 지침으로 다음 문서의 사용을 저작자에게 권장한다.
저작자는 이름을 지정할 수 있는 암묵적 또는 명시적 ARIA 역할을 가진 요소에 대한 접근 가능한 이름을 지정하기 위해 aria-label
과 aria-labelledby
속성을 사용할 수 있다. Accessible Rich Internet Applications (WAI-ARIA) 1.2 는 저작자의 명명이 허용되는 역할과 금지되는 역할을 정의한다.
저작자는 저작자로부터 명명이 금지된 암묵적 WAI-ARIA 역할을 가진 요소에 aria-label
또는 aria-labelledby
를 지정해서는 안 된다. 저작자로부터 명명이 금지된 암묵적 WAI-ARIA 역할을 가진 HTML 요소는 4. HTML에서 ARIA 속성 사용을 위한 문서 준수 요구사항에 식별되어 있다.
다음 마크업 예제는 저작자로부터 명명이 금지된 암묵적 ARIA 역할을 가진 HTML 요소 선택 항목을 보여준다.
<!-- DO NOT do the following! -->
<p aria-label="...">...</p>
<span aria-label="...">...<span>
<code aria-label="...">...<code>
<div aria-labelledby="...">...</div>
다음 마크업의 예는 저작자의 명명을 허용하는 명시적 WAI-ARIA 역할을 가진 요소를 보여준다. 이 성분에 명시된 명시적인 역할 때문에, 그리고 aria-label
, aria-labelledby
속성은 허용된다.
<p role="link" tabindex="0" aria-label="...">...</p>
<span role="button" tabindex="0" aria-label="...">...<span>
<div role="article" aria-labelledby="...">...</div>
달리 명시되지 않는 한, 저작자는 aria-*
의미가 예상되는 HTML 요소에서 동등한 HTML 대신 aria-*
속성을 사용할 수 있다. 예를 들어, 저작자는 button
요소에 aria-disabled=true
를 지정할 수 있다 . 동시에 disabled
속성을 사용하는 대신 button
을 기능적으로 비활성화하는 데 필요한 스크립트를 구현할 수 있다.
WAI-ARIA의 호스트 언어 의미론과의 충돌 에서 언급했듯이 HTML 요소가 aria-*
속성과 해당 호스트 언어 (HTML)를 둘 다 사용하는 경우 사용자 에이전트는 (동일한 암묵적 ARIA 의미를 가진 원시 HTML 속성 우선) WAI-ARIA 속성을 무시해야 한다. 따라서 저작자는 요소에 기본 HTML 속성과 동등한 aria-*
속성을 모두 지정해서는 안된다. 저작자별 요구사항에 대해서는 각 속성을 확인한다.
다음 표는 동등한 aria-*
속성을 가진 HTML 요소와 그 속성을 나타냅니다.
첫 번째 열의 셀에서 각 언어 기능(요소 및 속성)은 동일한 행의 두 번째 열의 셀에서 제공되는 ARIA 의미(역할, 상태 및 속성)를 의미한다. 각 행의 세 번째 열의 셀은 저작자가 기본 HTML 기능을 사용하는 방법과 동일한 암묵적 ARIA 의미를 제공하는 aria-*
속성을 사용하기 위한 요구 사항을 정의한다.
HTML 기능 |
암묵적 ARIA 의미 |
HTML 기능 및 aria-* 속성 저작자 지침 |
---|---|---|
checked 속성이 허용되는 모든 요소
|
aria-checked="true"
|
HTML에서
저작자는 요소의 체크 상태 또는 체크 불확정 값이 현재 저작자는 속성을 허용하는 WAI-ARIA 역할을 가진 다른 요소에서 |
option disabled 및 optgroup disabled 를 포함하여 disabled 속성이 허용되는 모든 요소
|
aria-disabled="true"
|
HTML에서
저작자는 HTML에서
저작자는
저작자는 |
placeholder 속성이 허용되는 모든 요소
|
aria-placeholder="..."
|
HTML에서
저작자는 HTML에서
저작자는 |
max 속성이 허용되는 모든 요소: meter max , progress max , input max
|
aria-valuemax="..."
|
HTML에서 저작자는 저작자는 저작자는 |
min 속성이 허용되는 모든 요소: meter min , input min
|
aria-valuemin="..."
|
HTML에서
저작자는
저작자는 저작자는 |
readonly 속성을 허용하는 모든 요소 : input readonly , textarea readonly , readonly 가 허용되는 양식 관련 맞춤 요소
|
aria-readonly="true"
|
HTML에서 저작자는 해당 속성을 허용하는 WAI-ARIA 역할을 가진 모든 요소에서 저작자는 저작자는 |
참고
이것은 |
aria-readonly="false"
|
저작자는 isContentEditable="true" 을 가진 요소를 aria-readonly="true" 로 설정 해서는 안된다. |
required 속성이 허용되는 모든 요소 input required , textarea required , select required
|
aria-required="true"
|
HTML에서 저작자는 HTML에서 저작자는 저작자는 |
colspan 속성이 허용되는 모든 요소: td 및th
|
aria-colspan="..."
|
HTML에서 저작자는 저작자는 |
rowspan 속성이 허용되는 모든 요소: td 및th
|
aria-rowspan="..."
|
HTML에서 저작자는 저작자는 |
ARIA 명세의 사용되지 않는 요구 사항(Deprecated Requirements) 섹션은 ARIA 기능이 비추천(Deprecated, 사용되지 않는)으로 표시되는 경우 저작자는 새로운 콘텐츠에 해당 기능을 사용하지 않을 것을 조언한다.
다음 역할과 속성은 ARIA 및 DPub ARIA의 비추천 기능이다. 적합성 검사기는 이러한 기능의 비추천 상태에 대해 저작자에게 경고해야 한다. 가능한 경우 언제든지 저작자는 사용되지 않는 기능을 대체하는 것을 사용하도록 조언한다.
directory
역할은 WAI-ARIA 1.2에서 사용되지 않는 것으로 표시된다. 사실, directory
역할은 암묵적 또는 명시적인 역할을 가진 list
와 기능적 차이가 없었다. 저작자는 HTML의 기본 목록 요소 중 하나 또는 대신 ARIA list
를 사용하도록 조언한다.
doc-biblioentry
및 doc-endnote
역할은 list
의 암묵적 또는 명시적 역할을 가진 요소의 합리적인 자식이 아니므로 Digital Publishing WAI-ARIA Module 1.1에서 사용되지 않는 것으로 표시된다. 저작자는 이러한 역할을 필요로하지 않고 표준 목록과 자식 li
요소를 사용할 수 있다.
aria-dropeffect
및 aria-grabbed
속성은 WAI-ARIA 1.1 에서 더 이상 사용되지 않았다. 현재 ARIA에는 제안 된 기능을 대체하는 기능이 없다.
저작자는 모든 role
토큰 값과 값이 토큰으로 정의되는 상태 또는 속성(aria-*)에 ASCII 소문자를 사용해야 한다.
현대 브라우저는 role
이나 aria-*
속성 값을 ASCII 대소문자를 동일하게(case-insensitive) 취급하지만 모든 지원 기술이 이러한 값을 올바르게 파싱하지는 않다.
상호 운용성 문제를 감소시키기 위하여, 저작자는 aria-*
및 role
속성 값을 위해 ASCII 소문자를 이용하는 것을 적극 추천한다. 또한 저작자는 콘텐츠가 사용자에게 올바르게 게시되는지 확인하기 위해 다른 브라우저와 보조 기술의 조합으로 엄격하게 테스트하는 것이 좋다.
이 절은 비규범적이다.
다음 표는 콘텐츠 유형과 허용되는 자손 정보 ([HTML] 명세의 정의)를 동등한 role
을 갖는 요소로 매핑 (및 확장)한다.
첫 번째 열은 각 ARIA role
의 규범적 Accessible Rich Internet Applications (WAI-ARIA) 1.2 정의에 연결된다. 두 번째 열은 HTML 요소에서 사용할 때 각 role
이 가지는 콘텐츠의 유형 범주를 나타냅니다. 세 번째 열은 종종 암묵적 역할이 동일한 HTML 요소와 일치하는 명시적 role
요소의 자손이 될 수있는 HTML 요소의 유형을 나타냅니다.
예를 들어, button
요소에는 암묵적 role=button
이 있다. HTML에서 button
요소는 자손으로 구문 콘텐츠를 허용하지만, 대화형 콘텐츠나 tabindex
속성이 있는 자손은 허용하지 않다. 따라서 role=button
으로 지정된 모든 요소도 동일한 자손 제한을 따르며, 대화형 콘텐츠 자손, tabindex
가 지정된 요소, 또는 대화형 콘텐츠 범주(3열에 식별됨)에 속하는 역할 값을 가진 요소를 허용하지 않다.
<!-- conformance checkers will report an error -->
<button>
<div role="button">...</div>
</button>
<div role="button">
<button>...</button>
</div>
<div role="link">
<textarea>...</textarea>
</div>
또한 Accessible Rich Internet Applications (WAI-ARIA) 1.2가 허용 된 자손에게 특정 요구 사항을 지정하는 특정 역할이 있다. 이들은 이러한 특정 역할에 대해 "'필수 소유 요소'를 참조한다"는 것을 표시함으로써 열 3 (자손 허용)에서 식별된다.
역할 | 콘텐츠 유형 | 자손 허용 |
---|---|---|
alert |
유동 콘텐츠 | 유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. |
alertdialog |
유동 콘텐츠 | 유동 콘텐츠 |
application |
유동 콘텐츠 | 유동 콘텐츠 |
article |
유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. | |
banner |
유동 콘텐츠 , 그러나 main , header 또는 footer 요소의 자손을 제외한다. | |
blockquote |
유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. | |
button |
구문 콘텐츠 , 그러나 대화형 콘텐츠 의 자손 및 tabindex 속성이 지정된 자손을 제외한다. |
|
caption |
N/A | 유동 콘텐츠 , 그러나 메인 또는 테이블 요소의 자손을 제외한다. |
cell |
N/A | 유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. |
checkbox |
구문 콘텐츠 , 그러나 대화형 콘텐츠 의 자손 및 tabindex 속성이 지정된 자손을 제외한다. |
|
code |
구문 콘텐츠 | |
columnheader |
N/A | 유동 콘텐츠 , 그러나 main , header 또는 footer 요소의 자손을 제외한다. |
combobox |
유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. | |
complementary |
유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. | |
contentinfo |
유동 콘텐츠 , 그러나 main , header 또는 footer 요소의 자손을 제외한다. | |
definition |
구문 콘텐츠 | |
deletion |
구문 콘텐츠 | |
dialog |
유동 콘텐츠 | 유동 콘텐츠 |
directory |
유동 콘텐츠 | 유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. |
document |
유동 콘텐츠 | 유동 콘텐츠 |
emphasis |
구문 콘텐츠 | |
feed |
유동 콘텐츠 | 유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. |
figure |
유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. | |
form |
유동 콘텐츠 , 그러나 form 요소의 자손을 제외한다. |
|
generic |
유동 콘텐츠 | |
grid |
ARIA grid 역할에 정의 된 "필수 소유 요소"를 참조하십시오. |
|
gridcell |
인터랙티브 콘텐츠 | 유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. |
group |
유동 콘텐츠 | |
heading |
구문 콘텐츠 | |
img |
구문 콘텐츠 , 그러나 인터랙티브 콘텐츠 의 자손을 제외한다. | |
insertion |
구문 콘텐츠 | |
link |
플로우 컨텐츠 , 인터랙티브 컨텐츠 가 존재하지 않고, tabindex 속성이 지정된 자손을 제외한다. |
|
list |
유동 콘텐츠 | ARIA list 역할에 정의 된 "필수 소유 요소"를 참조하십시오. |
listbox |
ARIA listbox 역할에 정의 된 "필수 소유 요소"를 참조하십시오. |
|
listitem |
N/A | 유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. |
log |
유동 콘텐츠 | 유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. |
main |
유동 콘텐츠 | 유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. |
marquee |
유동 콘텐츠 | 유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. |
math |
유동 콘텐츠 | 유동 콘텐츠 |
menu |
ARIA treegrid 역할에 정의 된 "필수 소유 요소"를 참조하십시오. |
|
menubar |
ARIA menubar 역할에 정의 된 "필수 소유 요소"를 참조하십시오. |
|
menuitem |
인터랙티브 콘텐츠 | 구문 콘텐츠 , 그러나 대화형 콘텐츠 의 자손 및 tabindex 속성이 지정된 자손을 제외한다. |
menuitemcheckbox |
인터랙티브 콘텐츠 | 구문 콘텐츠 , 그러나 대화형 콘텐츠 의 자손 및 tabindex 속성이 지정된 자손을 제외한다. |
menuitemradio |
인터랙티브 콘텐츠 | 구문 콘텐츠 , 그러나 대화형 콘텐츠 의 자손 및 tabindex 속성이 지정된 자손을 제외한다. |
meter |
유동 콘텐츠 , 그러나 meter 요소의 자손을 제외한다. | |
navigation |
유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. | |
none |
N/A | 투명한 |
note |
유동 콘텐츠 | 유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. |
option |
인터랙티브 콘텐츠 | 구문 콘텐츠 , 그러나 대화형 콘텐츠 의 자손 및 tabindex 속성이 지정된 자손을 제외한다. |
paragraph |
구문 콘텐츠 | |
presentation |
N/A | 투명한 |
progressbar |
유동 콘텐츠 , 그러나 progresss 요소의 자손을 제외한다. | |
radio |
구문 콘텐츠 , 그러나 대화형 콘텐츠 의 자손 및 tabindex 속성이 지정된 자손을 제외한다. |
|
radiogroup |
유동 콘텐츠 | |
region |
유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. | |
row |
N/A | ARIA row 역할에 정의 된 "필수 소유 요소"를 참조하십시오. |
rowgroup |
N/A | ARIA rowgroup 역할에 정의 된 "필수 소유 요소"를 참조하십시오. |
rowheader |
N/A | 유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. |
scrollbar |
인터랙티브 콘텐츠 | 구문 콘텐츠 |
search |
유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. | |
searchbox |
유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. | |
separator |
대화형 콘텐츠 (포커스 가능한 경우). | 구문 콘텐츠 |
slider |
구문 콘텐츠 | |
spinbutton |
유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. | |
status |
유동 콘텐츠 | 유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. |
strong |
구문 콘텐츠 | |
subscript |
구문 콘텐츠 | |
superscript |
구문 콘텐츠 | |
switch |
구문 콘텐츠 , 그러나 대화형 콘텐츠 의 자손 및 tabindex 속성이 지정된 자손을 제외한다. |
|
tab |
인터랙티브 콘텐츠 | 구문 콘텐츠 , 그러나 대화형 콘텐츠 의 자손 및 tabindex 속성이 지정된 자손을 제외한다. |
table |
ARIA table 역할에 정의 된 "필수 소유 요소"를 참조하십시오. |
|
tablist |
ARIA tablist 역할에 정의 된 "필수 소유 요소"를 참조하십시오. |
|
tabpanel |
유동 콘텐츠 | 유동 콘텐츠 |
term |
구문 콘텐츠 | 구문 콘텐츠 |
textbox |
인터랙티브 콘텐츠 | 유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. |
time |
구문 콘텐츠 | |
timer |
유동 콘텐츠 | 유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. |
toolbar |
유동 콘텐츠 | 유동 콘텐츠 , 그러나 main 요소의 자손을 제외한다. |
tooltip |
유동 콘텐츠 | 구문 콘텐츠 |
tree |
유동 콘텐츠 | ARIA tree 역할에 정의 된 "필수 소유 요소"를 참조하십시오. |
treegrid |
유동 콘텐츠 | ARIA treegrid 역할에 정의 된 "필수 소유 요소"를 참조하십시오. |
treeitem |
인터랙티브 콘텐츠 | 구문 콘텐츠 |
비규범적인 것으로 표시된 섹션뿐만 아니라 이 명세의 모든 제작 지침, 다이어그램, 예 및 참고도 비규범적이다. 이 명세의 다른 모든 것은 규범적이다.
이 문서의 키워드 MAY(할 수 있다), MUST(해야 한다), MUST NOT(하면 안된다), NOT RECOMMENDED(권장되지 않는다), SHOULD(해야한다), SHOULD NOT(하면 안된다) 은 여기에 표시된 것처럼 모두 대문자로 표시되는 경우에만 BCP 14 [ RFC2119 ] [ RFC8174 ] 설명 된대로 해석 된다.
HTML 문서에서 ARIA 검사를 지원한다고 주장하는 준수성 검사기는 이 명세에 정의된 대로 HTML 요소에서 ARIA role
및 aria-*
속성 사용에 대한 준수 요구사항에 대한 검사를 구현해야 한다.
준수 문서에는 이 명세에 따라 저작자가 4. HTML에서 ARIA 속성 사용을 위한 문서 준수 요구사항에서 각 HTML 요소에 사용할 수 있는 값 이외의 저작자 정의 role
또는 aria-*
속성 값을 가진 요소가 포함되어서는 안 된다. 준수 검사기는 저작자가 암묵적 ARIA 의미론과 일치하는 role
을 명시적으로 제공하는 경우 실패로 표시해야 하며, 저작자가 이러한 역할을 명시적으로 설정하는 것은 권장되지 않기 때문이다.
준수 검사기는 이 명세를 준수하지 않는 문서 오류를 표면화할 때 자체 용어 및 심각도 수준을 정의할 수 있다.
이 절은 비규범적이다.
이 명세는 [wai-aria-1.2], [dpub-aria-1.0] 또는 [HTML]의 기능을 정의하지 않다. 오히려 HTML에서 ARIA를 확인하는 지원을 주장하는 적합성 검사기에 대한 규칙과 지침을 제공하고 저작자에게 지침을 제공한다.
따라서, 이 명세는 잠재적인 우려를 초래하는 새로운 기능을 정의하지 않기 때문에, 개인 정보 또는 보안에 미치는 영향은 알려져 있지 않다.
참조 항목:
Referenced in:
Referenced in:
Referenced in: