SEMANTIC HTML

시맨틱 HTML landmark 순서

div를 의미 있는 태그로 바꾸는 데서 끝나지 않고, screen reader가 탐색할 landmark, 제목 계층, button/link 역할, aria 최소화 기준을 함께 설계해야 한다.

01

문서 영역 나누기

상단, 탐색, 본문, 보조, 하단을 landmark 태그로 구분한다.

페이지 지도
02

제목 계층 정리

시각 크기가 아니라 문서 구조 기준으로 h1부터 순서 있게 둔다.

outline
03

상호작용 역할 선택

이동은 a, 동작은 button을 사용하고 키보드 동작을 기본 제공받는다.

native first
04

aria 보완

네이티브 의미로 부족할 때만 aria-label, aria-expanded 등을 추가한다.

no redundant aria
<div onClick>
키보드 접근 누락 동작이면 button으로 바꿔 Enter/Space, focus, disabled를 기본 처리한다.
native control
<div class=nav>
탐색 landmark 부재 nav 태그와 명확한 label로 주요 탐색 영역을 구분한다.
screen reader nav
h1→h4
제목 단계 건너뜀 스타일은 CSS로 조정하고 계층은 논리 순서로 유지한다.
heading order
aria overuse
네이티브 의미와 충돌 button에 role=button을 다시 쓰기보다 필요한 상태 속성만 더한다.
semantic conflict

접근성 확인

키보드 Tab 순서와 Enter/Space 동작이 마우스 없이 자연스러운지 본다.
랜드마크 스크린리더 landmark 목록에서 주요 영역이 중복 없이 보이는지 확인한다.
이름 아이콘 버튼과 입력 필드에 접근 가능한 이름이 있는지 검사한다.