Лучшие практики для создания сочетаний клавиш - PullRequest
17 голосов
/ 13 ноября 2010

Я большой поклонник сочетаний клавиш. Если какая-то функция или операция не имеет ярлыка, я обычно пишу небольшую программу и прикрепляю к ней ярлык Ctrl + Alt + [key].

Вчера, когда я писал код в Visual Studio, я начал думать, насколько хорошо они назначили ярлыки. Существует огромное количество команд, и все же большинство из них интуитивно понятны, и ни одна из них не пересекается с другой, общесистемной комбинацией клавиш. Единственное исключение - Ctrl + W , и меня раздражает, что он по умолчанию не закрывает активную вкладку, как следует.

Какую рекомендацию следует учитывать при назначении сочетаний клавиш собственным программам?

Что такое обычные и «зарезервированные» комбинации, которые не должны использоваться, кроме определенных функций (например, 1015 * Ctrl + S , Ctrl + W ....)

В небольших приложениях я считаю, что лучше всего использовать Ctrl в качестве клавиши-модификатора, но как насчет более крупных? Должны ли быть две клавиши-модификатора ( Shift / Alt ?) Или как в Visual Studio? Следует ли использовать Shift только для отмены функций ( Ctrl + Shift + Tab , прокрутка вкладок назад)?

Или как насчет того, когда программа работает в трее свернутой или вообще не имеет графического интерфейса. Нужно ли использовать Windows-ключ в этой комбинации?

Ответы [ 3 ]

20 голосов
/ 13 ноября 2010
  • Начните с общих привязок Windows: Ctrl + C для копирования, Ctrl + S длясохранить и т. д. Пользователи не должны удивляться, когда они пытаются использовать любую из этих наиболее распространенных горячих клавиш.

  • Посмотрите на другие приложения с похожей функциональностью для ваших собственных.Например, если вы делаете что-то вроде обработки текста (применяя стили текста), тогда посмотрите на Word.Если у вас есть что-то вроде инструмента рисования, возможно, посмотрите на Photoshop и т. Д.

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

  • Теперь удалите из списка все команды, которые, по вашему мнению, не будут использоваться много раз в день.например, Ctrl + C для "(C) opy" - это хорошо, потому что это может использоваться до 60 раз в час.Но Ctrl + C для "(C) хек, если новая версия была выпущена" - плохая горячая клавиша, так как маловероятно, что пользователи захотят делать это чаще, чем раз в неделю илименьше.

  • Если вы сомневаетесь в том, как часто будет использоваться горячая клавиша, опустите ее .Лучше иметь много запасных клавиш для будущих функций, чем связывать каждую клавишу на клавиатуре, а затем постоянно менять привязки.Использование меньшего количества горячих клавиш снижает сложность для пользователя, количество тестов, которое вам нужно сделать, и вероятность случайного нажатия клавиш, что-то, что пользователь не собирался делать.Если пользователи действительно хотят получить горячую клавишу, они попросят ее, и вы можете добавить ее.Но в общем случае горячие клавиши нужны только для действительно часто используемых функций.

  • Составьте электронную таблицу букв с колонками для модификаторов.Введите ожидаемый набор команд высокой нагрузки в эту сетку и расставьте приоритеты для каждой ячейки, чтобы наиболее важные команды использовали самый простой и очевидный способ сочетания клавиш.Во многих случаях вы обнаружите, что только одна команда попадает на определенный ключ.Также попробуйте сгруппировать связанные команды для одной и той же клавиши, но с разными модификаторами ( Ctrl / Shift / Alt ) (например, Ctrl + S сохранить, Ctrl + Shift + S сохранить все).Это оставит вас с любыми командами, которые не могут быть легко сопоставлены с очевидным ключом.Подумайте, может ли переименование некоторых параметров помочь изменить положение вещей для достижения лучшего сопоставления (например, синонимы, такие как «Параметры», «Настройки» или «Предпочтения», могут помочь вам найти имена команд, которые легче сопоставляются с хорошей мнемотехникой)

  • Теперь у вас остались команды, которые не могут быть привязаны к самой очевидной клавише (например, «Cut» не может быть привязан к Ctrl + C потому что он используется для "Копировать", поэтому в меню вы обычно видите его ограниченным как Edit-> cu (T) и Edit -> (C). Таким образом, вы можете рассмотреть возможность использования Ctrl + T для соответствия с мнемном подходом меню (хотя в этом конкретном случае, конечно, существует уже существующий стандарт, Ctrl + X = вырезать).

  • Добавьте систему привязки клавиш, чтобы пользователи могли добавлять / изменять горячие клавиши для настройки своего пользовательского интерфейса.

  • Где возможно, старайтесь быть последовательными.Как было указано, сдвиг часто используется для «изменения направления» навигационной команды.следуйте соглашениям Windows ( Ctrl для переключения, Shift для расширения).Но, главным образом, будьте единообразны во всем приложении - в большинстве случаев не имеет значения, какой эффект Ctrl , Shift и Shift + Ctrl *У 1092 * есть операция, но, если возможно, попытайтесь применить подобную логику ко всем привязкам команд.

  • Будьте осторожны при использовании Alt в качестве модификатора.Пользователь должен иметь возможность использовать Alt для навигации в системе меню.Поэтому на самом деле вы должны использовать Alt только в сочетании с Ctrl / Shift и убедиться, что ваша комбинация горячих клавиш не нарушает нормальную Alt обработка, которую обеспечивает система меню.

  • Если в вашей программе много текстового ввода, не используйте немодифицированные клавиши для горячих клавиш.Это действительно раздражает, когда вы нажимаете M , чтобы что-то сделать, и это не только не происходит, но и появляется M в поле ввода текста в некоторой случайной части вашего пользовательского интерфейса!Сделайте это Ctrl + M или Ctrl + Shift + M , и проблему легко избежать.Это также позволяет горячим клавишам активировать команды, даже когда у пользователя есть фокус ввода в определенном месте, избегая любых неприятных модальностей.

  • Если вы используете многоключевые последовательности, не смешивайтеи сопоставить модификаторы.Например, ctrl + A , ctrl + B в порядке, но ctrl + A + B или ctrl + A , shift + B плохо, так как пользователь долженотпустите ctrl ctrl в середине последовательности.(Команды Visual Studio Test, я с вами разговариваю!)

  • Не работайте с горячими клавишами, если только вы не являетесь фокусировщиком ввода.например, есть некая очень популярная программа, которая (по умолчанию) захватывает Ctrl + A и, таким образом, делает что-то чрезвычайно раздражающее каждый раз, когда вы пытаетесь выбрать все в несвязанной программе .ПОЧЕМУ?Если вы считаете, что глобальная горячая клавиша - отличная идея, добавьте ее в качестве опции, которую пользователи могут включить, если они этого хотят, чтобы они знали, что горячая клавиша существует.

  • Iсогласен, что Visual Studio имеет хороший набор привязок по умолчанию.Но во многих отношениях он был очень плохо спроектирован - VS2010 - это первая в мире редакция VS, которую я использовал, которая не внесла разочаровывающих значительных изменений в основные привязки клавиш предыдущей версии.Обычно это была самая болезненная часть обновления до новой версии VS.Я был очень рад и удивлен, обнаружив, что наиболее распространенные функции (такие как «сборка») по-прежнему были на тех же горячих клавишах по умолчанию в VS2010!Надеюсь, они еще какое-то время останутся с ними ...

3 голосов
/ 13 ноября 2013

Еще одна вещь, которую не следует забывать: Ctrl + Alt + цифра / буква комбинаций букв лучше избегать, потому что для многих раскладок клавиатуры есть AltGr модификатор клавиатуры, который также запускается с помощью Ctrl + Alt .

Например, чтобы ввести символ @ на немецкой клавиатуре, вы должны набрать AltGr + Q = Ctrl + Alt + Q

Дополнительная информация: http://blogs.msdn.com/b/oldnewthing/archive/2004/03/29/101121.aspx

2 голосов
/ 13 ноября 2010

Ярлыки должны быть запоминающимися, поэтому работают Ctrl + S (сохранить) и Ctrl + N (новый)ну, некоторые программисты даже изменили ярлыки на разных языках.( Ctrl + B для жирного шрифта было Ctrl + F для fett в старых версиях MS Write.) Аналогично, X напоминает ножницы иV знак вставки, следовательно, вырезать и вставлять.

На более продвинутом уровне предотвращайте случайные эффекты, которые нельзя отменить: более опасным командам требуются более сложные средства защиты: что-то вроде Ctrl + Alt + Del довольно сложно набрать случайно.

Также имейте в виду, что Alt является клавишей доступа к меню.

...