WAI-ARIA 속성을 이용한 자바스크립트 툴팁의 접근성 개선 방법

목차

툴팁의 중요성

툴팁은 웹 애플리케이션에서 매우 유용한 기능입니다. 사용자에게 정보를 제공하고, 어떤 요소의 역할을 명확히 설명하며, 추가적인 안내 또는 도움말을 제공하는 역할을 합니다. 그러나, 시각적으로 표시되는 툴팁만으로는 시각 장애인 및 저시력자와 같은 사용자들에게 정보를 전달하기 어렵습니다. 이러한 문제를 해결하기 위해 WAI-ARIA(Accessible Rich Internet Applications) 속성을 사용하여 툴팁의 접근성을 개선할 수 있습니다.

기본 자바스크립트 툴팁 구현

먼저, 기본적인 자바스크립트 툴팁을 구현해 보겠습니다. 예를 들어, 마우스를 요소 위에 위치시키면 툴팁이 나타나고, 마우스를 떼면 툴팁이 사라지는 기능을 가진 툴팁을 만들어 보겠습니다.

HTML:

<div class="tooltip-container">
  <button id="tooltip-trigger">Hover me</button>
  <div class="tooltip">This is a tooltip</div>
</div>

CSS:

.tooltip-container {
  position: relative;
}

.tooltip {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  padding: 4px;
  background-color: #333;
  color: #fff;
}

JavaScript:

const trigger = document.getElementById('tooltip-trigger');
const tooltip = document.querySelector('.tooltip');

trigger.addEventListener('mouseenter', () => {
  tooltip.style.display = 'block';
});

trigger.addEventListener('mouseleave', () => {
  tooltip.style.display = 'none';
});

위 코드는 간단한 툴팁을 구현한 예시입니다. 그러나, 이 툴팁은 시각적으로만 정보가 전달되기 때문에 접근성에는 문제가 있습니다. 툴팁을 스크린리더로 읽어 주지 않고, 키보드 사용자가 접근해도 툴팁을 확인할 수 없습니다.

WAI-ARIA 속성을 이용한 접근성 개선

WAI-ARIA 속성을 사용하여 툴팁의 접근성을 개선할 수 있습니다. WAI-ARIA는 웹 콘텐츠와 웹 애플리케이션의 접근성을 향상시키기 위한 기술로, 장애인이 웹 콘텐츠에 더 쉽게 접근할 수 있도록 도와줍니다.

  1. aria-describedby 속성을 사용하여 툴팁을 설명하는 역할을 하는 요소의 id 값을 지정합니다.

HTML:

<div class="tooltip-container">
  <button id="tooltip-trigger" aria-describedby="tooltip">Hover me</button>
  <div id="tooltip" class="tooltip">This is a tooltip</div>
</div>
  1. 툴팁이 나타나거나 사라질 때, aria-hidden 속성을 사용하여 해당 요소의 접근성 상태를 변경합니다.

JavaScript:

const trigger = document.getElementById('tooltip-trigger');
const tooltip = document.getElementById('tooltip');

trigger.addEventListener('mouseenter', () => {
  tooltip.style.display = 'block';
  tooltip.setAttribute('aria-hidden', 'false');
});

trigger.addEventListener('mouseleave', () => {
  tooltip.style.display = 'none';
  tooltip.setAttribute('aria-hidden', 'true');
});

위와 같이 WAI-ARIA 속성을 사용하면 툴팁이 스크린리더에게 읽혀지고, 키보드 사용자들도 툴팁의 내용을 확인할 수 있습니다. 이렇게 구현된 툴팁은 더 좋은 접근성을 제공하게 됩니다.

참고 자료