Каждый браузер имеет различные собственные сочетания клавиш. Которые свободны / безопасный использовать, если мы хотим добавить некоторый пряный материал к нашему веб-приложению?
Дополнительная информация:
Я не должен особенно быть нацелен на каждый браузер. Эти пять крупных фирм каждый достаточен. Например, Opera обычно использует Ctrl + ключ, оставляя почти весь Высокий звук + ключ "свободный связать".
Поскольку различные браузеры используют другой основной модификатор (Ctrl в Opera), я могу легко предположить использовать другой ключ для привязки ярлыков на. т.е. Высокий звук + Ключ в Opera, Ctrl + Ключ в браузере 2, Ctrl + Высокий звук в браузере 3, и т.д.
Если вам нужны только сочетания клавиш вне элементов формы, имеющих фокус, я бы использовал простые буквы (нет Ctrl / Alt / Shift / и др.). Обычные символы важны для браузера только в том случае, если элемент формы имеет фокус. В противном случае их игнорируют.
Например, если у вас есть содержимое, разбитое на страницы, P может быть предыдущим, а N - следующим.
(Не уверен, что это полностью решит вашу проблему, потому что это не сработает, когда элемент формы находится в фокусе.)
На основании вашего комментария (фокус будет внутри текстового поля), я бы предложил одну букву для каждого действия выбирается разная комбинация Ctrl / Alt / Shift для каждого браузера. Большинство людей используют только один браузер, поэтому для каждого пользователя не составляет большого труда выучить только свою собственную комбинацию.
Так, например, Ctrl + Alt + N в одном браузере может быть таким же, как Alt + N в другом.
Первое, что я хотел бы протестировать, это Shift , потому что в большинстве встроенных комбинаций он не используется, но я не знаю, всегда ли в комбинациях учитывается регистр. Также следите за комбинациями, специфичными для ОС.
Вот что я нашел в основном доступным на данный момент:
OS X - FF/Safari/Chrome - ctrl-[key]
Windows - FF/IE - ctrl-alt-[key]
Короткий ответ:
К разочарованию, наше исследование обнаружило, что все ключи, кроме трех, были ранее "заявлены" одной технологией или другой:
* AccessKey / (косая черта) * AccessKey (обратная косая черта) * AccessKey ] (правая квадратная скобка)
Это объясняется в этой статье:
Эта статья Википедии дает хорошее общее введение в эту тему:
Моя рекомендация - менять ее в зависимости от браузера. Дело в том, что существует так много браузеров, что я думаю, вам будет трудно придумать схему ярлыков, которая не сломается хотя бы в одном популярном браузере.
Вы можете изменить настройку ярлыков в зависимости от браузера, а также изменить инструкции, указывающие, какие ярлыки использовать в зависимости от браузера пользователя.
В идеале, вы должны сделать ярлык как можно более интуитивным (Ctrl + X, или Alt + X и т.д.), не вмешиваясь в работу браузера.
Редактировать: В качестве альтернативы, если вам удобно переопределять функциональность по умолчанию, можно использовать следующее: http://www.openjs.com/scripts/events/keyboard_shortcuts/
Когда вы указываете сочетание клавиш, браузер будет игнорировать это сочетание, и вы сможете использовать его в своем приложении (как это делает gmail, например, с Ctrl + S).
Программы чтения с экрана (JAWS, NVDA, ...) уже используют всю клавиатуру, включая мертвые клавиши (я немного преувеличиваю, но он конкурирует с Adobe Photoshop по количеству сочетаний клавиш использовал).
Поэтому, если вы хотите поддерживать программы чтения с экрана и другие вспомогательные технологии, вам следует использовать ARIA и особенно role = "application" . Это позволит избежать конфликтов между вашим приложением и режимом работы программ чтения с экрана по умолчанию на веб-страницах. Один недостаток в том, что вам нужно прочитать десятки и десятки страниц ...
Введение в WAI / ARIA (traduction en français) (наш общий родной язык, не правда ли, SDZ / zC?;) )
РЕДАКТИРОВАТЬ: Один из способов разрешения конфликтов - позволить пользователю определять и изменять свои собственные ярлыки.
Для пользователей Mac вы определенно хотите использовать Ctrl, поскольку Alt используется для ввода множества различных символов, а command - это клавиша действия по умолчанию, которую используют браузеры. Я бы также избегал комбинаций, использующих основные сочетания клавиш в стиле emacs (некоторые пользователи используют их как Ctrl + K, которые SO умудряется испортить ;), хотя они менее известны и поэтому могут быть использованы.
Для Windows это сложнее - и у меня нет win-бокса, чтобы проверить это самому.
Для практического решения скопируйте Google. У них есть сочетаний клавиш в Gmail (и, возможно, в других продуктах), которые неплохо справляются с обходом сочетаний клавиш в браузере.