HTML에서 `<input>` 태그의 tabindex 속성은 어떻게 사용하나요?
_____A1: `tabindex` 속성은 사용자가 키보드의 탭(Tab) 키를 눌렀을 때 포커스가 이동하는 순서를 지정하는 속성입니다. 이를 통해 폼 요소나 다른 인터랙티브한 요소들의 포커스 이동 순서를 제어할 수 있습니다.
Q2: `tabindex` 속성의 기본 작동 방식은 어떻게 되나요?
A2: 기본적으로 포커스 가능한 요소들은 문서에 나타나는 순서대로 탭 순서가 지정됩니다. `tabindex` 속성을 지정하지 않으면 이 기본 순서가 적용됩니다.
Q3: `tabindex`에 어떤 값을 줄 수 있나요?
A3: `tabindex`는 다음과 같은 정수 값을 가질 수 있습니다:
- 양수 (예: 1, 2, 3...) : 탭 순서를 명시적으로 지정하며, 숫자가 작을수록 우선 순위가 높아 먼저 포커스됩니다.
- 0 : 기본 탭 순서에 따라 포커스가 이동하지만, 기본적으로 포커스 불가능한 요소에도 포커스를 줄 수 있습니다.
- 음수 (예: -1) : 요소가 탭 순서에서 제외되며, 탭 키로는 접근할 수 없지만 스크립트로 포커스를 줄 수 있습니다.
Q4: ``과 ``의 차이점은 무엇인가요?
A4: ``은 탭 순서에서 가장 높은 우선 순위를 부여하여, 탭 키를 누를 때 이 요소가 가장 먼저 포커스됩니다. 반면 ``은 기본 문서 순서에 따라 포커스되며, 특별한 우선순위는 부여되지 않습니다.
Q5: `tabindex="-1"`을 주면 어떻게 되나요?
A5: `tabindex="-1"`이 설정된 요소는 탭 키로는 포커스할 수 없지만, 자바스크립트에서 `element.focus()`를 호출하면 포커스가 가능합니다. 주로 스크린리더 등 접근성 기능 지원이나 동적 UI 처리에 사용됩니다.
Q6: 언제 `tabindex`를 사용해야 하나요?
A6: 기본 탭 순서가 자연스럽지 않거나 사용자 경험을 개선하기 위해 특정 순서로 포커스를 이동시키고 싶을 때 사용합니다. 예를 들어, 비주얼 레이아웃과 탭 순서가 다를 때, 혹은 포커스 불가능한 요소에 포커스를 주고자 할 때 활용됩니다.
A7:
- 양수 값(tabindex > 0)은 유지보수가 어렵고 예상치 못한 포커스 이동 문제를 유발할 수 있으므로 가급적 최소화하는 것이 좋습니다.
- 가능하면 기본 탭 순서를 따르고, 필요할 때만 0이나 -1을 활용하세요.
- 접근성(Accessibility)을 고려하여 스크린리더 및 키보드 사용자에게 혼동을 주지 않도록 신중하게 설정해야 합니다.
Q8: 예제 코드로 `tabindex` 사용법을 보여주세요.
A8:
```html
```
위 코드에서 탭 키를 누르면 두 번째 입력 필드가 먼저, 첫 번째 입력 필드가 두 번째, 세 번째 입력 필드는 기본 순서대로 포커스됩니다. 마지막 입력 필드는 탭 키로 접근할 수 없습니다.
---
정리하면, `` 태그의 `tabindex` 속성은 키보드 포커스 순서를 제어하는 속성으로, 양수, 0, 음수 값을 통해 포커스 동작을 조절하며, 올바른 사용은 웹 접근성을 향상시킵니다.
작성자:
박소현 [비회원]
| 작성일자: 1년 전
2024-09-09 08:40:30
조회수: 298 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 298 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.