Лучшая комбинация клавиш-модификаторов для веб-ярлыков


Многие пользователи моего веб-сайта просили использовать сочетания клавиш для доступа к часто просматриваемым страницам. Я знаю, что ссылки могут иметь accesskey, но доступ к ним непоследователен в разных браузерах. Я собираюсь использовать JavaScript для определения ярлыка, и мне хотелось бы, чтобы вы указали, какими должны быть клавиши-модификаторы. Я склоняюсь к Ctrl+ Сдвиг.

Author: Jeff Atwood, 2011-08-10

2 answers

Двух примеров, вероятно, недостаточно, чтобы назвать это "установившейся практикой", но, по крайней мере, это два больших примера: и Google, и Twitter не используют ни одного. Или, если вы хотите видеть это таким образом, их клавиша-модификатор для навигации - G.

Чтобы перейти на страницу "Избранное" в Твиттере, вы нажимаете G, затем F. Чтобы перейти в папку черновиков gmail, нажмите G, затем D.

Ярлыки без навигации также используют простые буквы; например, J для продвижения вперед в список (твиты, электронные письма и т.д.), K для перемещения назад.*

* В моей книге это абсолютно неправильно. Для меня "J", находящийся слева от "K", означает, что "J" должно быть "предыдущим", а "K" должно быть "следующим". Тем не менее, делать это другими способами, похоже, является стандартом.

Ни один из них вообще не использует "реальный" ключ-модификатор. Мы также начинаем изучать сочетания клавиш для сайтов Stack Exchange, и мы, вероятно, сделаем то же самое. Еще две причины, которые я вижу для вообще не используйте клавишу-модификатор:

  • Меньше шансов споткнуться о что-то, что уже используется. Любая комбинация Ctrl, Alt, Meta, Command, Shift с буквой, вероятно, уже используется какой-либо операционной системой, оконным менеджером, браузером, плагином для браузера или скриптом Greasemonkey. Только для писем? Не так уж и много.
  • Проще в использовании. "Нажмите Ctrl-Alt-Q, чтобы открыть вкладку Foo, затем Meta-Shift-F12 для выполнения действия панели" – это не делает мою жизнь проще/быстрее, что и является целью сочетаний клавиш.

С другой стороны, вот два предостережения, которые следует учитывать:

  • Очевидно, вам придется игнорировать нажатия клавиш, когда они происходят, когда пользователь вводит текст в текстовое поле. Это не техническая проблема, но это означает, что пользователь не сможет использовать ярлыки.

    Если, скажем, ваша страница автоматически фокусирует поле поиска или ваше веб-приложение очень загружено вводом текста, это может создать проблему.

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

    Например, в Gmail по умолчанию отключены сочетания клавиш, за исключением ? который (естественно) показывает справку о сочетаниях клавиш – , включая ссылку для включения/отключения сочетаний клавиш . Я думаю, что сочетания клавиш - это область, в которой вы можете сказать, что все в порядке сделайте это настройкой (пользовательские настройки - это то, чего мы обычно стараемся избегать на сайтах Stack Exchange), и решение Google для этого кажется подходящим для этого.

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

– но, учитывая все обстоятельства, "без ключа-модификатора" вообще кажется мне хорошим решением.

 12
Author: balpha, 2011-08-11 10:31:01

Нет "лучшего" или универсального выбора модификатора ключа

Ваши лучшие варианты - это:

  1. Не используйте клавишу-модификатор (только одно нажатие клавиши), затем прекратите распознавать нажатия клавиш, когда курсор пользователя находится в поле ввода или текстовой области, как это делает Google с Ярлыками Gmail.

    -- или --

  2. Выберите значение по умолчанию, которое подходит большинству ваших посетителей, основываясь на статистике операционной системы из ваших аналитических данных. Разрешить опытным пользователям, которые хотите, чтобы ярлыки активировали их и переопределяли клавишу-модификатор в своих пользовательских настройках так же, как это делает программное обеспечение для настольных компьютеров.

    -- или --

  3. Используйте клавишу "триггер" вместо клавиши-модификатора. Рассмотрим ,2 чтобы перейти на вторую вкладку в области навигации с вкладками и ,3 чтобы перейти к третьему, например. Комбинация запятой, за которой сразу следует число, достаточно необычна, чтобы снизить вероятность конфликтов или случайные нажатия.

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

Почему бы просто не выбрать комбинацию модификаторов?

Причина, по которой я предлагаю эти методы, заключается в том, что не существует стандартизированного кроссплатформенного ключа-модификатора, который вы могли бы считать безопасным для использования с JavaScript в среде браузера. Все, что содержит Ctrl, Сдвиг, Alt или Cmd, скорее всего, сломают некоторые ярлыки браузера на определенных платформах.

Ваше предложение использовать Ctrl+ Shift, например, сломает ярлыки Firefox в Windows, многие из которых используют эту комбинацию для выполнения специальных функций, таких как Ctrl + Сдвиг + D, который закладывает все открытые вкладки.

Производители браузеров используют различные сочетания клавиш для запуска клавиш доступа на каждая отдельная платформа именно потому, что нет кроссплатформенного стандарта. Apple использует Ctrl на Mac и Alt в Windows, например, в Safari.

Более того, каждый браузер разрешает конфликты ярлыков по-разному, и это приведет к неожиданным последствиям для ваших пользователей. Когда вы привязываете нажатие клавиши к функции в JavaScript, которая также имеет привязку в качестве собственного ярлыка браузера...

  • Firefox самостоятельно запустит ярлык JavaScript, если вы return false; но выполнит вашу функцию JavaScript, за которой последует ярлык браузера Firefox, если вы return true; (т.Е. По умолчанию выполняется и то, и другое.)
  • IE запустит функцию JavaScript, за которой последует ярлык браузера IE.
  • Safari/Chrome/Opera обработает ярлык браузера, но не ярлык JavaScript.

[Источник: добавление внизу страницы Джона Ресига jquery.горячие клавиши readme.]

 8
Author: Nick, 2011-08-11 08:02:54