Как игнорировать HTML-элемент из tabindex?
Есть ли способ HTML в браузере запретить индексирование вкладок для определенных элементов?
На моей странице, хотя есть стороннее представление, которое отображается с помощью jQuery, когда вы вставляете это, вы получаете много вкладок, пока элемент управления вкладки не переместится к следующей видимой ссылке на странице, поскольку все вещи, скрыты для пользователя визуально.
Ответы
Ответ 1
Вы можете использовать tabindex="-1"
.
спецификация HTML5 W3C поддерживает отрицательные значения tabindex
:
Если значение представляет собой отрицательное целое число
Пользовательский агент должен установить флаг фокусировки tabindex элемента, но не должен позволять достигать элемента с помощью последовательной навигации по навигации.
Следите за тем, что это функция HTML5 и может не работать со старыми браузерами.
Чтобы быть стандарт W3C HTML 4.01 (с 1999 года), tabindex должен быть положительным.
Ответ 2
Не забывайте, что даже если tabindex
является строчным в спецификациях и в HTML, в Javascript/DOM это свойство называется tabindex
.
Не теряйте рассудок, пытаясь понять, почему ваши программно измененные индексы табуляции, вызывающие element.tabindex = -1
, не работают. Используйте element.tabindex = -1
.
Ответ 3
Если это элементы, естественно, в порядке вкладок, таких как кнопки и привязки, удаление их из порядка вкладок с помощью tabindex = -1 - это вид запаха доступности. Если они предоставляют дублирующую функциональность, удаляя их из порядка вкладок, это нормально, и рассмотрите возможность добавления aria-hidden = true к этим элементам, чтобы вспомогательные технологии игнорировали их.
Ответ 4
Если вы работаете в браузере, который не поддерживает tabindex="-1"
, вы можете уйти, просто передав вещи, которые нужно пропустить , действительно высокий индекс вкладки. Например, tabindex="500"
в основном перемещает порядок вкладок объекта в конец страницы.
Я сделал это для длинной формы ввода данных с кнопкой, брошенной посередине. Это не кнопка, которую люди нажимают очень часто, поэтому я не хотел, чтобы они случайно встали на нее и нажали клавишу ввода. disabled
не будет работать, потому что это кнопка.
Ответ 5
Такой хак вроде tabIndex = -1 не работает для меня с Chrome v53.
Это работает для хрома и большинства браузеров:
element.removeAttribute('tabindex');
Ответ 6
Просто добавьте атрибут disabled
к элементу (или используйте jQuery, чтобы сделать это для вас). Отключено предотвращает фокусировку или выделение ввода.
Ответ 7
Способ сделать это - добавление tabindex="-1"
. Добавляя это к определенному элементу, он становится недоступным при навигации по клавиатуре. Существует большая статья здесь, которая поможет вам в дальнейшем понять TabIndex.