Как выбрать все html элементов, на которые пользователь может перейти с помощью JavaScript? - PullRequest
0 голосов
/ 02 апреля 2020

Как я могу выбрать все элементы, к которым пользователь может нажать Tab для перехода?

Нужно ли вводить жесткий код для ввода, textarea, a, button и т. Д., Или есть способ чтобы идентифицировать их с помощью браузера по умолчанию?

То, что я в конечном итоге пытаюсь выполнить sh, здесь: Поведение по умолчанию с помощью вкладок ставит ссылки за липким заголовком

Ответы [ 2 ]

2 голосов
/ 02 апреля 2020

Вы можете написать функцию, которая запрашивает для каждого элемента focusable и отфильтровывать те, которые отключены, потому что это отключает фокус.

const getKeyboardFocusableElements = (element = document) =>
  Array.from(element.querySelectorAll(
    'a, button, input, textarea, select, details,[tabindex]:not([tabindex="-1"])'
  )).filter(el => !el.hasAttribute('disabled'));
1 голос
/ 02 апреля 2020

Можете ли вы попробовать использовать селектор типа document.querySelectorAll("[tab-index]")?

Поскольку атрибут tab-index в качестве неотрицательного значения обеспечивает фокусировку на вкладке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...