Кнопки и ссылки триггеров клавиатуры
Во время исследования я наткнулся на это утверждение:
Предупреждение: будьте осторожны при разметке ссылок с помощью роли кнопки. Ожидается, что кнопки будут запускаться с помощью клавиши пробела, а ссылки должны запускаться с помощью клавиши ввода.
Кто-нибудь знает, почему для кнопок / ссылок используется другой ключ?
Это нормально для запуска, используя пробел и Enter?
Прежде чем читать это, я, как пользователь, понятия не имел, когда использовать пробел или Enter.
Быстро взглянул на Google, чтобы увидеть, что они делают.
- Для ссылок прокручиваем пробел вниз и вводим триггеры
- Для кнопок " Пробел" и " Ввод"
2 ответа
Кнопки являются элементами формы.
Если вы выберете
checkbox
элемент, пробел будет переключать флажок, в то время как Enter отправит форму.Чтобы быть последовательными, кнопки действуют одинаково. На практике они принимают как вход, так и пространство без разницы.
Это не только хорошо, но вы должны
Читайте внутри Третьего правила ARIA:
Например, если используется роль role=, элемент должен иметь возможность получать фокус, а пользователь должен иметь возможность активировать действие, связанное с элементом, используя как ввод (в ОС WIN), так и возврат (MAC OS) и клавишу пробела.
Это по историческим причинам, а не потому, что это было определено в какой-либо официальной рекомендации, насколько я знаю
Например, старая ошибка 2000 года ( https://bugzilla.mozilla.org/show_bug.cgi?id=56495) уже показала, что пробел должен работать на кнопках. Возможно наследование от поведения Windows.
Я предполагаю ответить на вопрос № 1, но я считаю, что ключи, используемые для активации кнопок по сравнению с гиперссылками, являются пережитками операционных систем. Что касается гиперссылок, подумайте о справке Windows в Windows 95 и ее зависимости от ссылок на контент или Hypercard на Mac до этого. Также обратите внимание, что Space
прокручивал страницу в браузерах с первого дня (IIRC).
Чтобы ответить № 2, нет, это не в порядке. Это потому, что пробел вызывает прокрутку страницы, и многие пользователи ожидают, что когда фокус находится на гиперссылке, нажатие Space
будет просто прокручивать страницу.
Короче говоря, соблюдайте раскладки клавиатуры, которые существуют, поскольку есть пользователи, которые полагаются на них, и связывание с ними может иметь катастрофические последствия для пользователей вспомогательных технологий наряду с пользователями с ограниченными возможностями, которые не используют вспомогательные технологии.
Позвольте мне повторить то, что вы видели в Mozilla:
Гиперссылка может быть запущена нажатием клавиши ввода. Но настоящая кнопка может быть запущена нажатием клавиши ввода или пробела. Когда гиперссылка имеет фокус и пользователь нажимает клавишу пробела, страница прокручивается на один экран.
А потом позвольте мне добавить это:
Я думаю, что также стоит упомянуть, что события, запускаемые пробелом, запускаются только при отпускании клавиши, тогда как использование клавиши Enter запускает событие, как только вы нажимаете клавишу (до ее отпускания).
Источник: Ссылки, Кнопки, Представляет, и Дивы, О, черт возьми.