웹 접근성(a11y) 도입 가이드 – 시작하는 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 웹 개발자, 디자이너, QA 엔지니어
- 중간 난이도: HTML/CSS 기초 지식, 접근성 원칙 이해 필요
핵심 요약
- 접근성(a11y)은 WCAG 2.1 AA 준수를 기반으로 디자인/코드에 포함되어야 하며, 법적 요구사항과 사용자 경험 향상의 두 가지 목표를 달성
- Semantic HTML(
,,
)과 키보드 네비게이션(
tabindex
,:focus-visible
)은 접근성 기준의 핵심 - 자동화 도구(axe, Lighthouse)와 스크린 리더(NVDA, VoiceOver)를 통한 테스트는 필수이며, ARIA 역할은 필요 시만 사용
섹션별 세부 요약
1. 접근성의 중요성 및 법적 배경
- 1/5 인구가 장애를 가진 사용자로, 스크린 리더, 고대비 모드, 키보드 네비게이션 지원이 필수
- WCAG 2.1 AA는 전 세계 표준, EAA(EU), ADA(US) 등 법적 요구사항 적용
- WCAG 4 원칙(POUR) : Perceivable, Operable, Understandable, Robust
2. Semantic HTML 및 키보드 네비게이션
,,
등 의미 있는 HTML 요소 사용으로 스크린 리더와 호환성 향상
- 모든 인터랙티브 요소는
tabindex="0"
으로 포커스 가능, 포커스 아웃라인(:focus-visible) 표시 필수 - 탭 순서는 DOM 순서와 시각적 레이아웃 일치, 포커스 트랩 방지
3. 모달/대화상자 접근성 구현
role="dialog"
+aria-modal="true"
+aria-labelledby
로 모달 구현- Escape 키로 닫기, 포커스 복귀 기능 포함
- 라이브러리(
@headlessui/react
,Radix UI
) 활용 권장
4. 테스트 도구 및 수동 점검
- 자동화 도구: axe, Lighthouse, jest-axe
- 스크린 리더 테스트: NVDA, VoiceOver, JAWS
- 수동 점검: 포커스 순서, 색상 대비(
WebAIM Contrast Checker
), ARIA 역할 과도 사용 방지
결론
- 접근성은 디자인/코드/테스트 전 단계에 통합되어야 하며, Semantic HTML, 키보드 테스트, 스크린 리더 사용자 테스트를 통해 실무에 적용해야 함. WCAG 2.1 AA 준수는 법적/상업적 요구사항을 동시에 충족.