Что такое Tab индекс

Ответ

Tab индекс (tabindex) — это атрибут HTML, определяющий порядок перехода между элементами при навигации с клавиатуры (Tab/Shift+Tab).

Значения:

  • tabindex="0" — элемент включается в естественный порядок навигации.
  • tabindex="-1" — элемент исключается из навигации, но может получать фокус программно (например, через element.focus()).
  • tabindex="1" и выше — элемент получает приоритет в навигации (не рекомендуется из-за проблем с доступностью).

Пример:

<button tabindex="0">Кнопка 1</button>  
<button tabindex="-1">Кнопка 2 (не в табуляции)</button>  
<button tabindex="1">Кнопка 3 (первая в табуляции)</button>  

Важно:

  • Используйте tabindex="0" для интерактивных элементов.
  • Избегайте положительных значений — они нарушают логический порядок.
  • Элементы с tabindex="-1" полезны для модальных окон и динамического фокуса.

Ответ 18+ 🔞

А, слушай, вот эта штука с tabindex — это ж, блядь, как настройка очереди в столовой, только для твоей клавиатуры! Представь: ты тыкаешь Tab, и курсор прыгает по кнопкам, полям — вот этот порядок и есть та самая «табуляция».

Что за цифры, ёпта?

  • tabindex="0" — это как встать в хвост очереди, как все нормальные люди. Элемент вклинивается в естественный поток. Поставил на кнопку — и она теперь ловится Tab'ом. Честно, по-пацански.
  • tabindex="-1" — это, типа, «я вне игры». Tab'ом до него не допрыгнешь, он как призрак. Но! Если ты его программно позовёшь — element.focus() — он материализуется и фокус получит. Штука для модалок, которые выскакивают по щелчку, а не по Tab'у.
  • tabindex="1" или больше — это «я начальник, я первый». Элемент выпрыгивает в начало очереди, всех лохов обгоняя. И вот это — пиздец как не рекомендуется! Потому что получается каша, логика навигации ломается, и пользователь с клавиатуры просто обосрётся, пытаясь понять, куда его несёт.

Смотри, как это выглядит в коде, на примере:

<button tabindex="0">Кнопка 1 (в очереди)</button>
<button tabindex="-1">Кнопка 2 (невидимка для Tab)</button>
<button tabindex="1">Кнопка 3 (хам, прётся вперёд)</button>

Главное, что надо вынести, чтобы не быть мудаком:

  1. Хочешь сделать элемент доступным с клавиатуры — tabindex="0" и не еби мозг. Для кнопок, ссылок, полей ввода — то, что надо.
  2. Положительные значения (1, 2, 999) — это путь в ад доступности. Избегай их, как говна в луже. Они всё ломают.
  3. tabindex="-1" — хитрая, но полезная жопа. Используй для штук, которые появляются по какому-то событию (типа всплывающего окна), чтобы фокус можно было на него программно перекинуть, но он не мешался в обычной навигации.

Вот и вся магия, без всяких ебушки-воробушки. Сделаешь по-человечески — и пользователи тебя мысленно благодарить будут, а не проклинать в голос.