Кнопки и ссылки триггеров клавиатуры

Во время исследования я наткнулся на это утверждение:

Предупреждение: будьте осторожны при разметке ссылок с помощью роли кнопки. Ожидается, что кнопки будут запускаться с помощью клавиши пробела, а ссылки должны запускаться с помощью клавиши ввода.

  1. Кто-нибудь знает, почему для кнопок / ссылок используется другой ключ?

  2. Это нормально для запуска, используя пробел и Enter?

Прежде чем читать это, я, как пользователь, понятия не имел, когда использовать пробел или Enter.


Быстро взглянул на Google, чтобы увидеть, что они делают.

  • Для ссылок прокручиваем пробел вниз и вводим триггеры
  • Для кнопок " Пробел" и " Ввод"

2 ответа

Решение
  1. Кнопки являются элементами формы.

    Если вы выберете checkbox элемент, пробел будет переключать флажок, в то время как Enter отправит форму.

    Чтобы быть последовательными, кнопки действуют одинаково. На практике они принимают как вход, так и пространство без разницы.

  2. Это не только хорошо, но вы должны

    Читайте внутри Третьего правила ARIA:

    Например, если используется роль role=, элемент должен иметь возможность получать фокус, а пользователь должен иметь возможность активировать действие, связанное с элементом, используя как ввод (в ОС WIN), так и возврат (MAC OS) и клавишу пробела.

  3. Это по историческим причинам, а не потому, что это было определено в какой-либо официальной рекомендации, насколько я знаю

    Например, старая ошибка 2000 года ( https://bugzilla.mozilla.org/show_bug.cgi?id=56495) уже показала, что пробел должен работать на кнопках. Возможно наследование от поведения Windows.

Я предполагаю ответить на вопрос № 1, но я считаю, что ключи, используемые для активации кнопок по сравнению с гиперссылками, являются пережитками операционных систем. Что касается гиперссылок, подумайте о справке Windows в Windows 95 и ее зависимости от ссылок на контент или Hypercard на Mac до этого. Также обратите внимание, что Space прокручивал страницу в браузерах с первого дня (IIRC).

Чтобы ответить № 2, нет, это не в порядке. Это потому, что пробел вызывает прокрутку страницы, и многие пользователи ожидают, что когда фокус находится на гиперссылке, нажатие Space будет просто прокручивать страницу.

Короче говоря, соблюдайте раскладки клавиатуры, которые существуют, поскольку есть пользователи, которые полагаются на них, и связывание с ними может иметь катастрофические последствия для пользователей вспомогательных технологий наряду с пользователями с ограниченными возможностями, которые не используют вспомогательные технологии.

Позвольте мне повторить то, что вы видели в Mozilla:

Гиперссылка может быть запущена нажатием клавиши ввода. Но настоящая кнопка может быть запущена нажатием клавиши ввода или пробела. Когда гиперссылка имеет фокус и пользователь нажимает клавишу пробела, страница прокручивается на один экран.

А потом позвольте мне добавить это:

Я думаю, что также стоит упомянуть, что события, запускаемые пробелом, запускаются только при отпускании клавиши, тогда как использование клавиши Enter запускает событие, как только вы нажимаете клавишу (до ее отпускания).

Источник: Ссылки, Кнопки, Представляет, и Дивы, О, черт возьми.

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