맞춤 컨트롤에 ARIA 역할이 있음

모든 맞춤 컨트롤에 적절한 role 및 속성과 상태를 부여하는 필수 ARIA 속성이 있는지 확인합니다. 예를 들어 맞춤 체크박스는 상태를 올바르게 전달하기 위해 role="checkbox"aria-checked="true|false"가 필요합니다.

ARIA 및 HTML을 사용하여 커스텀 컨트롤에 누락된 시맨틱을 제공하는 것이 가장 좋은 시점을 파악하는 방법을 알아봅니다.

테스트 방법

모든 맞춤 대화형 컨트롤에 적절한 ARIA 역할이 있는지 확인하려면 Chrome DevTools 접근성 창 또는 화면 리더를 사용하여 페이지를 테스트합니다.

JAWSNVDA는 Windows용으로 가장 많이 사용되는 스크린 리더 중 하나입니다. VoiceOver는 macOS에 내장된 스크린 리더입니다.

CSS를 사용하면 <div><button> 요소에 스타일을 지정하여 동일한 시각적 어포던스를 전달할 수 있지만 스크린 리더를 사용할 때는 환경이 매우 다릅니다. <div>은 일반 그룹 요소일 뿐이므로 스크린 리더는 <div>의 텍스트 콘텐츠만 안내합니다. <button>는 '버튼'으로 발표되므로 사용자가 상호작용할 수 있는 항목이라는 점을 더 강력하게 전달합니다.

시맨틱 및 스크린 리더도 참고하세요.

해결 방법

이 문제를 해결하는 가장 좋은 방법은 맞춤 대화형 컨트롤을 아예 사용하지 않는 것입니다. 예를 들어 버튼처럼 작동하는 <div>를 실제 <button>로 바꿉니다.

<button>Learn more</button>

<div>를 사용해야 하는 경우 role="button"aria-pressed="false"를 추가합니다.

<div role="button" aria-pressed="false">Learn more</div>

이제 스크린 리더가 <div>의 역할과 대화형 상태를 알려줍니다.

중요한 이유

이전에 보조 기술을 사용해 본 적이 없다면 보조 기술 사용자에게 콘텐츠가 어떻게 표시되는지 알 수 없습니다. 지원 기술을 정기적으로 사용하고 웹사이트 또는 웹 애플리케이션의 작동 방식에 관한 의견을 공유할 수 있는 사용자와 대화하는 것이 좋습니다.

지원 기술 사용자가 콘텐츠를 어떻게 이용하는지 파악하는 또 다른 방법은 지원 기술을 사용하여 테스트하는 것입니다. 스크린 리더를 사용하면 콘텐츠에 라벨이 지정된 방식과 탐색에 장애가 있는지 더 명확하게 파악할 수 있습니다.

리소스

맞춤 컨트롤에 ARIA 역할이 있음 감사의 소스 코드를 확인할 수 있습니다.