미분류

TabIndex 정리 (HTML/Accessibility)

html

1. tabindex란?

tabindex는 HTML 요소의 키보드 포커스 순서를 지정하는 속성입니다. 웹 접근성을 향상시키는 데 중요한 역할을 합니다.

2. 기본 규칙

기본적으로 대부분의 form 요소(<input>, <button>, <a href> 등)는 자동으로 포커스를 받을 수 있음

그 외 요소들은 tabindex가 있어야 포커스 가능

3. tabindex 값의 의미

설명

0

문서의 자연스러운 순서에 따라 포커스 가능하게 함

-1

포커스를 받을 수 있지만, Tab 키로는 이동하지 않음 (스크립트로만 포커스 가능)

양의 정수

Tab 순서를 명시적으로 지정. 숫자가 낮을수록 먼저 포커스를 받음

4. 사용 예시

<!-- 자연스러운 순서 -->
<button>Button A</button>
<button tabindex="0">Button B</button>

<!-- 스크립트로만 포커스 가능 -->
<div tabindex="-1" id="modal">Modal</div>

<!-- 명시적 순서 지정 -->
<div tabindex="1">First</div>
<div tabindex="2">Second</div>

5. 주의 사항

양의 정수는 권장되지 않음 (접근성 문제 및 유지보수 어려움)

tabindex=“-1”은 모달/팝업 등의 포커스 트랩 구현 시 유용함

tabindex와 함께 aria-* 속성을 활용하면 접근성이 향상됨

6. 실무 팁

인터랙션 요소 외에는 되도록 tabindex를 사용하지 말 것

접근성 도구(예: Lighthouse, axe DevTools)를 통해 Tab 이동 흐름을 점검할 것

JavaScript로 포커스 이동 시 .focus() 메서드와 함께 tabindex=“-1”을 적절히 활용