WAI-ARIA란?
WAI-ARIA(웹 접근성 이니셔티브 - Web Accessibility Initiative - Accessible Rich Internet Applications)는 웹 페이지 및 웹 애플리케이션의 접근성을 향상시키기 위한 명세이다. 주로 JavaScript를 사용하여 동적으로 업데이트되는 웹 애플리케이션과 웹 컨텐츠에 적용되는데, WAI-ARIA는 장애를 가진 사용자들이 웹 콘텐츠와 애플리케이션을 더 잘 이해하고 상호 작용할 수 있도록 돕기 위해 추가적인 정보를 제공한다.
WAI-ARIA는 세 가지 주요 역할(Role), 속성(Property), 상태(State)로 구성되어 있다.
1. 역할(Role):
WAI-ARIA 역할은 특정 요소가 수행하는 역할을 설명한다. 몇 가지 흔한 WAI-ARIA 역할에 대한 예시는 다음과 같다:
button (버튼):
<div role="button" tabindex="0" onclick="handleClick()">Click me</div>
link (링크):
<div role="link" tabindex="0" onclick="navigateToURL()">Visit our website</div>
menu (메뉴):
<ul role="menu">
<li role="menuitem">Item 1</li>
<li role="menuitem">Item 2</li>
<li role="menuitem">Item 3</li>
</ul>
2.속성(Property):
WAI-ARIA 속성은 특정 역할을 가진 요소에 대한 추가 정보를 제공한다.
aria-label (레이블):
<button aria-label="Close" onclick="closeDialog()">X</button>
aria-describedby (설명):
<input type="text" id="username" aria-describedby="username-info">
<div id="username-info">Please enter your username</div>
3. 상태(State):
WAI-ARIA 상태는 특정 역할을 가진 요소의 현재 상태를 나타낸다.
aria-checked (체크 상태):
<input type="checkbox" aria-checked="true" onchange="handleChange()">Checked</input>
aria-expanded (확장 상태):
<div role="button" aria-expanded="false" onclick="toggleContent()">Toggle content</div>
이러한 WAI-ARIA 속성은 화면 판독기와 같은 보조 기술을 사용하는 사용자들에게 웹 애플리케이션의 의미와 상태를 전달하는 데 도움이 되지만, 주의해야 할 점은 WAI-ARIA를 사용할 때에는 기본 HTML 요소와 구조를 최대한 활용하고, WAI-ARIA를 보조 수단으로 사용해야 한다. 즉, 가능한 한 네이티브 HTML 태그 및 속성을 활용하여 접근성을 확보하는 것이 좋다.