WAI-ARIA
WAI-ARIA 재생목록 : http://bit.ly/wai_aria
WAI-ARIA 소개
WCAG
WAI(W3C에서 설립한 기구)에서 권하고 있는 웹접근성 지침
시각장애인이나 저시력자, 청각장애인 등 다양한 장애를 가진 사용자들이 보다 접근 가능한 콘텐츠를 제공하는 것을 목표로 두고 있다.
한국형 웹콘텐츠 접근성 지침 (KWCAG)
"웹콘텐츠 접근성 가이드 라인"의 버전이 업테이트 되면서 웹접근성 보장 수준이 좋아지고 있으나 새롭게 등장하는 신기술들을 지원하기에는 아직도 부족한 부분이 많다.
RIA의 동적인 웹 애플리케이션 접근성 보장을 위한 지침이 부족
Ajax를 통한 실시간 변경 콘텐츠를 못 읽을 수 있음
페이지 콘텐츠 중 일부만 변경 시, 동일한 내용을 계속 읽어야 하는 문제 발생
화면 확대 사용자의 경우, 가시 범위 밖의 콘텐츠 변경 내용을 알 수 없음.
ARIA의 목적
WAI-ARIA는 마크업의 역할, 속성, 상태 정보를 추가하여 스크린 리더 및 보조기기 등에서 접근성 및 상호 운용성을 향상시키고 보다 나은 사용자 경험을 제공하기 위함이다.
추가된 정보는 웹브라우저에 의해 자동으로 해석되어 각각의 운영체제의 접근성 API로 변환되도록 설계되었다. 이 때 스크린리더 및 보조기기는 운영체제에서 제공하는 접근성 API를 통해 데스크탑 애플리케이션과 동일한 방법으로 Javascript 컨트롤을 인식하고 상호작용을 하게 된다. 이것이 스크린리더 및 보조기기 사용자가 웹 애플이케이션을 사용할 때 데스크탑 애플리케이션의 동작과 유사하게 인식하고 작동하기 때문에 보다 향상된 사용자 경험을 제공하게 된다.
ARIA의 3가지 기능
역할(Role)
특정 요소(Element)에 역할을 정의하는 것
역할을 부여하여 사용자에게 정보를 제공
부여된 역할은 동적으로 변경할 수 없음
메뉴 정의
의미를 가지지 않는 중립적인 요소인 div를 사용할 때 ARIA의 rloe 속성의 값을 menu로 지정하면 해당 콘텐츠가 메뉴 콘텐츠라는 의미를 부여하게 되며 사용자는 해당 요소의 콘텐츠가 메뉴 정보 영역임을 알게 된다.
경고 대화상자 정의
버튼 정의
버튼 컴포넌트를 제작하기 위해 마우스 사용및 키보드 접근을 위해
<a>
요소를 사용하는 경우가 있다. 하지만 a 요소는 스크린 리더 사용자에게 버튼이 아닌 링크로 전달되어 다른 페이지로 이동할 것이라는 예상을 하게 한다. 이 때 ARIA의 rloe 속성을 추가하면 버튼으로 인식하게 된다.
속성(Properties) & 상태(States)
요소가 기본적으로 갖고 있는 특징이나 상황
속성과 상태는 "aria-*" 접두어를 가진다
상태는 요소의 상황을 나타내므로 애플리케이션이 실행중에 자주 바뀌는 반면, 속성은 상대적으로 바뀌는 경우가 드물다.
속성
필수 항목 속성
사용자는 해당 입력 서식이 필수 항목임을 전달받게 된다.
추가 설명 속성
그룹 레이블 명명
상태
확장되어 있는 상태의 탭패널
오류가 발생한 상태의 입력상자
선택된 상태의 토글버튼
ARIA 사용 규칙
ARIA와 HTML5
ARIA의 역할(role)과 HTML5 섹션 요소를 중복해서 사용하지 않는다.
ARIA의 Role과 HTML5 섹션 관련 요소 비교
<role="application">
동일한 역할의 요소 없음.
주로
<div>
요소와 같이 그룹 역할을 하는 요소로 대체할 수 있다.
<role="banner">
동일한 역할의 요소 없음.
비슷한 의미로
<header>
요소를 사용할 수 있으나<header role="banner">
로 사용하였다면 한 페이지에게 한 개의 요소만 사용하길 권장한다.
<role="navigation">
<nav>
요소.다른 페이지 또는 페이지 내 특정 영역으로 이동하는 링크 콘텐츠 영역으로 주로 메인 메뉴 및 서브 메뉴 등에 사용할 수 있다.
<role="main">
<main>
요소.본문의 주요 콘텐츠 영역으로 한 페이지 내에 1개만 사용이 가능하며,
<article>
,<aside>
,<footer>
요소의 하위 요소로 사용할 수 없다.
<role="aside">
<aside>
요소.주요 콘텐츠와 연관이 적은 의미있는 콘텐츠 영역으로 종종 사이드바로 표현할 수 있다.
<aside>
영역에는 현재 날씨, 관련된 기사 또는 주식 정보등의 부가 콘텐츠를 포함 할 수 있다.
<role="form">
<form>
요소.폼과 관련된 요소의 모임을 표현하는 영역으로 서버에 전송될 수 있는 콘텐츠를 포함 할 수 있다.
<role="search">
동일한 역할의 요소 없음.
검색의 역할을 담당하는 서식 영역임을 의미하며
<div>
또는<form>
요소를 사용하는 것을 권장한다.
<role="contentinfo">
동일한 역할의 요소 없음.
비슷한 의미로
<footer>
요소를 사용할 수 있으나<footer role="contentinfo">
로 사용하였다면 한 페이지에서 한 개의 요소만 사용하길 권장한다.
HTML요소의 기능 변경 제한
키보드 사용 보장
숨김콘텐츠
레이블 제공
유효성 검사
Last updated