Лучшая комбинация клавиш-модификаторов для сочетаний клавиш в Интернете
14
Многие пользователи моего сайта просили сочетания клавиш для доступа к часто просматриваемым страницам. Я знаю, что ссылки могут быть, accesskeyно доступ к ним несовместим во всех браузерах . Я собираюсь использовать JavaScript для определения ярлыка, и я хотел бы, чтобы вы указали, какой должна быть клавиша (-и) модификатора. Я склоняюсь к Ctrl+ Shift.
Вероятно, двух примеров недостаточно, чтобы назвать это «установившейся практикой», но это как минимум два больших примера: ни 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 для выполнения действия Bar» - это не делает мою жизнь проще / быстрее, что является целой целью сочетаний клавиш.
С другой стороны, вот два замечания:
Очевидно, вам придется игнорировать нажатия клавиш, когда они происходят, когда пользователь печатает в текстовом поле. Это не техническая проблема, но это означает, что пользователь не может использовать ярлыки.
Скажем, если ваша страница автоматически фокусируется на окне поиска или у вашего веб-приложения слишком много текста, это может вызвать проблемы.
Вы можете подумать о включении / отключении. Сочетания клавиш являются функцией опытного пользователя; «нормальный» пользователь может удивиться, когда он случайно вызовет сочетание клавиш (очевидно, что клавиша-модификатор сделает это менее вероятным).
Например, в Gmail по умолчанию горячие клавиши отключены, за исключением того, ?что (естественно) показывает справку по быстрым клавишам, включая ссылку для включения / выключения горячих клавиш. Я думаю, что сочетания клавиш - это область, где вы можете сказать, что это нормально, чтобы сделать это настройкой (пользовательские настройки - это то, чего мы обычно стараемся избегать на сайтах Stack Exchange), и решение Google для этого кажется хорошим для этого.
Но «выключено по умолчанию», очевидно, скрывает возможность обнаружения, что может быть или не быть проблемой.
- но, учитывая все обстоятельства, «без ключа модификации» мне кажется хорошим решением.
Еще один момент в составных комбинациях модификаторов (нажмите Ctrl-Alt-Q, чтобы открыть вкладку Foo, затем Meta-Shift-F12) - это на самом деле довольно неудобно с точки зрения доступности. Или даже если у вас просто причудливая клавиатура (кашель), для некоторых комбинаций может потребоваться гимнастика пальцев. Отдельные клавиши: без усилий.
Марк Гравелл
2
Это отличный пост @balpha. Я хочу отметить, что J «вниз», а K «вверх». Текстовый редактор VIM использует ту же логику
Михаил
@Mikhail: Я знаю об этом, но я не согласен с этой логикой - в конце концов, J слева от K. Для меня, если J "вниз", то U должен быть "вверх" , Но, полагаю, я к этому
Там нет выбора «лучший» или универсальный ключ модификатор
Ваши лучшие варианты:
Не используйте клавишу-модификатор (только одиночные нажатия клавиш), затем прекратите обнаружение нажатий клавиш, когда курсор пользователя находится в поле ввода или текстовой области, как это делает Google с ярлыками Gmail.
-- или --
Выберите значение по умолчанию, которое подходит большинству ваших посетителей на основе статистики операционной системы из ваших данных Google Analytics. Разрешите опытным пользователям, которым нужны ярлыки, активировать их и переопределить клавишу-модификатор в своих пользовательских настройках так же, как это делает программное обеспечение для настольных компьютеров.
-- или --
Используйте клавишу «триггер» вместо клавиши-модификатора. Попробуйте ,2перейти ко второй вкладке в области навигации с вкладками и ,3перейти, например, к третьей вкладке . Комбинация запятой, за которой сразу следует число, достаточно необычна, чтобы уменьшить вероятность конфликтов или случайных нажатий.
Во всех случаях вы можете рассмотреть возможность отключения клавиш быстрого доступа по умолчанию, чтобы предотвратить непредвиденное поведение для большинства пользователей, которые, возможно, не заботятся о клавишах быстрого доступа.
Почему бы просто не выбрать комбинацию модификаторов?
Причина, по которой я предлагаю эти методы, заключается в том, что нет стандартного кроссплатформенного ключа-модификатора, который можно считать безопасным для использования с JavaScript в среде браузера. Все , содержащий Ctrl, Shift, Altили Cmd, скорее всего , сломать некоторые ярлыки браузера на некоторых платформах.
Например, ваше предложение использовать Ctrl+ Shiftсломает ярлыки Firefox в Windows, многие из которых используют эту комбинацию для выполнения специальных функций , таких как Ctrl+ Shift+ D, которые ставят в закладки все открытые вкладки.
Производители браузеров используют разные сочетания клавиш для запуска клавиш доступа на каждой отдельной платформе именно потому, что не существует кроссплатформенного стандарта. Например, Apple использует Ctrlна Mac и AltWindows в Safari.
Более того, каждый браузер разрешает конфликты ярлыков по-своему, и это приведет к неожиданным последствиям для ваших пользователей. Когда вы связываете нажатие клавиши с функцией в JavaScript, которая также имеет привязку как собственный ярлык браузера ...
Firefox будет запускать ярлык JavaScript самостоятельно, если вы, return false;но при этом будете выполнять функцию JavaScript, а затем ярлык браузера Firefox, если вы return true;(т.е. он запускает оба по умолчанию).
IE запустит функцию JavaScript и ярлык браузера IE.
Safari / Chrome / Opera будет обрабатывать ярлык браузера, но не JavaScript.
@balpha
. Я хочу отметить, что J «вниз», а K «вверх». Текстовый редактор VIM использует ту же логикуТам нет выбора «лучший» или универсальный ключ модификатор
Ваши лучшие варианты:
Не используйте клавишу-модификатор (только одиночные нажатия клавиш), затем прекратите обнаружение нажатий клавиш, когда курсор пользователя находится в поле ввода или текстовой области, как это делает Google с ярлыками Gmail.
-- или --
Выберите значение по умолчанию, которое подходит большинству ваших посетителей на основе статистики операционной системы из ваших данных Google Analytics. Разрешите опытным пользователям, которым нужны ярлыки, активировать их и переопределить клавишу-модификатор в своих пользовательских настройках так же, как это делает программное обеспечение для настольных компьютеров.
-- или --
Используйте клавишу «триггер» вместо клавиши-модификатора. Попробуйте ,2перейти ко второй вкладке в области навигации с вкладками и ,3перейти, например, к третьей вкладке . Комбинация запятой, за которой сразу следует число, достаточно необычна, чтобы уменьшить вероятность конфликтов или случайных нажатий.
Во всех случаях вы можете рассмотреть возможность отключения клавиш быстрого доступа по умолчанию, чтобы предотвратить непредвиденное поведение для большинства пользователей, которые, возможно, не заботятся о клавишах быстрого доступа.
Почему бы просто не выбрать комбинацию модификаторов?
Причина, по которой я предлагаю эти методы, заключается в том, что нет стандартного кроссплатформенного ключа-модификатора, который можно считать безопасным для использования с JavaScript в среде браузера. Все , содержащий Ctrl, Shift, Altили Cmd, скорее всего , сломать некоторые ярлыки браузера на некоторых платформах.
Например, ваше предложение использовать Ctrl+ Shiftсломает ярлыки Firefox в Windows, многие из которых используют эту комбинацию для выполнения специальных функций , таких как Ctrl+ Shift+ D, которые ставят в закладки все открытые вкладки.
Производители браузеров используют разные сочетания клавиш для запуска клавиш доступа на каждой отдельной платформе именно потому, что не существует кроссплатформенного стандарта. Например, Apple использует Ctrlна Mac и AltWindows в Safari.
Более того, каждый браузер разрешает конфликты ярлыков по-своему, и это приведет к неожиданным последствиям для ваших пользователей. Когда вы связываете нажатие клавиши с функцией в JavaScript, которая также имеет привязку как собственный ярлык браузера ...
return false;
но при этом будете выполнять функцию JavaScript, а затем ярлык браузера Firefox, если выreturn true;
(т.е. он запускает оба по умолчанию).[Источник: приложение у подножки страницы readme Джона Резига jquery.hotkeys .]
источник