Атрибут tabindex
tabindex определяет, может ли элемент получить фокус с клавиатуры (Tab) и в каком порядке относительно других элементов.
Applies to
global
Values
"0" — элемент фокусируется в естественном DOM-порядке; положительное число — свой порядок (не рекомендуется); "-1" — элемент программно фокусируемый (через JS), но не Tab.
Example
<div tabindex="0" role="button">Кастомная кнопка</div>
Edge cases
- Положительные значения (1, 2, 3...) ломают естественный порядок навигации и считаются anti-pattern — почти всегда лучше изменить порядок элементов в DOM, а не tabindex.
- tabindex="-1" полезен для программного фокуса (например, на модалке после открытия), без добавления элемента в обычный Tab-порядок.
Accessibility
- Нативно фокусируемые элементы (a, button, input) не нуждаются в tabindex — он нужен только для кастомных интерактивных div/span.