마크업 오류 방지 - by. UXKM

요약 설명

관련 지침 : 마크업 언어의 요소는 열고 닫음, 중첩 관계 및 속성 선언에 오류가 없어야 한다.
마크업 언어로 작성된 콘텐츠는 해당 마크업 언어의 문법을 최대한 준수하여 제공하는 것이 바람직합니다.
특히 요소의 열고 닫음, 중첩 관계의 오류가 없도록 제공해야 합니다. 또한, 요소의 속성도 마크업 문법을 최대한 준수하여 제공하는 것이 바람직합니다.

관련 WCAG 2.2 성공 기준

4.1.1 구문 분석 (Parsing, Level A)

기대효과

  • 시작 요소와 끝나는 요소가 잘 대응되고, 요소 간의 포함 관계가 어긋나지 않도록 웹 페이지의 마크업 문서를 구성하면, 웹 브라우저나 보조 기술이 작동을 멈추지 않고 콘텐츠를 명확히 전달할 수 있습니다.
  • 콘텐츠에 필요한 속성의 누락이나 중복된 경우를 없애면, 콘텐츠의 일부 기능이 누락되는 것을 방지할 수 있습니다.

필요성

  • 잘못된 마크업은 스크린 리더 등 보조 기술에 오작동을 유발할 수 있습니다.
  • 구조화되지 않은 문서는 포커스 순서 오류나 의미 왜곡 등이 발생할 수 있습니다.
  • 표준을 준수한 마크업은 다양한 브라우저에서 호환성을 보장합니다.

대상

  • 사용자 유형
  • 이유
  • 시각장애인

    스크린 리더가 오류 없이 문서를 정확히 해석해야 함

  • 인지장애인

    구조화된 콘텐츠로 정보 이해 향상

  • 고령자

    예측 가능한 레이아웃 제공

  • 키보드 사용자

    논리적인 포커스 순서 확보

체크리스트

  • 태그는 열고 닫힘이 정확한가? (<div></div>)
  • 중첩 순서가 올바른가? (<ul><li>항목</li></ul>)
  • 중복된 id는 없는가?
  • role, aria-* 속성은 문법적으로 유효한가?

테스트 방법

  • W3C Validator를 통해 문법 유효성을 검사합니다.
    W3C Validator 바로가기
  • 접근성 검사 도구(WAVE, Axe DevTools, Lighthouse 등)를 사용하여 테스트합니다.
  • 브라우저 콘솔 및 개발자 도구로 DOM 오류를 확인홥니다.

QA 지표

  • 마크업 오류 건수
  • W3C Validator 통과율
  • 자동화 검사 도구 경고/오류 수량

개발방법

HTML 예시 - 올바른 코드

HTML 예시 - 잘못된 코드

점검 기준

  • 모든 요소는 정확한 위치에 올바르게 중첩되어야 합니다.
  • 문법적으로 유효하지 않은 속성이나 중복된 ID가 없어야 합니다.
  • 모든 HTML 태그는 W3C 명세에 맞게 구성되어야 합니다.

점검 방법

  • 개발자 도구 또는 W3C Validator를 통한 정적 분석
  • HTML 및 ARIA 속성 유효성 확인
  • 접근성 자동 검사 도구를 통한 오류 노출

준수/미준수 사례

미준수 사례

문제점 :
<h1>, <p>, <li> 태그가 닫히지 않았습니다.
이러한 오류는 스크린 리더에서 콘텐츠의 구조를 잘못 전달할 수 있습니다.

준수 사례

설명 :
모든 태그가 정확하게 닫혀 있어, 제목, 단락, 목록 등 의미론적 구조가 올바르게 구성되어 있습니다.
스크린 리더 및 브라우저가 정상적으로 해석할 수 있습니다.

관련 영상

출처 : AOA11Y (Academy Of Accessibility)


접근성 테스트 도구 활용 점검방법

결론

접근성은 시작은 있지만 끝이 없는 작업입니다.
오류 항목을 정기적으로 점검하여 접근성 개선을 한다면 점차 검사를 할 항목이 줄어들게 될 것입니다. 모두가 차별 없이 서비스를 이용할 수 있도록 접근성 유지를 위한 모두의 노력이 필요합니다. 무엇보다 접근성 작업은 서비스를 제공한다면 선택이 아닌 필수로 지켜야하는 항목임을 잊지 말아야 합니다.

접근성 작업 시 점검 필수사항

  • 접근성 가이드(WCAG, KWCAG, WAI-ARIA) 내용 숙지
  • 접근성 체크리스트 작성
  • 접근성 자동 및 수동 검사(스크린리더) 진행
  • 접근성 검사 툴(Lighthouse Accessibility 등) 활용 오류 항목 개선 및 내용 정리
  • 접근성 사용자 테스트
  • 접근성 정기적인 모니터링