“label? 그냥 텍스트 붙이는 거 아닌가요?”
그렇게 단순하게 생각했다면, 이번 글이 당신의 HTML 시야를 바꿔줄지도 모릅니다.
폼 UX의 핵심이자, 접근성과 상호작용의 교차점에 있는 <label>
태그.
잘 쓰면 친절한 웹이 되고, 못 쓰면 사용자와 자주 충돌합니다.
label, 그 이름 이상의 역할을 보여드릴게요.
오늘 배울 태그는
<label>입니다.
<label for="username">아이디</label>
<input type="text" id="username">
가장 기본적인 <label>
사용 예입니다. for="username"
은 id="username"
을 가진 input과 연결되어 있어 라벨을 클릭하면 자동으로 해당 input에 포커스가 갑니다.
작은 상호작용 같지만, UX를 부드럽게 만드는 핵심이죠.
<label>
이메일
<input type="email" name="email">
</label>
<label>
은 input을 감싸는 방식으로도 사용할 수 있어요.
이 방식은 for
와 id
를 생략할 수 있고, 코드가 짧아지며 구조가 명확해집니다.
단점은 input이 라벨 안에 꼭 들어가야 하기 때문에 스타일링이나 구조 제어가 어려울 수 있다는 점이에요.
<label for="agree" class="checkbox-label">
<input type="checkbox" id="agree">
약관에 동의합니다
</label>
체크박스나 라디오 버튼에서 <label>
은 클릭 영역을 넓히는 중요한 역할을 합니다.
텍스트 자체가 클릭 가능하기 때문에, 모바일 환경에서도 사용성이 훨씬 좋아지죠.
이건 접근성 뿐 아니라 실용성에서도 핵심적인 포인트입니다.
<label for="fileUpload" class="custom-file-label">
📁 파일 선택하기
</label>
<input type="file" id="fileUpload" hidden>
파일 업로드 버튼을 커스터마이징할 때 <label>
은 스타일과 기능을 분리하는 훌륭한 도구입니다.
기본 <input type="file">
은 스타일이 거의 불가능하지만, 숨겨두고 label을 활용하면 원하는 디자인으로 UI를 구성할 수 있어요.
이건 실무에서 정말 자주 쓰이는 패턴입니다.
<fieldset>
<legend>알림 설정</legend>
<label><input type="radio" name="notify" checked> 이메일</label>
<label><input type="radio" name="notify"> SMS</label>
</fieldset>
<label>
은 radio 버튼 묶음에서 각 선택지를 설명하는 데 필수입니다. <fieldset>
과 함께 쓰면 접근성과 구조가 더욱 명확해지고, 화면 리더나 키보드 네비게이션에서 안정적인 동작을 제공합니다.
<label for="name">
이름 <span style="color: red;">*</span>
</label>
<input type="text" id="name" required>
필수 입력 필드에서 <label>
을 활용하면 필드 옆에 * 표시 등을 삽입해 사용자에게 입력 조건을 자연스럽게 안내할 수 있어요.
문구를 강제하지 않아도, 사용자 경험은 충분히 친절해질 수 있습니다.
// 접근성을 높이는 ARIA 활용
<label id="desc-label">닉네임</label>
<input type="text" aria-labelledby="desc-label">
aria-labelledby
를 활용하면 label 텍스트를 유연하게 제어할 수 있습니다.
특히 시각적으로는 보여주지 않고, 화면리더만 인식해야 하는 경우 이 방식이 유용하죠.
접근성을 고려한 마크업이 필요한 상황에서 자주 사용됩니다.
💡 label과 placeholder는 역할이 다릅니다 placeholder
는 입력 전 힌트일 뿐, 입력이 시작되면 사라집니다. label
은 항상 존재해야 하고, 모든 폼 필드엔 label이 반드시 있어야 합니다. (화면상 감추더라도 스크린리더를 위해 숨김 처리로 제공해야 해요.)
마무리하며 🌿 <label>
은 작고 단순한 태그처럼 보이지만, 그 안엔 웹을 더 나은 방향으로 이끄는 디자인적 배려와 기능적 명확성이 담겨 있습니다.
폼을 만들 땐 단순히 동작하는 게 아니라 어떻게 읽히고, 어떻게 클릭되는지까지 고민하세요.
그 중심에 label이 있다는 것, 이제는 확실히 아시겠죠?
👉 더 많은 HTML 팁은 제 블로그에서 확인해보세요 https://jjaeho.tistory.com
배웠다 말았다 다시 시작했다😎
흥미로운 나만의 홈페이지를 만들기 위한 공간입니다. #Pixel #Art #HTML #CSS #JAVASCRIPT
jjaeho.tistory.com
'HTML,CSS,JavaScript > HTML,CSS,JAVASCRIPT' 카테고리의 다른 글
[HTML] 이것만 알아도 실수를 줄일 수 있다. (1) | 2025.04.08 |
---|---|
[HTML] JavaScript 연결은 해야 쓰지! (0) | 2025.04.07 |
[HTML] Hidden 활용으로 숨기기 (0) | 2025.04.06 |
[HTML] CSS 추가하기 (1) | 2025.04.05 |
[HTML] Slot 아주 유연해~ (0) | 2025.04.05 |