인식의 용이성은 사용자가 장애 유무 등에 관계없이 웹 사이트에서 제공하는 모든 콘텐츠를 동등하게 인식할 수 있도록 콘텐츠를 제공하는 것을 의미한다.
<img>
태그를 사용하는 경우, alt
속성을 사용하여 짧은 대체 텍스트를 제공한다. 의미하는 바를 대체 텍스트로 충분한 설명이 불가능할 경우 추가적인 설명을 제공해야 한다.<p><img src="chart.gif" alt="중앙기관 웹 접근성 조사결과"/></p>
<p>2008년도 중앙기관의 웹 접근성 조사결과에 따르면 ... <p>
<img src="chart.gif" alt="중앙기관 웹 접근성 조사결과" longdesc="dest_chart.html" />
<img>
태그의 longdesc 속성은 이미지에 대한 부가적인 설명을 제공하는 URL을 명시합니다.
longdesc 속성은 html5에서는 사용하지 않는다!
<area>
태그별로 alt
속성을 이용하여 해당 영역의 용도나 목적을 대체 텍스트로 제공한다.alt=""
)으로 제공해야 한다.복잡한 구조의 콘텐츠를 가지는 이미지의 경우, 해당 이미지를 배경처리하여 보여주고 이미지와 동일한 내용의 html 콘텐츠을 삽입한 뒤 숨김처리하는 IR(Image Replacement) 기법을 활용 할 수 있다.
#content1 {background:url('content.jpg') no-repeat;}
.hidden {visibility:hidden;position:absolute;}
이미지에 alt 값을 넣는 것에 비해 복잡한 구조의 콘텐츠를 제공할 수 있어 스크린리더기에 대해 효과적으로 접근성을 확보할 수 있으나, 약시자를 위한 고대비모드 환경에서는 배경이미지가 단색으로 처리되어 배경 이미지와 텍스트 양쪽 모두를 볼 수 없게 되는 취약점이 있다.
<a
href="#"
onmouseover="process('true', 'on');"
onmouseout="process('false','off');"
onfocus="process('true', 'on');"
onblur="process('false', 'off');">
</a>
a
, area
, button
, input
, select
, textarea
요소에는 키보드 포커싱이 가능해야 한다.tabindex="0"
속성을 제공하거나 textarea
요소로 변경하여 해당 영역을 키보드 방향키로 스크롤할 수 있게 한다.title
, h1
)iframe
태그 사용 시에는 해당 내용을 의미하는 title
속성을 지정해 주어야 한다.<iframe title="빈 프레임"></iframe>
이해의 용이성은 사용자가 장애 유무 등에 관계없이 웹 사이트에서 제공하는 콘텐츠를 이해할 수 있도록 제공하는 것을 의미한다.
title="새창으로 열림"
값을 제공하여야 한다. (target="_blank" 를 제공하는 경우 생략 가능)<a href="guide.html" onclick="window.open(this.href,'new','width=300,height=300');" title="새창으로 열림">우편번호 찾기</a>
<table>
태그 사용 시, 테이블의 내용을 이해할 수 있도록 <caption>
태그를 제공해야 한다. (테이블 앞에 명확한 제목 요소가 있을 경우 생략 가능)<table>
<caption>한국의 월별 강수랑</caption>
HTML5 이전에는 table에 summary 속성을 사용하여 요약 정보를 제공했으나, W3C에서는 모든사람이 유용한 정보를 얻을 수 있도록 summary 속성으로 제공할 내용을 caption에 포함하거나, table 요소 이전 화면에 출력하는 방식으로 제공하는 것을 권장하고 있습니다.
가로, 세로 헤더가 있는 2차원 표에는 scope
속성을 제공하여야 한다.
<th>
태그의scope
속성은 해당 헤더 셀이 관련되는 셀의 종류를 명시합니다. (col, row, colgroup, rowgroup)
테이블에서 대응하는 제목셀이 여러 개인 내용 셀의 경우(내용 셀이 colspan으로 병합된 경우) 제목 셀에 id
를 지정하고 header
속성 으로 연결한다.
<!--1행 1열이 헤더인 테이블-->
<tr>
<th>구분</th>
<th scope="col" id="gold">골드</th>
<th scope="col" id="top">프리미엄</th>
<th scope="col" id="vip">VIP</th>
</tr>
<tr>
<th scope="row" id="fare">일반요금</th>
<td headers="gold fare">20,900원</td>
<td headers="top fare">31,100원</td>
<td headers="vip fare">34,200원</td>
</tr>
<tr>
<th scope="row" id="child">아동요금</th>
<td colspan="3" headers="gold top vip child">초등학생까지 일반 요금의 50%</td>
</tr>
scope="colgroup"
, 세로로 병합된 경우 scope="rowgroup"
속성을 지정한다.<tr>
<th id="weekday" scope="col" rowspan="2">평일</th>
<th id="normal" scope="col" rowspan="2">정상요금</th>
<th id="member" scope="colgroup" colspan="3">회원요금</th>
</tr>
<!doctype html>
<html lang="ko">
<head>
<label>
태그를 붙여줌으로써 양식을 쉽게 사용할 수 있어야 한다. <label for="uid">아이디</label> <input type="text" id="uid" />
<label for="upw">비밀번호</label> <input type="password" id="upw" />
대응하는 텍스트가 없을 시, title
속성을 이용하여 설명을 제공할 수 있다.
<input type="text" title="주민등록번호 앞자리" /> - <input type="password" title="주민등록번호 뒷자리" />