웹 접근성 검사·수정 도우미 WCAG 2.1 진단 · 수정 코드 · 작업 지시서
← 접근성 아티클 목록

표·iframe·영상·오디오를 접근 가능하게 만들기

표·프레임·멀티미디어 가이드 · WCAG 2.1 성공기준 1.3.1 · 1.2.1 · 1.2.2 · 1.2.5 · 1.4.2 · 4.1.2 · 2026년 9월

이미지와 링크, 입력창은 익숙해도 표, 프레임, 영상에서는 접근성이 무너지는 사이트가 많습니다. 이 세 가지는 공통적으로 "눈으로 보면 한눈에 구조가 파악되지만, 구조를 코드에 표시하지 않으면 소리로는 전혀 전달되지 않는" 콘텐츠이기 때문입니다. 이 글은 데이터 표, 임베드된 프레임, 영상·오디오를 각각 어떻게 표시하고 대체 수단을 제공하는지 정리합니다.

1. 데이터 표: 머리 셀이 없으면 값만 읽힌다

화면낭독기는 표를 읽을 때 셀 하나를 읽으며 그 셀의 행 머리와 열 머리를 함께 알려 줍니다. "M 사이즈, 재고, 3"처럼 말입니다. 이 정보의 출처가 <th>입니다. 모든 칸이 <td>이면 사용자는 "M, 3"이라는 숫자만 듣게 되고 3이 재고인지 가격인지 알 수 없습니다.

<!-- 나쁨: 머리 셀 없음 -->
<table>
  <tr><td>사이즈</td><td>재고</td></tr>
  <tr><td>M</td><td>3</td></tr>
</table>

<!-- 좋음 -->
<table>
  <caption>아우터 사이즈별 재고</caption>
  <thead>
    <tr><th scope="col">사이즈</th><th scope="col">재고</th></tr>
  </thead>
  <tbody>
    <tr><th scope="row">M</th><td>3</td></tr>
  </tbody>
</table>

복잡한 표

머리 셀이 두 겹이거나 셀이 병합(colspan/rowspan)된 표는 scope만으로 관계가 모호해질 수 있습니다. 이때는 각 머리 셀에 id를 주고 데이터 셀에 headers="id1 id2"로 명시하는 방법이 있습니다. 다만 유지보수가 어려우므로 가능하면 표를 단순한 여러 개로 쪼개는 것이 최선입니다.

레이아웃용 표는 쓰지 않는다

화면 배치용으로 <table>을 쓰면 낭독기가 "표, 3행 2열"이라고 말하며 데이터가 아닌 내용에 표 탐색 모드를 적용합니다. 배치는 CSS(flex, grid)로 하고, 표는 진짜 표 형식 데이터에만 사용하세요.

반응형에서 표가 넘칠 때

좁은 화면에서 표가 넘친다고 display:block으로 구조를 부수면 표 의미가 사라져 낭독기가 표로 인식하지 못합니다. 표는 2차원 구조가 본질이므로 가로 스크롤 컨테이너에 담는 것이 리플로우의 예외로 인정됩니다. 단, 키보드로도 스크롤할 수 있어야 합니다.

<div class="table-scroll" role="region" aria-labelledby="cap1" tabindex="0">
  <table>
    <caption id="cap1">월별 방문자 수</caption>
    …
  </table>
</div>

.table-scroll { overflow-x: auto; }

2. iframe에는 title을 붙인다

지도, 결제창, 유튜브 임베드, 채팅 위젯은 대부분 <iframe>입니다. 프레임 안 내용은 별개 문서라서, 낭독기 사용자는 프레임 목록에서 이름(title)만 보고 들어갈지 말지 결정합니다. title이 없으면 "프레임"이라고만 읽혀 무엇인지 알 수 없습니다 (iframe-no-title, WCAG 4.1.2).

<iframe src="https://www.youtube.com/embed/…"
        title="제품 사용법 소개 영상 (2분 30초)"></iframe>

<!-- 광고·추적용 등 내용이 없는 프레임은 낭독기에서 감춘다 -->
<iframe src="about:blank" title="" aria-hidden="true" tabindex="-1"></iframe>

title에는 "iframe"이라는 단어를 넣지 않아도 됩니다(낭독기가 "프레임"이라고 이미 알려 줍니다). 안에 무엇이 있는지를 쓰세요.

3. 영상과 오디오

영상·음성의 접근성은 "대체 수단"을 제공하는 것입니다. 이 기준들은 3단계(A, AA, AAA)로 나뉩니다.

콘텐츠필요한 대체 수단WCAG (등급)대상 사용자
녹음된 오디오만(팟캐스트 등)대본(transcript)1.2.1 (A)청각장애인
영상만(소리 없음)대본 또는 음성 해설1.2.1 (A)시각장애인
소리가 있는 영상자막(캡션)1.2.2 (A)청각장애인, 소음 환경, 음소거 시청자
소리가 있는 영상화면 해설(오디오 디스크립션) 또는 미디어 대체물1.2.3 (A) · 1.2.5 (AA)시각장애인
실시간 방송실시간 자막1.2.4 (AA)청각장애인

자막(캡션)과 자막 파일 연결

<video controls preload="metadata" poster="thumb.jpg">
  <source src="guide.mp4" type="video/mp4">
  <track kind="captions" src="guide.ko.vtt" srclang="ko" label="한국어" default>
</video>

재생 제어

4. 캡차와 시간 제한 있는 콘텐츠

이미지로 된 문자 캡차는 시각장애인과 인지 특성이 다른 사용자에게 사실상 통과 불가능한 관문입니다. 캡차를 쓴다면 이미지 외 대체 방식(음성, 논리 문제, 이메일·문자 인증 등)을 함께 제공해야 합니다(1.1.1의 예외 조항 참조). 캡차 이미지의 alt에는 정답을 쓰지 않고 "보안 문자, 음성 인증을 이용하세요"처럼 용도를 설명합니다.

5. PDF·문서 파일 링크

사이트에서 내려받는 PDF·한글·워드 문서도 웹 콘텐츠의 일부입니다. 최소한 다음은 확인하세요.

6. 점검 순서

  1. 페이지의 모든 <table>: 데이터 표인가? 그렇다면 th·caption이 있는가?
  2. 모든 <iframe>: title이 안에 든 내용을 설명하는가?
  3. 영상: 자막이 있는가? 소리로만/화면으로만 전달되는 정보가 있는가?
  4. 자동 재생되는 소리·영상: 정지 수단이 있는가?
  5. 키보드만으로 재생·정지·음량·자막 켜기가 가능한가?
자동 검사는 "표에 th가 있는가", "iframe에 title이 있는가", "자동 재생 속성이 있는가"를 정확히 찾습니다. 자막의 품질, 대본의 충분성, 영상의 화면 해설 필요 여부는 사람이 콘텐츠를 보고 판단해야 합니다.

이 도구의 관련 규칙은 table-no-header, iframe-no-title, autoplay-media 세 가지이며 각각의 수정 방법은 규칙 사전에서 확인할 수 있습니다.

관련 글
· 대체 텍스트(alt) 제대로 쓰는 법
· 제목·랜드마크·페이지 제목으로 문서 구조 잡기
· 확대·터치·움직임: 저시력과 다양한 사용 환경 대응하기
· 검사 규칙 사전 — 35개 검사 항목 해설
문의: dkdnj123@gmail.com