【问题标题】:Command shortcuts via keypress or keyup通过 keypress 或 keyup 的命令快捷键
【发布时间】:2015-05-27 20:21:30
【问题描述】:

我正在向其他有为生产力网络应用程序创建键盘快捷键经验的人寻求建议。

目前,我正在将所有命令链接到 keyup 事件,但是我已经阅读了 SO 上的帖子,似乎建议我应该将它们链接到 keypress 事件。我选择 key up 是因为我希望命令只触发一次,而不是在按键的情况下可能发生多次。但是我不确定我是否还缺少其他东西。

那么您推荐使用哪个事件来为 Web 应用程序创建命令快捷方式?按键还是按键?

【问题讨论】:

  • 你不只是使用accesskey attributes有什么原因吗?
  • 老实说,我不知道这个属性。然而,在阅读了如何在w3schools.com/tags/att_global_accesskey.asp 上使用它之后,我很惊讶它是多么的混乱和非标准化。你能想象在 Chrome 上必须背诵 Alt + 访问键和在 Firefox 上背诵 Alt + Shift + 访问键吗?作为一名开发人员,这对我来说似乎是一个巨大的痛苦,所以我几乎无法想象这对我的非技术客户来说会有多糟糕。
  • @RowlandShaw 如果我的评论看起来很苛刻,我深表歉意。
  • @RowlandShaw 你用过accesskey 吗?

标签: javascript jquery


【解决方案1】:
  1. keyupkeypress 之间的主要区别在于,keypress 仅在您按下某些 可打印 键时才会发送。例如,按下 P 将触发两者,但按下 Ctrl 不会触发 keypress。所以在实践中,如果你定义热键涉及不可打印键,keyup event 是要走的路。

  2. accesskey 在 W3C 规范中已标准化。这不是很痛苦,非技术客户不太可能经常在不同的浏览器之间切换。

  3. 除非开发一些复杂的网络应用程序,否则我的选择总是accesskey,原因很重要 - 可访问性accesskey 得到了常见辅助设备的良好支持,例如屏幕阅读器。如果您使用键盘事件来做到这一点,您将不得不为设备做很多肮脏的工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 2011-06-06
    • 1970-01-01
    • 2020-12-14
    • 2014-07-25
    • 2013-03-03
    • 2013-09-25
    相关资源
    最近更新 更多