Как я могу определить ключ доступа для невидимого элемента HTML

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

Также безуспешно пробовал:

  • Используйте другой тип элемента: a, input (разные типы, даже без типа).
  • Назначьте ключ доступа метке, которая обертывает невидимый элемент управления.

Обратите внимание: я не уверен, что это стандартное поведение, но до Firefox 3 казалось, что клавиша доступа работала независимо от видимости.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
1 615
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Вы можете применить отрицательное поле, чтобы вытолкнуть элемент за пределы видимой страницы. Я думаю, что многие браузеры и программы чтения текста игнорируют элементы с display:none и, возможно, также visibility:hidden.

Ответ принят как подходящий

Вы видите правильное поведение, вы не можете «получить доступ» к элементу, который не отображается. Предложение Сала почти наверняка сработает, но могу я спросить, для чего вы это делаете? Вероятно, есть лучший способ добиться того, чего вы пытаетесь достичь. Вы рассматривали возможность использования обработчика нажатия клавиш?

Я думаю, вы, вероятно, захотите пойти с другими предложениями, если вам не нужен обработчик нажатия клавиш. Попробуйте position: absolute; слева: -9999 пикселей; чтобы вытащить ваш контент со страницы. Или используйте абсолютное положение, измените непрозрачность на ноль и z-index на -1. При использовании абсолютного положения элемент не будет влиять на позиционирование другого содержимого на странице, установка непрозрачности сделает его невидимым. Даже если непрозрачность установлена ​​на ноль, вы все равно можете щелкнуть элемент, и хотя вы его не видите, это может помешать вам щелкнуть другие элементы страницы, поэтому используйте отрицательный z-индекс, чтобы перетащить его за другим содержимым.

В зависимости от предпочтений пользователь может предпочесть не видеть кнопку (которая перекрывает другой контент), но при этом иметь доступ к диалоговому окну. В крайнем случае буду рассматривать ловушку событий :) Вот сценарий: userscripts.org/scripts/show/35942

Chris Noe 28.10.2008 23:03

Я думаю, вы, вероятно, захотите пойти с другими предложениями, если вам не нужен обработчик нажатия клавиш. Попробуйте position: absolute; слева: -9999 пикселей; чтобы вытащить ваш контент со страницы. Или используйте абсолютное положение, измените непрозрачность на ноль и z-index на -1.

Prestaul 29.10.2008 22:45

opacity 0 работает без z-index -1. Оба нужны для кроссбраузерности? И спасибо! Включите это в ответ, и я приму этот ответ.

Chris Noe 30.10.2008 05:23

Вместо атрибутов видимости или отображения разместите кнопку за пределами страницы.

<button accesskey = "a" style = "position: absolute; top: -9999px">button</button>

Предупреждение: использование left вместо top вызывает странную ошибку отображения в ie7

Самое простое решение: height: 0px; margin: 0px; padding: 0px; в вашем CSS.

Другие вопросы по теме