Рекомендации по разработке сочетаний клавиш

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

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

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

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

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

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

Ответы

Ответ 1

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

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

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

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

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

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

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

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

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

  • Будьте осторожны с использованием Alt в качестве модификатора. Пользователь должен иметь возможность использовать Alt для навигации по системе меню. Поэтому вы должны использовать только Alt в сочетании с Ctrl/Shift и убедитесь, что ваша обработка hotkey не нарушает нормальную обработку 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 и, таким образом, делает что-то чрезвычайно раздражающее каждый раз, когда вы пытаетесь выбрать все в несвязанной программе. ПОЧЕМУ ПОЧЕМУ!? Если вы считаете, что глобальная горячая клавиша - отличная идея, добавьте ее в качестве опции, которую пользователи могут включить, если они этого захотят, поэтому они будут знать, что горячая клавиша существует.

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

Ответ 2

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

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

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

Ответ 3

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

например. для ввода символа @на немецкой клавиатуре введите AltGr + Q= Ctrl + Alt + Q

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