jQuery - Инициировать событие щелчка на ссылках с клавишей "Пробел"?

Это похоже в большинстве браузеров, <input type="submit"> обработки и [клавиша "Пробел"] и [входят] как щелчок, но <a> свяжитесь только обработки [входят] как щелчок.

Мое приложение использует много ссылок, отформатированных для моделирования кнопок, таким образом, пользователь, который приучен к переключению вкладок к кнопке и нажатию [клавиша "Пробел"], будет расстроен.

Этот бит jQuery решает проблему:

$("a.Button").die("keypress").live("keypress", function(e) {
    if (e.which == 32) {
        $(this).trigger("click");
        e.preventDefault();
    }
});

Мой вопрос: существует ли причина не сделать это? Я немного отказываюсь переопределить поведение браузера по умолчанию на чем-то настолько основном, но так как я уже злоупотребляю тегом link, чтобы заставить его быть похожим на кнопку, по крайней мере, этот способ, которым я не нарушаю ожидания пользователя дальше.

9
задан Herb Caudill 18 September 2010 в 15:52
поделиться

2 ответа

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

Если вы переопределили отображение ссылок, превратив их в кнопки, пользователь должен иметь возможность обращаться с этими «кнопками» точно так же, как если бы это была настоящая кнопка, иначе вы запутаете и раздражите пользователей, которые потратили годы. с этим "наученным" поведением.

6
ответ дан 4 December 2019 в 23:39
поделиться

Есть стандартные проблемы с удобством использования.

Я думаю, что «похоже» является ключевым моментом. Если кто-то использует программу чтения с экрана, он «увидит» ссылку и будет действовать соответствующим образом.

Если у кого-то отключен javascript, функция jquery (очевидно) не будет работать, и он также получит поведение ссылки.

Очевидно, вы уже выполнили анализ души (!), Используя ссылку как кнопку, так что речь идет о двух случаях: программа чтения с экрана и не-javascript.

Если вы не можете также смоделировать поведение кнопки (на ссылке) для этих двух случаев, вы будете предлагать разным людям другой опыт, что является хорошей причиной не использовать эту функцию. Либо пробел должен активировать каждое использование этих ссылок / кнопок, либо ни одного из них.

0
ответ дан 4 December 2019 в 23:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: