개주 훈련일지/🏋️ 전집중 호흡 훈련

페이지 분석에서 느낀 접근성의 중요성

lshfood2 2025. 11. 21. 01:21

최근 투표 기능이 있는 웹페이지를 분석하면서,

웹은 누구나 사용할 수 있어야 한다는 점을 다시 느꼈다.

 

특히 시각적, 신체적 제약이 있는 사용자나 사회적 소수자도

편하게 이용할 수 있는 구조를 고민해야 한다는 사실이 인상적이었다


[체크박스가 담당하는 핵심 기능]

이번 분석에서 투표를 구현하는 핵심 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를 설정

이렇게 하면 모든 사용자가 투표 기능을

문제없이 이용할 수 있도록 접근성을 보완할 수 있다.


[분석을 통해 느낀 점]

이번 페이지 분석을 통해, 디자인과 기능을 분리하면서도

접근성을 확보하는 방법이 중요하다는 것을 배웠다.

  • 시각적 요소를 위해 체크박스를 숨겨도,
    브라우저의 기본 기능과 스크린 리더 연동을
    활용하면 누구나 이용할 수 있다.

  • 웹페이지를 설계할 때는 모든 사용자가
    편리하게 이용할 수 있도록 배려하는 것이 필수임을
    다시 한 번 깨달았다.

앞으로는 단순히 보기 좋은 디자인을 넘어서,

모든 사용자가 공평하게 접근할 수 있는 웹 환경
만드는 것이 중요하다는 점을 기억하려 한다.