우리나라의 장애인 차별 금지법에도 웹 접근성과 관련된 내용이 작성되어 있다. 이는 의무적으로 지켜야 하며 웹 접근성을 따르는 개발은 장애, 노령화, 여러 기기 환경 등으로 인한 웹 사이트와 도구 사용에 차별받지 않도록 지침을 준수하여 개발하는 것을 의미한다.
🤷 특정 계층으로 인한 요소가 미디어 접근성에 있어서 차별 대우받아서는 안된다는 것으로 해석한다. 이는 미디어 리터러시와 관련이 있어 보인다.
<article>
이나 <nav>
, <footer>
등의 요소를 적절히 사용할 것을 권장<button>
이나 <input>
, <select>
요소를 사용하지 않고 <div>
와 CSS만을 이용하여 구현하는 것을 지양
이는 기본 요소들이 제공하는 키보드 동작들을 사용하지 못할 가능성이 있음
Enter키나 Tab 키를 누를 때 해당 요소로 이동시키는 동작과 같은 상호작용들이 가능하도록 설계할 것
<div>
요소를 반드시 사용해야 한다면, 몇 가지 추가적인 코드 작성을 할 것
- role : 해당 요소의 원래 목적을 작성, role=button으로 작성할 경우 스크린 리더 등에서 해당 요소를 버튼으로 인식
- tab-index : 해당 요소를 탭 키로 도달하게 하는 속성
- 키보드 이벤트 리스너 추가 : 버튼 동작이 엔터나 스페이스로 동작하게끔 자바스크립트 이벤트 추가
<div
tabIndex="0"
role="button"
id="button-id"
className="div-as-button">
div로 만든 버튼
</div>
alt
나 title
과 같은 attribute를 작성할 것alt
속성에 빈 문자열을 지정하는 것을 권장이외에도 애니메이션이나 깜빡이는 효과, 색상 선택에도 주의해야 하며 ARIA(Accessible Rich Internet Applications) 등 더 살펴보고 주의해야 하는 부분이 존재한다.
웹 접근성 가이드라인을 모두 완벽하게 맞추는 것은 사실상 불가능하지만, 가이드라인을 준수하는 것은 올바른 웹 생태계를 위해 프론트엔드 개발자가 노력해야 할 중요한 요소라는 것을 기억하자.
프론트엔드 프레임워크인 React, Angular 등에서도 웹 접근성을 어떻게 추구해야 하는지에 대한 공식 문서를 제공하고 있다.