Найкраща комбінація ключових модифікаторів для веб-клавіш


14

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

Відповіді:


12

Два приклади, мабуть, недостатньо, щоб назвати це "усталеною практикою", але принаймні два великих приклади: і Google, і Twitter не використовують жодного. Або, якщо ви хочете побачити це таким чином, є їх модифікатор ключ для навігації G.

Щоб перейти на сторінку "улюблених" у Twitter, ви натисніть 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 для цього здається приємним для цього.

    Але "вимкнено за замовчуванням", очевидно, приховує виявлення, яке може бути, а може і не бути проблемою.

- але, зважаючи на все, "жоден ключ модифікатора" мені не здається хорошим рішенням.


3
Ще один момент у комбінованих модифікаторах комбінацій (натисніть Ctrl-Alt-Q, щоб відкрити вкладку Foo, потім Meta-Shift-F12) - таке насправді досить незручно з точки зору доступності. Або навіть якщо у вас просто химерна клавіатура (кашель), для деяких комбінацій може знадобитися пальчикова гімнастика. Одні клавіші: без зусиль.
Marc Gravell

2
Це відмінний пост @balpha. Я хочу зазначити, що J "вниз", а K "вгору". Текстовий редактор VIM використовує ту саму логіку
Михайло

@Mikhail: Я знаю про це, але я не згоден з цією логікою - зрештою, J - зліва від K. Для мене, якщо J "вниз", то U має бути "вгору" . Але я припускаю, що я
звикну

1
rollmops.wordpress.com/2006/05/01/vintage-computer Клавіші HJKL використовуються таким чином ще до існування Інтернету. На даний момент це традиція!
Кевін Панько

8

Немає вибору "найкращого" або універсального модифікатора ключа

Ваші найкращі варіанти:

  1. Не використовуйте жодної модифікаційної клавіші (лише одна натискання клавіш), а потім припиніть виявляти натискання клавіш, коли курсор користувача знаходиться у полі введення чи текстовій області, як це робить Google із ярликами Gmail.

    - або -

  2. Оберіть за замовчуванням, який підходить більшості відвідувачів, на основі статистичних даних операційної системи з даних Analytics. Дозвольте користувачам живлення, які хочуть клавіш швидкого доступу, активувати їх і змінити клавішу модифікатора в їхніх налаштуваннях користувача так само, як це робить програмне забезпечення для настільних ПК.

    - або -

  3. Використовуйте клавішу "тригер" замість модифікаційного ключа. Подумайте, наприклад, ,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.

[Джерело: додаток біля підніжжя сторінки читання jquery.hotkeys Джона Ресіга .]


Мені подобається неодночасний підхід. Хоча я б, мабуть, використовував; ключ
Михайло
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.