최근 투표 기능이 있는 웹페이지를 분석하면서,
웹은 누구나 사용할 수 있어야 한다는 점을 다시 느꼈다.
특히 시각적, 신체적 제약이 있는 사용자나 사회적 소수자도
편하게 이용할 수 있는 구조를 고민해야 한다는 사실이 인상적이었다
[체크박스가 담당하는 핵심 기능]
이번 분석에서 투표를 구현하는 핵심 HTML 요소는
<input type="checkbox"> 였다.
기능
사용자가 항목을 선택하거나 해제할 수 있게 한다.
속성
class="checkbox-hidden" 같은 클래스가 붙어 있어도,
체크박스의 기본 기능은 브라우저가 담당한다.
히든 클래스의 이유
시각적 디자인을 위해 체크박스를 숨기고,
대신 커스텀 마크업으로 체크 상태를 표시하는 경우가 많다.
- 디자인과 기능을 분리하면서 자유롭게 스타일링 가능하다.
- 동시에 스크린 리더는 숨겨진 체크박스를 인식할 수 있어
접근성을 어느 정도 확보할 수 있다.
▼ checkbox 구성 예시
<div class="col-2 text-center align-self-center">
<!-- 이 div는 레이아웃과 정렬 역할을 담당함
col-2: 그리드 시스템에서 가로 폭 설정
text-center: 내부 요소(체크박스)를 가로 중앙 정렬
align-self-center: 세로 방향으로도 중앙 정렬 -->
<input class="checkbox-hidden" type="checkbox">
<!-- 실제 투표 선택 기능을 담당하는 체크박스.
시각적으로는 숨겨져 있지만, 브라우저와 스크린리더는 이 요소를 인식함 -->
<div class="SingleChoice_main-checkmark__s1yy7"></div>
<!-- 체크 상태를 시각적으로 보여주기 위한 커스텀 마크업.
디자인 목적으로 사용되며, 클릭 시 체크박스 상태를 반영 -->
</div>
상단 <div>는 해당 체크박스의 위치 레이아웃과 정렬을,
<input>이 실제 선택 기능을 담당하고
아래 <div>는 체크 시 표시되는 커스텀 마크 역할을 한다.
[접근성 보완 필요점]
분석 중에 발견한 문제점도 있었다.
스크린 리더용 id가 없음
체크박스를 식별할 수 있는 id와 <label> 연동이 없어서 스크린 리더 사용자에게 불편함이 발생할 수 있다.
보완 방법
- <input>에 고유 id를 추가하고, <label for="id값">을 연동
- 시각적으로 숨긴 체크박스라도 스크린 리더에서 읽히도록 aria-label이나 aria-labelledby를 설정
이렇게 하면 모든 사용자가 투표 기능을
문제없이 이용할 수 있도록 접근성을 보완할 수 있다.
[분석을 통해 느낀 점]
이번 페이지 분석을 통해, 디자인과 기능을 분리하면서도
접근성을 확보하는 방법이 중요하다는 것을 배웠다.
- 시각적 요소를 위해 체크박스를 숨겨도,
브라우저의 기본 기능과 스크린 리더 연동을
활용하면 누구나 이용할 수 있다. - 웹페이지를 설계할 때는 모든 사용자가
편리하게 이용할 수 있도록 배려하는 것이 필수임을
다시 한 번 깨달았다.
앞으로는 단순히 보기 좋은 디자인을 넘어서,
모든 사용자가 공평하게 접근할 수 있는 웹 환경을
만드는 것이 중요하다는 점을 기억하려 한다.
'개주 훈련일지 > 🏋️ 전집중 호흡 훈련' 카테고리의 다른 글
| 커스텀 체크박스 & 통계 UI 구조 분석 (0) | 2025.11.22 |
|---|---|
| 리스너(Listener) 서블릿 등록하기 (0) | 2025.11.21 |
| Parameter 와 Attribute 비교 (0) | 2025.11.18 |
| 버튼 클릭 시 이동하기&뒤로가기 (0) | 2025.11.16 |
| 시퀀스와 최대 출력 제한 (0) | 2025.11.07 |