레이블 제공 - by. UXKM

요약 설명

관련 지침 : 사용자 입력에는 대응하는 레이블을 제공해야 한다.
사용자 입력 근처에 사용법을 알려주는 레이블을 보조기술이 알 수 있도록 해당 콘트롤과 대응하여 제공해야 합니다.
레이블과 사용자 입력 간의 관계를 보조기술이 인식할 수 있도록 대응시키지 않고 단순히 텍스트로만 제공할 경우, 보조기술은 해당 사용자 입력에 대한 레이블을 인식할 수 없습니다.

관련 WCAG 2.2 성공 기준

  • 성공 기준 3.3.2 (레벨 A) 요구 사항

    각 입력 필드에 대해 레이블이나 지시사항을 제공해야 합니다. 이를 통해 사용자는 해당 필드에 어떤 정보를 입력해야 하는지 명확하게 알 수 있습니다.

WCAG 2.2 - 3.3.2 레이블 또는 지시사항 (Level A)

기대효과

레이블과 사용자 입력 간의 관계를 보조기술이 인식할 수 있도록 대응시키면, 화면낭독프로그램을 사용하는 시각장애인에게 해당 콘트롤이 어떤 용도로 사용되는지를 알려줄 수 있으므로 잘못된 데이터의 입력을 방지할 수 있습니다.

필요성

입력 필드나 양식 구성 요소는 시각적으로 식별 가능한 레이블뿐 아니라, 보조 기술 사용자에게도 인식될 수 있는 시멘틱한 레이블을 제공해야 합니다. 레이블 제공은 정보 전달과 오류 방지를 위한 중요한 접근성 항목입니다.

  • 입력 목적의 명확화

    사용자에게 어떤 정보를 입력해야 하는지 정확히 알려줍니다.

  • 보조기술 호환성 보장

    스크린 리더 사용자도 필드의 의미를 알 수 있습니다.

  • 오류 감소

    입력 오류나 혼동을 줄이고 효율적인 데이터 수집이 가능합니다.

대상

  • 사용자 유형
  • 이유
  • 시각장애인

    스크린 리더를 통해 필드의 이름을 듣고 이해함

  • 인지장애인

    텍스트 안내로 어떤 정보를 입력해야 하는지 명확히 인지 가능

  • 고령자

    시각적 안내 부족 시 혼란을 줄 수 있음

체크리스트

  • <label> 요소가 입력 필드와 연결되어 있는가? (for="id"id="" 매칭)
  • 시각적으로 레이블이 없을 경우, aria-label 또는 aria-labelledby 제공 여부
  • placeholder만으로 레이블을 대체하지 않았는가?
  • 레이블은 구체적이며 명확한가?

테스트 방법

  • 스크린 리더(NVDA, JAWS 등)로 입력 필드에 접근하여 필드명이 올바르게 출력되는지 확인합니다.
  • 개발자 도구의 접근성 트리 또는 name, role, value를 확인합니다.
  • 키보드만으로 입력 필드를 탐색할 때 레이블이 읽히는지 확인합니다.

QA 지표

  • 명시적 레이블 제공 비율
  • aria-label, aria-labelledby 활용률
  • 스크린 리더 레이블 출력 성공률

개발방법

html 예시 – 올바른 레이블 제공

ARIA 사용 예시

대체 방식으로 aria-label이나 aria-labelledby를 사용할 수도 있습니다.

aria-label

이 방식은 시각적 레이블이 필요 없을 때 유용하지만, 가급적 <label> 요소를 활용하는 것이 가장 접근성 친화적입니다.

aria-labelledby

  • aria-labelledby="username-label"<input> 요소가 <span> 요소의 텍스트를 레이블로 사용합니다.
  • 스크린 리더는 <span>의 텍스트 "사용자 이름:"<input>의 레이블로 인식합니다.
  • 이 방법은 시맨틱하게 <label> 태그를 사용하지 않고도 접근성을 확보할 수 있게 해줍니다.

Vue 예시

React 예시

점검 기준

  • 모든 입력 요소에 레이블이 존재하는가?
  • 스크린 리더가 해당 레이블을 정확히 읽어주는가?
  • for 속성과 id 속성의 연결이 일치하는가?

점검 방법

  • 크롬 요소 검사 및 접근성 탭에서 필드의 name을 확인합니다.
  • 스크린 리더 테스트를 통해 각 입력 필드에 포커스를 줄 때 적절한 이름이 들리는지 확인합니다.
  • 자동화 도구(Lighthouse, Axe 등)에서 레이블 누락 경고가 있는지 확인합니다.

준수/미준수 사례

미준수 사례

문제점 :
<input> 요소에 <label>이 제공되지 않아 스크린 리더 사용자는 입력 필드의 목적을 알 수 없습니다.
시각적으로는 문제 없어 보일 수 있지만, 접근성은 떨어집니다.

준수 사례

설명 :
<label> 요소가 명시적으로 제공되어 스크린 리더가 해당 입력 필드의 용도를 정확히 읽어줄 수 있습니다.
for="username"id="username" 속성으로 레이블과 입력 필드를 연결합니다.

관련 영상

출처 : AOA11Y (Academy Of Accessibility)


접근성 테스트 도구 활용 점검방법

결론

접근성은 시작은 있지만 끝이 없는 작업입니다.
오류 항목을 정기적으로 점검하여 접근성 개선을 한다면 점차 검사를 할 항목이 줄어들게 될 것입니다. 모두가 차별 없이 서비스를 이용할 수 있도록 접근성 유지를 위한 모두의 노력이 필요합니다. 무엇보다 접근성 작업은 서비스를 제공한다면 선택이 아닌 필수로 지켜야하는 항목임을 잊지 말아야 합니다.

접근성 작업 시 점검 필수사항

  • 접근성 가이드(WCAG, KWCAG, WAI-ARIA) 내용 숙지
  • 접근성 체크리스트 작성
  • 접근성 자동 및 수동 검사(스크린리더) 진행
  • 접근성 검사 툴(Lighthouse Accessibility 등) 활용 오류 항목 개선 및 내용 정리
  • 접근성 사용자 테스트
  • 접근성 정기적인 모니터링