대한민국의 웹 접근성 지침은 KWCAG 2.1을 기준으로 총 4가지 원칙(인식성, 운용성, 이해성, 견고성) 하에 세부 항목이 존재합니다. 아래는 실무자/디자이너/기획자를 위한 각 항목별 해설 및 실전 적용 방법입니다.
alt=""
로 비워 접근성 도구가 무시하도록 합니다.<img src="/logo.png" alt="CRAM 퀴즈 플랫폼 로고" />
색상만으로 정보를 전달하지 않기
**충분한 명도 대비(4.5:1 이상)**를 확보해야 합니다.
텍스트와 배경 색상은 명도 대비 4.5:1 이상 확보해야 함.
<video controls autoplay muted loop></video> <!-- muted 필요 -->
시맨틱 태그 적극 활용:
<header>, <nav>, <main>, <section>, <article>, <footer>
button
, a
, input
등 기본 키보드 인터랙션 요소 사용 권장:focus
스타일을 명확히 지정하여 현재 위치를 인지 가능하게button:focus {
outline: 2px solid #007BFF;
}
<input type="range">
등을 사용alert('연장을 원하시면 확인을 눌러주세요.');
<button aria-label="배너 정지">⏸️</button>
prefers-reduced-motion
미디어 쿼리로 사용자 설정 존중@media (prefers-reduced-motion: reduce) {
* {
animation: none !important;
}
}
<a href="#main" class="skip-link">본문 바로가기</a>
제공<a href="#main" class="sr-only focus:not-sr-only">본문 바로가기</a>
<title>웹 접근성 가이드 - CRAM</title>
<h1>접근성 가이드</h1>
<html lang="ko">
명시로 음성 합성기가 적절한 언어로 읽을 수 있게 함<fieldset>
<legend>성별 선택</legend>
<label><input type="radio" name="gender" value="male">남성</label>
</fieldset>
<th scope="col">
, <th scope="row">
로 헤더 정보를 명확히<table>
<thead>
<tr><th scope="col">이름</th><th scope="col">점수</th></tr>
</thead>
</table>
label
요소는 for
속성으로 연결하거나 aria-label
을 사용<label for="email">이메일</label>
<input id="email" type="email" />
<p role="alert">이메일 형식을 확인해주세요</p>
useEffect(() => {
document.getElementById("main")?.focus();
}, [location]);
🔗 관련 자료