마크업 오류 방지
KWCAG에 남아 있는 마크업 오류 방지 항목. 중복 id, 태그 중첩 오류, 닫히지 않은 태그, 중복 속성을 찾고 고치는 방법과 해외 자동 검사 도구가 이를 잡지 않는 이유를 정리했습니다.
마지막 수정
무엇을 요구하나요?
HTML을 문법에 맞게 작성해, 브라우저와 보조기기가 페이지 구조를 같은 방식으로 이해하게 해야 합니다. 주로 확인하는 오류는 네 가지입니다.
| 오류 | 예 |
|---|---|
| 요소를 열고 닫지 않음 | <div>를 열고 </div>를 빠뜨림 |
| 요소의 중첩 오류 | <b><i>글자</b></i> |
| 중복 속성 | <img alt="로고" alt="회사 로고"> |
| 중복 id | 한 페이지에 id="name"이 두 개 |
브라우저는 잘못된 HTML을 알아서 고쳐서 보여주기 때문에 화면으로는 문제가 보이지 않습니다. 하지만 브라우저마다 고치는 방식이 다를 수 있고, 특히 중복 id는 레이블 연결, 건너뛰기 링크, aria 참조를 엉뚱한 요소에 연결합니다.
자주 틀리는 예
1. 중복 id
서식이나 카드 목록을 복사해서 만들 때 가장 많이 생깁니다.
<label for="phone">집 전화</label><input id="phone">
<label for="phone">휴대폰</label><input id="phone">
<label for="phone-home">집 전화</label><input id="phone-home">
<label for="phone-mobile">휴대폰</label><input id="phone-mobile">
2. 태그 중첩 오류
<b><i>중요</b></i>
<a href="/a"><div>카드</a></div>
<b><i>중요</i></b>
<a href="/a"><div>카드</div></a>
3. p 안에 div 같은 블록 요소
<p> 안에 <div>, <ul>, <table> 등이 오면 브라우저가 <p>를 그 자리에서 닫아 버리고, 뒤의 </p>는 짝 없는 닫는 태그가 됩니다.
<p>약관을 확인하세요 <div class="badge">필수</div></p>
<p>약관을 확인하세요 <span class="badge">필수</span></p>
4. 빈 요소처럼 닫은 일반 요소
XML·JSX 습관으로 <div/>, <span/>처럼 쓰면 HTML에서는 닫힌 것으로 처리되지 않아 뒤의 내용이 모두 그 안으로 들어갑니다.
<div class="icon"/>
<p>본문</p>
<div class="icon"></div>
<p>본문</p>
확인하는 방법
- 확장 프로그램 페이지 검사결과에서 마크업 오류 검사를 누르면 읽을 수 있는 원본 HTML에서 위 오류를 줄 번호와 함께 찾아줍니다. 코드를 실행하지 않고 태그를 하나씩 읽으며 열고 닫기를 추적합니다.
- 실제 페이지는 브라우저가 이미 고친 상태라 개발자 도구로는 오류가 보이지 않습니다. “페이지 소스 보기”의 원본 HTML을 복사해 검사하세요. 크롬 확장 프로그램의 “마크업 오류 검사”도 원본 HTML을 다시 받아 검사합니다.
- 템플릿·컴포넌트로 만든 페이지는 렌더링된 결과 HTML을 검사해야 합니다. 같은 컴포넌트가 여러 번 쓰이며 id가 중복되는 경우가 많습니다.
직접 점검해 보기
- 페이지 검사 — 확장 프로그램으로 열린 페이지에서 이 항목과 관련된 문제를 찾습니다
- 수동 점검표 — 33개 항목을 직접 확인하고 기록합니다
- 자주 틀리는 10개 항목 맛보기 점검표 — 무료 엑셀
자주 묻는 질문
국제 표준 WCAG 2.2에서는 이 항목이 없어졌다던데요?
WCAG 2.2에서는 '4.1.1 Parsing(구문 분석)'이 삭제되었습니다. 하지만 국내 기준인 KWCAG 2.2에는 '마크업 오류 방지'가 남아 있어 국내 점검에서는 계속 확인해야 합니다. 그래서 WCAG 기준 자동 검사 도구는 이 항목을 검사하지 않는 경우가 많습니다.
W3C 문법 검사기의 모든 오류를 고쳐야 하나요?
이 항목에서 중요하게 보는 것은 요소의 열고 닫기, 중첩, 중복 속성, 중복 id처럼 보조기기가 구조를 잘못 이해하게 만드는 오류입니다. 그 밖의 문법 경고는 별도로 판단하세요.
함께 보면 좋은 항목
이 글은 셀프 점검을 돕는 안내이며 공식 해설이나 인증 심사 기준을 대신하지 않습니다. 정확한 기준은 한국형 웹 콘텐츠 접근성 지침 2.2 원문을 확인하세요.