콘텐츠의 선형구조
화면 낭독기가 읽는 순서(HTML 순서)가 화면에서 보이는 의미 순서와 같게 만드는 방법. CSS로 순서만 바꾼 레이아웃, 숨긴 콘텐츠, 탭·모달 위치 문제를 고치는 코드를 정리했습니다.
마지막 수정
무엇을 요구하나요?
콘텐츠는 의미를 이해할 수 있는 순서로 제공되어야 합니다. 화면 낭독기는 CSS 배치와 상관없이 HTML에 적힌 순서대로 읽습니다. 그래서 HTML 순서와 화면에 보이는 순서가 다르면, 화면 낭독기 사용자는 질문보다 답을 먼저 듣거나 제목보다 본문을 먼저 듣게 됩니다.
자주 틀리는 예
1. CSS로 보이는 순서만 바꿈
<div class="card" style="display:flex; flex-direction:column-reverse">
<p>가을 신상품 최대 30% 할인</p>
<h3>가을 세일</h3>
</div>
<div class="card">
<h3>가을 세일</h3>
<p>가을 신상품 최대 30% 할인</p>
</div>
2. 모달·팝업 HTML이 문서 맨 끝에 있음
버튼 바로 옆에 열리는 레이어 팝업의 HTML이 페이지 맨 끝에 있으면, 화면 낭독기 사용자는 팝업 내용을 찾기 어렵습니다. 열 때 초점을 팝업 안으로 옮기거나, 관련 버튼 바로 뒤에 HTML을 두세요. (6.1.2 초점 이동과 표시 참고)
3. 화면에서 숨겼는데 읽히는 콘텐츠
.tab-panel.inactive { opacity: 0; height: 0; }
.tab-panel.inactive { display: none; }
opacity: 0이나 높이 0으로만 숨기면 보이지 않는 내용이 순서 중간에 끼어 읽힙니다.
4. 레이아웃용 표
표로 화면을 배치하면 칸 순서(왼쪽→오른쪽, 위→아래)대로 읽혀 의미 순서가 깨지기 쉽습니다. 레이아웃은 CSS로 만드세요. (5.3.1 표의 구성 참고)
확인하는 방법
- 브라우저에서 CSS를 끄고(개발자 도구 또는 확장 프로그램) 위에서 아래로 읽어 보세요. 의미가 자연스럽게 이어져야 합니다.
- 화면 낭독기로 처음부터 끝까지 읽기(NVDA: Insert+↓, VoiceOver: VO+A)를 실행해 순서를 들어보세요.
- 북마클릿의 탭 순서 번호가 화면 흐름과 크게 어긋나면 HTML 순서를 의심해 보세요.
직접 점검해 보기
- 페이지 검사 — 확장 프로그램으로 열린 페이지에서 이 항목과 관련된 문제를 찾습니다
- 수동 점검표 — 33개 항목을 직접 확인하고 기록합니다
- 자주 틀리는 10개 항목 맛보기 점검표 — 무료 엑셀
자주 묻는 질문
CSS Grid나 Flex로 배치를 바꾸면 안 되나요?
배치 자체는 괜찮습니다. 다만 order, row-reverse, grid-area 등으로 보이는 순서만 바꾸면 화면 낭독기와 Tab 순서는 HTML 순서를 따르므로 어긋납니다. 의미 순서는 HTML에서 정하세요.
함께 보면 좋은 항목
이 글은 셀프 점검을 돕는 안내이며 공식 해설이나 인증 심사 기준을 대신하지 않습니다. 정확한 기준은 한국형 웹 콘텐츠 접근성 지침 2.2 원문을 확인하세요.