【问题标题】:Best practices for designing keyboard shortcuts设计键盘快捷键的最佳实践
【发布时间】:2011-05-09 14:11:54
【问题描述】:

我是键盘快捷键的忠实粉丝。如果某些功能或操作没有快捷方式,我倾向于编写一个小程序并附加 Ctrl + Alt + [key] 快捷方式。

昨天在使用 Visual Studio 编码时,我开始思考他们分配快捷方式的效果如何。有大量的命令,其中大多数仍然是直观的,并且没有一个与其他系统范围的组合键重叠。唯一的例外是 Ctrl + W 让我很恼火的是它没有按默认关闭活动选项卡。

在为自己的程序分配键盘快捷键时应牢记哪些最佳做法?

除了特定功能外,不应使用哪些常见且“保留”的组合(eq Ctrl + SCtrl + W....)

我认为在小型应用程序中最好使用 Ctrl 作为修饰键,但在大型应用程序中呢?在 Visual Studio 中是否应该有两个修饰键 (Shift/Alt?) 或 make like? Shift 是否应该仅用于反转功能(Ctrl + Shift + Tab,向后滚动标签)?

或者当程序在托盘中最小化运行时如何,或者根本没有 GUI。是否应该在该组合中使用 windows-key?

【问题讨论】:

    标签: windows keyboard-shortcuts


    【解决方案1】:
    • 从常见的 Windows 绑定开始:Ctrl + C 复制,Ctrl + S保存等。当用户尝试这些最常见的热键时,他们不应该感到惊讶。

    • 查看与您自己的功能相似的其他应用程序。例如如果您执行文字处理(应用文本样式)之类的操作,请查看 Word。如果你有绘图工具之类的东西,也许看看 Photoshop 等。

    • 列出程序“完成”后您希望在程序中包含的所有命令。这可能比现在可用的要多得多,其中一些命令可能永远不会出现,但是这个练习可以帮助您避免在每次发布时更改热键 - 从一开始就保留它们。

    • 现在,从列表中删除所有您认为一天不会多次使用的命令。例如Ctrl + C for "(C)opy" 很好,因为它每小时最多可以使用 60 次。但是 Ctrl + C 表示“(C)heck if new verison has been released”是一个不好的热键,因为用户不太可能想要多次执行此操作一周或更短时间。

    • 如果对热键的使用频率有疑问,将其排除在外。最好为将来的功能提供大量备用键,而不是绑定键盘上的每个键,然后必须不断更改绑定。使用更少的热键可以降低用户的复杂性、您需要进行的测试量以及误按按键执行用户不希望的操作的机会。如果用户真的想要一个热键,他们会要求它,您可以添加它。但一般来说,只有真正常用的功能才需要热键。

    • 绘制一个带有修饰符列的字母电子表格。在此网格中输入您预期的高使用率命令集,并对每个单元格进行优先级排序,以使最重要的命令使用最简单、最明显的快捷键。在许多情况下,您会发现只有一个命令落在特定键上。还尝试将相关命令组合在同一个键上,但使用不同的 (Ctrl/Shift/Alt) 修饰符(例如 Ctrl kbd> + S 保存,Ctrl + Shift + S 全部保存)。这将为您留下任何无法轻松映射到明显键的命令。考虑重命名某些选项是否有助于改变事物以实现更好的映射(例如,“选项”、“设置”或“首选项”等同义词可能会帮助您找到更容易映射到良好助记符的命令名称)

    • 您现在剩下的命令无法绑定到最明显的键(例如“Cut”不能绑定到 Ctrl + C 因为它用于“复制”,所以在菜单中你通常会看到它绑定为 Edit->cu(T) 和 Edit->(C)opy。所以你可以考虑使用 Ctrl + T 与菜单助记法保持一致(尽管在这种特殊情况下,当然有一个预先存在的标准,Ctrl + X =切)。

    • 添加键绑定系统,以便您的用户可以添加/更改热键以自定义其 UI。

    • 尽可能保持一致。正如您所指出的, shift 通常用于“反转”导航命令的方向。选择时,请遵循 Windows 约定(Ctrl 切换,Shift 扩展)。但主要是,在您的应用程序中保持一致 - 在大多数情况下,CtrlShiftShift + Ctrl 有一个操作,但如果可能,尝试对所有命令绑定应用类似的逻辑。

    • 小心使用 Alt 作为修饰符。用户应该能够使用 Alt 在菜单系统中导航。所以实际上你应该只使用 AltCtrl/Shift,并确保你的热键处理不会破坏正常的 Alt 菜单系统提供的处理。

    • 如果您的程序有很多文本输入,请避免使用未修改的热键键。当你按下 M 来做某事时,这真的很烦人,不仅没有发生那件事,而且一个 M 出现在你 UI 的某个随机部分的文本输入字段中!使其 Ctrl + MCtrl + Shift + M 问题是很容易避免。这还允许热键激活命令,即使用户的输入焦点位于特定位置,避免任何令人讨厌的模式。

    • 如果您使用多键序列,则不要混合匹配修饰符。例如 ctrl+A, ctrl+B 可以,但 ctrl +A+Bctrl+A, shift+B 不好,因为用户必须在序列的中途释放 ctrlctrl。 (Visual Studio 测试命令,我在跟你说话!)

    • 除非您是输入焦点应用程序,否则不要在热键上执行任何操作。例如有一个非常流行的程序(默认情况下)抓取 Ctrl + A,因此每次您尝试在不相关的程序中全选时都会做一些非常烦人的事情。为什么哦为什么!?如果您认为全局热键是个好主意,请将其添加为用户可以根据需要打开的选项,这样他们就会知道该热键的存在。

    • 我同意 Visual Studio 有一组很好的默认绑定。但在许多方面,它的设计非常糟糕——VS2010 是我使用过的第一个 VS 版本,它没有对之前版本的核心键绑定做出令人沮丧的重大改变。这通常是升级到新 VS 版本最痛苦的部分。我很高兴也很惊讶地发现,在 VS2010 中,最常见的功能(如“构建”)仍然在默认的相同热键上!希望他们现在能坚持一段时间......

    【讨论】:

      【解决方案2】:

      还有一点不应该忘记:Ctrl+Alt+数字/字母字母组合最好避免,因为对于许多键盘布局有一个 AltGr 键盘修饰符,它也由 Ctrl+Alt 触发。

      例如要在德语键盘上键入 @ 字符,您可以键入 AltGr+Q = Ctrl+Alt+Q

      更多信息:http://blogs.msdn.com/b/oldnewthing/archive/2004/03/29/101121.aspx

      【讨论】:

        【解决方案3】:

        快捷方式需要记忆,这就是为什么 Ctrl + S(保存)和 Ctrl + N (新)运行良好,一些程序员已经将其更改为不同语言的快捷方式。 (在旧版本的 MS Write 中,粗体的 Ctrl + BCtrl + F 的 fett。)同样, X 类似于剪刀,V 是插入标记,因此可以剪切和粘贴。

        在更高级的级别上,防止无法撤消的意外影响:更危险的命令需要更复杂的安全防护:例如 Ctrl + Alt + Del 很难意外输入。

        还请记住,Alt 是菜单访问键。

        【讨论】:

          猜你喜欢
          • 2013-03-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多