폼 컨트롤의 사람 친화 이름. input·textarea·select 모두에 반드시 짝이 되어야 한다. WebAIM Million(매년 상위 100만 홈페이지 a11y 분석)에서 label 누락은 거의 항상 상위 1-2위 결함.
SEO 관점에서 폼 사용성 신호. 라벨이 있는 폼이 완료율 높고, 페이지의 task success rate가 페이지 평가에 간접 작용.
GEO 관점에서 AI 에이전트(Anthropic Computer Use, OpenAI CUA)가 폼을 자동 입력할 때 — 어느 칸이 이메일이고 어느 칸이 전화번호인지 식별의 1순위 신호가 label. autocomplete 표준값과 결합하면 거의 100% 정확.
A11y 관점에서 가장 critical. 라벨 없는 input은 스크린리더가 "편집"으로만 발화. 사용자는 무엇을 입력해야 하는지 모른 채 빈 칸 앞에 선다. 시각장애 사용자에게 폼이 닫힌 것과 같은 효과.
자주 보는 안티패턴: placeholder만(입력 시작 시 사라져 내가 무엇을 채우고 있는지 망각), for/id 연결 누락(시각적으로 라벨 옆에 input이 있어도 시맨틱은 끊김 — label 클릭이 input 포커스 안 잡음), 라벨 같은 div(시각만, 시맨틱 0), aria-label로만 visible label 대체(시각 사용자도 읽고 인지할 라벨이 필요).
for/id 연결 vs wrapping label — 둘 다 시맨틱 동일. wrapping은 동적 React 컴포넌트에서 id 생성이 어려울 때 유리. for/id는 명시적이고 라벨과 input이 떨어져 있어도 작동.
시각 숨김 라벨(visually-hidden) — 디자인상 라벨이 안 보여야 할 때(검색창 같은) 표준. display: none이 아닌 시각만 숨기고 스크린리더에는 노출. 시리즈 #2에서 다룬 .sr-only 클래스.
라벨 + autocomplete + type — 시리즈 #2와 #11에서 다룬 폼 자동 입력의 삼위일체. 이 세 가지가 모두 있으면 AI 에이전트와 패스워드 매니저의 자동 입력 정확도가 거의 100%.
라이브러리 — Headless UI Field가 label/input/description의 자동 id 생성과 연결을 제공. Radix Form도 동일. 직접 for/id 박을 때보다 실수가 적은 선택지.