Front-end/Accessibility

[웹접근성]html 기본태그에도 역할 속성 (role)을 사용해야할까?

by 빽짱구 2024. 6. 20.

 

role 속성을 명시적으로 추가해야 하는 경우를 살펴보겠습니다. 기본적으로 HTML 요소들은 자신의 태그에 따라 적절한 역할(role)을 가지고 있기 때문에 대부분의 경우에는 별도로 role 속성을 지정할 필요가 없습니다. 하지만 몇 가지 상황에서는 추가적인 role 속성을 사용하여 요소의 역할을 명확히 할 수 있습니다.

 

결론을 먼저 말하자면, 기본적인 태그에 똑같이 role 을 지정할 필요는 없습니다.

1. button 요소

  • 사용 예시: <button>확인</button>
  • 추가 고려 사항: <button> 요소는 기본적으로 버튼 역할을 가지므로 일반적으로 별도의 role="button"을 지정할 필요는 없습니다. 단, 특정 상황에서 role 속성을 사용하여 추가적인 의미를 전달할 필요가 있을 수 있습니다 (예: 사용자 정의 버튼 디자인).

2. input type="checkbox" 요소

  • 사용 예시: <input type="checkbox" id="checkbox1"> <label for="checkbox1">체크박스</label>
  • 추가 고려 사항: <input type="checkbox"> 요소는 기본적으로 체크박스 역할을 가지고 있습니다. 일반적으로 별도의 role="checkbox"를 지정할 필요는 없습니다. 다만, 복잡한 UI나 특정 접근성 요구사항을 충족시키기 위해 aria-checked 속성과 함께 사용할 수 있습니다.

3. dialog 요소

  • 사용 예시: <dialog open>다이얼로그 내용</dialog>
  • 추가 고려 사항: <dialog> 요소는 모달 다이얼로그 역할을 가지고 있으며, 일반적으로 별도의 role="dialog"를 지정할 필요는 없습니다. 그러나 스크린 리더와의 호환성을 위해 role="dialog"을 명시적으로 추가하는 것이 좋습니다.

4. nav 요소

  • 사용 예시: <nav><ul><li><a href="#">링크</a></li></ul></nav>
  • 추가 고려 사항: <nav> 요소는 내비게이션 역할을 가지고 있으며, 일반적으로 별도의 role="navigation"을 지정할 필요는 없습니다. 다만, 특정 상황에서 role="navigation"을 사용하여 추가적인 의미를 전달할 수 있습니다 (예: 스크린 리더에서 명확한 내비게이션 구조를 제공할 때).

요약

  • HTML 요소들은 기본적으로 자신의 태그에 따라 적절한 역할을 가지고 있기 때문에 대부분의 경우 별도의 role 속성을 지정할 필요가 없습니다.
  • 특정 상황에서는 추가적인 접근성 요구사항을 충족시키기 위해 role 속성을 명시적으로 사용할 수 있습니다.
  • 또한, role 속성을 사용할 때는 해당 요소의 기본적인 의미와 충돌하지 않도록 주의해야 합니다.
728x90