Web快捷键的最佳修饰键组合


14

我网站的许多用户要求使用键盘快捷键来访问常用页面。我知道链接可能有,accesskey但是在浏览器之间访问链接是不一致的。我将使用JavaScript来检测快捷方式,我希望您输入关于修饰键应该是什么的信息。我倾向于Ctrl+ Shift

Answers:


12

有两个例子可能不足以将其称为“既定做法”,但至少有两个大例子:Google和Twitter都不使用。或者,如果您希望以这种方式查看,则其导航的修饰键为G

要转到Twitter的“收藏夹”页面,请点击G,然后点击F。要转到您的Gmail草稿文件夹,打GD

非导航快捷方式也使用简单字母;例如,J用于向前移动列表(推文,电子邮件等),K向后移动。*

*在我的书中,这是绝对错误的。对我而言,“ K”左侧的“ J”表示“ J”应为“上一个”,“ K”应为“下一个”。但是,以其他方式执行此操作似乎是标准方法。

两者都不使用“真正的”修饰键。我们也开始研究Stack Exchange网站的键盘快捷键,并且我们可能会做同样的事情。我发现根本不使用修饰键的两个原因:

  • 不太可能绊倒已经使用的东西。某些操作系统,窗口管理器,浏览器,浏览器插件或Greasemonkey脚本可能已采用Ctrl,Alt,Meta,Command,Shift和字母的任何组合。仅字母?没那么多。
  • 易于使用。“按Ctrl-Alt-Q打开Foo选项卡,然后按Meta-Shift-F12执行Bar操作” –但这并不能使我的生活更加轻松/快捷,这是键盘快捷键的全部目的。

另一方面,这里有两个注意事项:

  • 显然,当用户在文本框中键入内容时,击键发生时,您将不得不忽略它们。这不是技术问题,但是这意味着用户无法再使用快捷方式。

    例如,如果您的页面使搜索框自动聚焦,或者您的Web应用程序的文本输入量很大,则可能会出现问题。

  • 您可能需要考虑启用/禁用。键盘快捷键是高级用户功能;当“正常”用户不小心触发键盘快捷键时,可能会感到惊讶(很显然,使用修饰键会降低这种可能性)。

    例如,Gmail的键盘快捷键默认情况下处于关闭状态,唯一的例外是?(自然地)显示键盘快捷键帮助- 包括启用/禁用快捷键的链接。我认为键盘快捷键是一个可以设置的地方(用户偏好通常是我们希望在Stack Exchange网站上避免的设置),Google的解决方案对此似乎很好。

    但是“默认情况下关闭”显然会隐藏可发现性,这可能是问题,也可能不是问题。

–但考虑到所有事情,“完全没有修饰键”对我来说似乎是一个很好的解决方案。


3
复合修饰符组合的另一点(按Ctrl-Alt-Q键打开“ Foo”选项卡,然后按Meta-Shift-F12键)-从可访问性的角度来看,这实际上很尴尬。甚至即使您只有怪异的键盘(咳嗽),某些组合也可能需要进行手指体操。单键:毫不费力。
Marc Gravell

2
那是个很棒的帖子@balpha。我确实要指出,J是“向下”,而K是“向上”。VIM文本编辑器使用相同的逻辑
Mikhail

@Mikhail:我知道这一点,但是我不同意这种逻辑-毕竟,J在K的左边。对我来说,如果J在“下”,那么U必须在“上” 。但我想我会习惯的:)
balpha

1
rollmops.wordpress.com/2006/05/01/vintage-computer 自网络存在以来,就一直以这种方式使用HJKL密钥。在这一点上,这是传统!
凯文·潘科

8

没有“最佳”或通用键修饰符选择

您最好的选择是:

  1. 不使用修饰键(仅单个按键),然后在用户的光标位于输入字段或文本区域中时停止检测按键,就像Google使用Gmail快捷键一样。

    - 要么 -

  2. 根据Analytics(分析)数据中的操作系统统计信息,选择一个适合大多数访问者的默认值。允许需要快捷方式的高级用户激活它们并在其用户设置中覆盖修改键,方法与台式机软件相同。

    - 要么 -

  3. 使用“触发”键而不是修饰键。例如,2,考虑转到选项卡式导航区域中的第二个选项卡,然后,3转到第三个选项卡。逗号后面紧跟数字的组合足以减少发生冲突或意外按下的可能性。

在所有情况下,您都可以考虑默认情况下禁用快捷键,以防止可能不关心快捷键的大多数用户遇到意外行为。

为什么不只选择修饰符组合?

我之所以建议使用这些方法,是因为没有标准化的跨平台修饰键,您可以认为在浏览器环境中可以安全地使用JavaScript。任何含有CtrlShiftAlt,或Cmd将有可能打破在某些平台上一些浏览器快捷方式。

例如,您使用Ctrl+的建议Shift将破坏Windows上的Firefox快捷方式,其中许多快捷方式都使用该组合来执行特殊功能,例如Ctrl+ Shift+ 会将D所有打开的选项卡添加为书签。

由于没有跨平台标准,浏览器制造商使用不同的快捷方式在每个不同的平台上触发访问键。例如,Apple Ctrl在Mac和AltWindows的Safari中使用。

此外,每个浏览器以不同的方式解决快捷方式冲突,这将给用户带来意想不到的后果。当您将按键绑定到JavaScript中的功能时,该功能也具有作为本机浏览器快捷方式的绑定...

  • 如果您return false;愿意,Firefox会自行运行JavaScript快捷方式,但是如果您愿意,它将执行JavaScript函数,然后执行Firefox浏览器快捷方式return true;(即默认情况下,两者均运行)。
  • IE将运行JavaScript函数,然后运行IE浏览器快捷方式。
  • Safari / Chrome / Opera将处理浏览器快捷方式,而不处理JavaScript快捷方式。

[来源:John Resig的jquery.hotkeys自述页面底部的附录。]


我喜欢非同时方法。虽然我可能会使用; 关键
Mikhail
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.