Как правило, не используют положительные индексы табуляции . Совсем. Если вы хотите иметь возможность табулировать что-либо, просто присвойте tabindex значение ноль и используйте порядок разметки для определения последовательности.
Отрицательные табличные индексы следует использовать только в том случае, если вам нужно сфокусировать интерактивный элемент. (Гиперссылки интерактивны, так что нет).
Вообще говоря, если вы переходите между гиперссылками, вам вообще не следует связываться с tabindex. Гиперссылки уже ориентированы на клавиатуру . Пожалуйста, не помещайте атрибуты tabindex в элементы <a>
, <button>
или <input>
. Они уже являются частью последовательности вкладок.
Если у вас есть веские основания для перехода в последовательности, есть атрибут aria-flowto
, который предназначен для этой цели, но он плохо поддерживается и не полностью указан , Вы можете попробовать это, хотя. Если ссылка суб-навигации 1 имеет идентификатор subnavlink1
, вы пометите ссылку 1 следующим образом:
<a href="whatever.html" aria-flowto="subnavlink1">Link 1</a>
Это может работать в некоторых браузерах, но я замечаю, что это не работает в Chrome, даже хотя вкладка «Доступность» в инструментах разработчика распознает ее наличие.
Для более надежного отклонения от последовательности вкладок порядка разметки прослушайте событие focusout
или blur
для элемента, который вы «покидаете», и используйте его. этот обработчик событий, чтобы сосредоточиться на каком-то другом элементе. Эти события очень похожи , оба позволяют перенаправить последовательность вкладок. Они стреляют до того, как сфокусируется на следующем элементе, так что вы можете сосредоточиться, где хотите. Вам может потребоваться предотвращать дефолт или возвращать ложный шаблон
Basi c, который может выглядеть примерно так:
var lnk = document.querySelector("nav > a:nth-child(1)");
var snl = document.querySelector("#subnav > a:nth-child(1)");
lnk.addEventListener("focusout", function () {
snl.focus();
});
Вы должны (конечно) мягко кодировать навигационные индексы в строке селектора , так что вы можете использовать один и тот же трюк для всех ссылок, если это необходимо.