Подтвердить что ты не робот

Tabindex в CSS

Можно ли управлять tabindex с помощью CSS и, если да, какие браузеры поддерживают его и на каких элементах?

ИЗМЕНИТЬ

Я должен сказать, моя цель - поймать события keydown на div. Я видел эту страницу http://www.quirksmode.org/js/events/keys.html#, которая тестирует события клавиатуры, и показывает, что единственный способ, с помощью которого работает keydown, - ничего, кроме документа и тела или какого-либо элемента формы или ссылки чтобы на нем был объявлен tabindex. Но я читал на сайте W3C:

Следующие элементы поддерживают tabindex: A, AREA, BUTTON, INPUT, OBJECT, SELECT и TEXTAREA.

Итак, я немного смущен, что делать, чтобы быть совместимым с стандартами и сделать работу по моему делу?

EDIT2

Весь мой прецедент - это div с большим количеством контента с помощью искусственной полосы прокрутки. Я могу прокручивать его с помощью событий мыши, но пока не повезло с клавиатурой.

4b9b3361

Ответ 1

Обновление 2017 года

Как отмечает @Wallop в комментариях, свойство nav-index было исключено из спецификации в 2015 году из-за "отсутствия интереса к реализации".


Взгляните на свойство nav-index, представленное W3C в CSS3-UI.

Это свойство в точности соответствует поведению tabindex и применимо к любому элементу.

Свойство nav-index является нейтральным для метода ввода способом задания последовательного порядка навигации (также известного как "порядок табуляции"). Это свойство заменяет атрибут HTML4/XHTML1 ‘tabindex

Будучи, вероятно, лучшим стандартом-решением для данного сценария использования, nav-index до сих пор интерпретируется только Opera (по состоянию на июнь 2012 года) и также помечена W3C как "Функция, подверженная риску", поэтому может быть удалена в любое время.

Альтернативные кросс-браузерные решения:

  • не соответствует стандартам: установите атрибут tabindex на DIV. Это будет работать во всех распространенных браузерах.

  • Соответствует стандартам: замените DIV на элемент привязки (A) без установленного атрибута href, добавьте в стиль display: block и добавьте атрибут tabindex.

Что касается точки зрения BoltClock, я согласен с тем, что порядок табуляции очень логичен (и порядок выбора текста, и порядок табуляции тесно связаны с последовательностью расположения элементов в документе). С другой стороны, сегодня CSS имеет более широкое назначение. Он может манипулировать не только содержимым документа (свойство content), но и поведением, когда и если события должны запускаться: то есть, используя pointer-events, display или z-index, изменится порядок событий указателя. Если это очень простые CSS-свойства, почему вы тоже не можете влиять на KeyBoardEvents?

Ответ 2

Это немного устарело, но теперь есть опции css, такие как -moz-user-focus. Я уверен, что есть аналог WebKit.

https://developer.mozilla.org/en-US/docs/CSS / -moz-user-focus

user-focus является стандартным атрибутом кросс-браузера.