У меня есть <button> с назначенным ему ключом доступа. Клавиша доступа работает нормально, пока кнопка видна, но когда я устанавливаю display: none или visibility: hidden, клавиша доступа больше не работает.
Также безуспешно пробовал:
Обратите внимание: я не уверен, что это стандартное поведение, но до Firefox 3 казалось, что клавиша доступа работала независимо от видимости.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете применить отрицательное поле, чтобы вытолкнуть элемент за пределы видимой страницы. Я думаю, что многие браузеры и программы чтения текста игнорируют элементы с display:none и, возможно, также visibility:hidden.
Вы видите правильное поведение, вы не можете «получить доступ» к элементу, который не отображается. Предложение Сала почти наверняка сработает, но могу я спросить, для чего вы это делаете? Вероятно, есть лучший способ добиться того, чего вы пытаетесь достичь. Вы рассматривали возможность использования обработчика нажатия клавиш?
Я думаю, вы, вероятно, захотите пойти с другими предложениями, если вам не нужен обработчик нажатия клавиш. Попробуйте position: absolute; слева: -9999 пикселей; чтобы вытащить ваш контент со страницы. Или используйте абсолютное положение, измените непрозрачность на ноль и z-index на -1. При использовании абсолютного положения элемент не будет влиять на позиционирование другого содержимого на странице, установка непрозрачности сделает его невидимым. Даже если непрозрачность установлена на ноль, вы все равно можете щелкнуть элемент, и хотя вы его не видите, это может помешать вам щелкнуть другие элементы страницы, поэтому используйте отрицательный z-индекс, чтобы перетащить его за другим содержимым.
Я думаю, вы, вероятно, захотите пойти с другими предложениями, если вам не нужен обработчик нажатия клавиш. Попробуйте position: absolute; слева: -9999 пикселей; чтобы вытащить ваш контент со страницы. Или используйте абсолютное положение, измените непрозрачность на ноль и z-index на -1.
opacity 0 работает без z-index -1. Оба нужны для кроссбраузерности? И спасибо! Включите это в ответ, и я приму этот ответ.
Вместо атрибутов видимости или отображения разместите кнопку за пределами страницы.
<button accesskey = "a" style = "position: absolute; top: -9999px">button</button>
Предупреждение: использование left вместо top вызывает странную ошибку отображения в ie7
Самое простое решение: height: 0px; margin: 0px; padding: 0px; в вашем CSS.
В зависимости от предпочтений пользователь может предпочесть не видеть кнопку (которая перекрывает другой контент), но при этом иметь доступ к диалоговому окну. В крайнем случае буду рассматривать ловушку событий :) Вот сценарий: userscripts.org/scripts/show/35942