해당 게시글은 리베하얀 웹접근성 기초 의 내용을 정리한 것입니다 :)
시각장애인은 이미지 안의 텍스트를 볼 수 없기 때문에 alt=""
속성 안에 따로 텍스트를 입력해준다. 이 때 이미지의 텍스트를 그대로 전달하기보다, 내용의 주요 타이틀도 신경써서 함께 입력해주면 좋다.
<img src="images.png" alt="일시:2022.3.31, 장소:양재미술관">
이미지의 설명이 본문안에 들어 있다면 대체 컨텐츠로 제공한 것으로 인정된다. 예를들어 복지회관 지도 이미지의 경우, alt 속성 안에는 "복지회관 찾아오시는 길입니다. 하단에 자세한 내용이 있습니다." 정도로 적어주자.
또한 의미없는 이미지를 사용할 경우 alt를 빈 값으로 꼭 넣어주어야 한다. 그냥 속성을 빼버리면 화면낭독기가 '그래픽 링크'라고 읽게되어 이게 어떤 의미의 이미지인지 유추할 수 없어 불편이 생긴다. 의미없는 이미지는 background-image
로 넣는 것도 한 방법이다.
<img src="dot.png" alt="">
설명이 필요한 배경이미지일 경우, 태그 내부에 <span>
등의 요소를 추가하고 텍스트를 넣어 IR기법으로 처리해준다.
버튼을 이미지로 만드는 경우, alt 속성을 이용하여 어떤 버튼인지 꼭 알려주도록 하자. 부가 설명을 위한 title 속성은 화면낭독기로 읽히지 않으니 주의!
<input tupe="image" src="images.png" alt="검색">
영상, 음성 컨텐츠에 청각장애인을 위한 자막 / 원고 / 수화 중 하나 이상의 수단을 제공하면 웹접근성을 준수한 것으로 간주된다. 사용자에게 동영상 등록을 받는 란이 있다면, 동영상에 나오는 내용을 모두 작성하는 '동영상 원고'란을 구현하여 제공해야 한다. 음성 컨텐츠의 경우 원고 내용이 동일해야 바람직하다.
색을 구별하지 못하는 시각장애인의 경우, 도표 및 그래프 등에서 색상만으로 내용을 분별하도록 제공된 컨텐츠는 내용 인식이 어렵다. 때문에 각 그래프 파트마다 텍스트를 제공하거나, 하단에 표를 추가하여 넣어주면 된다.
또한 색으로만 현재 상태를 표현하는 안내버튼의 경우에는 명암(7:1) 및 빗금과 같은 패턴을 잘 활용하여 직관적으로 인식할 수 있도록 한다. 스스로 선택해야하는 버튼은 괜찮다.
Go
/ 홈페이지 바로가기
/ 패키지 설치하기
등 직관적 이름으로 명시하기 색맹을 위한 텍스트색과 배경색의 명도대비 기준은 두 가지가 있다. 첫번째는 폰트 사이즈가 18px 이상이거나, 굵은 14px 이상이라면 3:1
의 명도대비를 만족시켜야 하고, 그 외에는 4.5:1
의 명도대비를 만족시켜야 한다.
시각장애인을 위해 자동으로 화면을 읽어주는 화면낭독기는 일반적으로 화면이 로딩되자마자 사이트를 읽어준다. 그렇기 때문에 자동재생되는 영상이나 음성파일이 있다면 화면낭독기의 음성이 묻히게 된다. hover시 나오는 배경음이나 안내메세지 같은 경우는 3초를 넘기면 안된다.
테두리, 구분선, 배경색 등을 이용하여 컨텐츠 사이의 시각적인 영역을 구분해주도록 한다. 줄 간격 및 글자 간격도 시각적인 구분에 문제가 없어야 한다.
키보드만 사용하는 지체장애인 또는 시각장애인은 마우스를 사용할 수 없기 때문에 키보드로 웹사이트를 잘 컨트롤할 수 있도록 사용성을 보장해야 한다.
웹사이트상에서 tab키를 눌러 요소 사이를 순서대로 이동할 수 있는 것을 볼 수 있을 것이다. 이 때, onclick
속성을 넣은 태그는 어떤 것이든 마우스로 클릭이 가능하지만, 키보드로는 접근이 붏가하여 오류가 난다. 때문에 클릭이 필요한 요소는 a링크 안에 해당 요소를 넣어 onclick
을 주거나 button
태그를 사용하자.
이용약관과 같이 스크롤되는 컨텐츠를 overflow:auto;
로 표현하는 경우 키보드로 접근이 불가하다.(방향키로 제어 불가) 이 때, tabindex="0"
으로 제어를 시킬 수 있다. 이것을 넣게 되면 마크업 순서대로 tab을 이동할 수 있고, 자동으로 초점이 들어가게 되어 내부 내용을 컨트롤할 수 있다.
outline:none
을 주게 되면 초점이 사라지게 된다. )슬라이드, 실시간 검색순위와 같이 시간에 따라 변화하는 컨텐츠에 정지, 이전, 다음 기능을 제공해야 한다.
중지
로그인연장
1997년 12월쯤 일본 포켓몬스터 38화를 본 아이들이 광과민성 발작으로 입원 또는 사망에 이르는 사건으로 인해 생겨났다. 사전 경고없이 초당 3~50회 깜빡이는 컨텐츠는 사용에 제한이 된다.
사이트 입장 시 본래 목적인 컨텐츠로 도달하기까지 많은 소요시간이 걸릴 수 있기 때문에 본문 바로가기
를 통해 대메뉴, 네비게이션, 서브메뉴 등은 건너뛰고 원하는 컨텐츠로 바로 이동하도록 한다. '네이버'같이 많은 정보를 제공하는 사이트는 대메뉴 바로가기
, 서브메뉴 바로가기
등 다양한 바로가기 링크를 제공하기도 하지만 일반 사이트는 1개만 제공하는 것이 좋다.
<div><a href="#contents">본문 바로가기</a></div>
title
<iframe title="회원가입용" id="d" name="frame" src="url"></iframe>
display:none;
은 화면낭독기에서 읽히지 않으니 position 기법을 사용할 것 !- table의
dt/dd
는 센스리더에 읽히지 않으니ul/li
를 대체하여 쓰도록 하자..!
<html lang="ko">
, <html lang="en">
사용자가 실행하지 않은 상황에서 예측하지 않은 새 창이 열리는 경우를 방지하기 위해 만들어졌다. 스크롤 선택지에서 해당 링크로 바로 이동하는 것이 아니라 '이동' 버튼을 따로 만들어 직접 실행하도록 해야 한다.
레이어 팝업(모달창)을 띄울 시 화면을 많이 가리게 된다. 최근에는 사이트 상단 또는 중앙에 배너를 띄운다던가 화면을 많이 가리지 않는 작은 배너를 구석에 띄우는 형식으로 제작된다. 기존 형태의 팝업을 띄운다면 꼭 '닫기' 버튼이 들어가 있어야 한다.
핸드폰 및 카드번호 입력 시, 4자리를 입력하면 다음 칸으로 자동으로 포커스되는 것을 '자동 초점 이동 기능(autofocus)'라고 한다. 이 때 수정이 필요하면 shift+tab 키를 사용여 이전 칸으로 돌아갈 수 있도록 구현해야 한다.
h2 > ul > li
<h2><a href="#article">제목</a></h2>
--- 다른 내용 ---
<div id="article">내용</div>
표의 제목(caption
)과 요약정보(summary
)를 제공할 것
html5부터는 caption안에 제목, 요약, 구조 등의 정보를 한꺼번에 제공한다.
표의 제목과 요약을 적절하게 제공할 것
제목 셀(th
)과 내용 셀(td
)을 요소로 구분할 것
표 안에 중첩 표를 넣지 말 것
다단, 병합(rowspan/colspan) 등 복잡한 표 제공 시 꼭 headers
, id
속성을 통해 제목/내용셀을 연결해야 한다.
<thead>
<tr>
<th scope="col" rowspan="2">카드</th>
... 생략 ...
</tr>
<tr>
<th id="a2">원금</th>
... 생략 ...
</tr>
</thead>
<tbody>
<tr>
<td headers="a1 a2">10,000</td>
... 생략 ...
</tr>
</tbody>
<input>
, <textarea>
, <select>
요소에 1:1 대응하는 <label>
또는 title
을 제공할 것 <label for="userId">아이디</label><input type="text" id="userId" />
<label for="userPwd">비밀번호</label><input type="password" id="userPwd" />
한국웹접근성인증평가원 심사기준