페이지나 article의 도입부. 단순한 시각 영역이 아니라 위치에 따라 의미가 바뀌는 컨텍스트 의존 시맨틱.
body 직속 header = banner landmark. 페이지 최상단의 로고·주 내비·검색을 담는 영역. 사이트의 진입 페이지 모든 곳에 반복되는 부분이라 반복 영역으로 분류되고, 스크린리더 사용자가 건너뛰는 표준 대상.
article·section 안의 header = 일반 그룹. 블로그 글의 제목 + 메타(작성자, 발행일), 카드의 제목 + 아이콘 같은 article 내부 도입부. banner role은 부여되지 않지만 — 시각·시맨틱 묶음으로 작동.
SEO 관점에서 header 자체보다 안에 들어가는 요소가 SEO 신호 — 로고 link의 alt(시리즈 #8), 주 내비의 링크 구조, h1 위치. header 시맨틱은 이 영역이 본문이 아님을 명시해 본문 가중치 평가에서 이 영역을 제외시키는 역할.
GEO 관점에서 AI 에이전트가 사이트에 진입했을 때 어디가 사이트의 정체성인지를 banner에서 찾는다. 로고, 사이트명, 주 내비의 메뉴 텍스트가 이 사이트는 무엇인가의 첫 단서.
A11y 관점에서 banner는 스크린리더 landmark 점프의 첫 도착지. 사용자가 페이지에 들어왔을 때 지금 어느 사이트의 어느 페이지인지를 banner에서 확인하고, 본문으로 이동(skip link 또는 main으로 점프). banner가 없거나 div면 이 오리엔테이션 단계가 사라진다.
자주 보는 안티패턴: body 직속 header가 여러 개(banner가 두 개라는 모순), header를 div로 대체(landmark 손실), article 안 header에 사이트 전체 nav 통째로 넣음(article의 컨텍스트에서 전역 nav가 도입부에 있다는 시맨틱 모순), header 안에 main을 중첩(시맨틱 위계 위반).
Next.js App Router의 layout.tsx에 <header>를 두는 게 표준 — 모든 페이지에 같은 banner가 자동 적용. page.tsx에는 header를 두지 않고 article의 자체 header만 둠. layout/page의 header 중복은 banner 중복 발생.
logo를 h1으로 박는 안티패턴은 시리즈 #5에서 다뤘다. 로고는 a + img + alt로 충분. h1은 각 페이지의 본문 제목이 가져가야 한다.