반응형
tabIndex
tabIndex 전역 특성은 요소가 포커스 가능함을 나타내며,
Tab키를 사용한 연속적인 키보드 탐색에서 어느 순서에 위치할지 지정해준다.
tabIndex는 3개의 상태를 가진다.
음의 정수값 : 연속 키보드 탐색(이하 tab)으로 접근할 수 없는 값
0 : tab을 사용해 접근할 수 있는값, 위에서 아래 순서대로 접근 가능해짐
양의 정수값 : tab을 사용해 접근 가능하며 숫자가 큰 순서대로 우선순위가 정해진다. 최대값은 32767이다.
0부터 시작해서 다음에 1이 있고, 그다음 2가 되고 이런 식이다.
대화형 컨텐츠(<a>, <button>, <details>, <input>, <select>, <textarea> 등)은 tabIndex의 기본값이 0이고,
비대화형 컨텐츠(div 등)은 기본값이 -1이라 지정 해주지 않으면 tab키로 접근하지 않는다.
예시)
tabIndex test
1
2
10
1
(tistory에서 다른 tab때문에 엉키게 보임)
코드)
<h2>tabIndex test</h2>
<div>
<div>1</div>
<div tabindex="3">2</div>
<div tabindex="1"> 10</div>
<button tabindex="2" type="button">abc</button>
<div>1</div>
</div>
tabIndex를 임의대로 사용하면 사용자 입장에서 의도치 않은 결과를 낼 수 있는것 같으니
가능하면 양수 값 사용은 자제하는게 좋을 것 같다.
modal 열릴때 다른 곳 tab focus 방지를 위해 tabIndex를 활용하면 좋다는데
이건 한번 써보고 이어 쓰기로..
reference
https://developer.mozilla.org/ko/docs/Web/HTML/Global_attributes/tabindex
반응형