Keyboard shortcuts in editor break standard OSX shortcuts

On OSX, I frequently use the following standard shortcuts that work across all applications:

  • ctrl+e for end of line
  • ctrl+a for beginning of line
  • ctrl+k to copy from the cursor to the end of the line
  • ctrl+y to paste copies made with ctrl+k

Of these ctrl+k and ctrl+y do not work which has been somewhat frustrating since this is the only app I use where they do not work :confused:. This negatively impacts my user experience :frowning:.

This is also true at Stack Overflow with the editor – it’s a shared open source component with default keyboard shortcuts.

There are alternative keyboard shortcuts for doing those functions, e.g. end takes you to the end of line, home takes you to the beginning of the line, etc.

MacBook 键盘上没有这些键,而且在打字时这些键也不太方便使用,因为你需要将右手从主键区移开。

我使用 CMD+ 回到行首,CMD+ 回到行尾。

3 个赞

ctrl + actrl + e 分别对应 homeend 功能,运行正常。有问题的覆盖键是 ctrl + k,它通常用于剪切到行尾,但在此处会弹出链接模板。

如果无障碍性是首要考虑因素,为什么还要使用笔记本电脑,尤其是苹果笔记本电脑?为了保持超薄轻便,苹果往往做出了许多妥协,这常常损害了可维修性,甚至导致键盘无法正常使用。此外,您还可以使用专为无障碍需求而_设计_的外部 USB 键盘。

1 个赞

这是在树立稻草人论点吗?

当网站覆盖标准快捷键时,这并不能解决问题。苹果并非这些快捷键的发明者,GNU Readline 也使用相同的快捷键。我主要在 Linux 上工作,因此这些快捷键在 Linux 上同样有效。我之所以提到 macOS,是因为 Linux 用户的问题通常被忽视,而这个问题实际上同时影响了 macOS 和 Linux 用户。

你认为外部 USB 键盘更具可访问性,这只是一种观点。在我看来,将触控板放置在能快速返回主键行的位置更具可访问性。只使用一个键盘(例如当我不在办公桌前、没有外部键盘时)也更具可访问性。因此,对我来说,能够使用笔记本电脑自带的键盘是更具可访问性的选择。话虽如此,我使用 MacBook 的唯一原因是公司提供的;过去我使用的是 ThinkPad,它们的键盘更好。而且这台 MacBook 已经使用了好几年,因此键盘实际上还不错。基于你在稻草人论点中提到的理由,当需要更换这台电脑时,我可能会向其他制造商申请笔记本电脑——但这丝毫无法解决由网站覆盖标准快捷键所造成的可访问性问题。

有意思,这是我第一次听说 Ctrl+K 的“复制”功能。有趣的是,整个 Stack Overflow 网络也劫持了这个快捷键,而 Gmail 则保留了它。

我对此持观望态度……重新翻译所有 超链接 (Ctrl+K) 工具提示并将其重新绑定到 Ctrl+Shift+K,重新训练所有使用 Ctrl+K 的用户等等,这是一项相当昂贵的任务。

您是否无法将“跳转到行尾”的快捷键重新绑定到其他键?或者,如果这确实是您网站的一个重大问题,您可以使用主题组件来重新绑定该快捷键。

3 个赞

Ctrl+K 是插入超链接的跨操作系统约定。它适用于各种 Web 开发套件,甚至包括 Microsoft Word 等软件。这一约定如此普遍,以至于在维基百科上也有专门条目(Control-K)。

如果您正在编辑帖子,您更有可能是在插入链接,而不是寻找其其他用途。

4 个赞

是的,确实如此 :rage:

在我看来,直接输入“标题”比使用快捷键“Ctrl+K URL Tab 标题 回车”更方便。

我希望能够自定义网站上的键盘绑定,甚至完全禁用它们。

我认为浏览器插件可以让你做到这一点。

这可能是真的,不过我还没找到能确认不是键盘记录器的插件 :)。我查看过的插件需要一些令人不安的权限才能实现此功能。

其他受影响的用户:这是一个适用于 Violent Monkey 的脚本:

作为额外福利,它还修复了“查找”功能被许多网页覆盖的问题(这些网页最近将其改为站点搜索而非页面搜索,发布时与 Discourse 无关)。

// ==UserScript==
// @name 反键盘劫持
// @description 防止网页应用捕获并屏蔽重要的键盘快捷键
// @inject-into auto
// @version 1.1
// ==/UserScript==

function antigrab(e) {
  if (! e.ctrlKey) {
    return;
  }
 
  switch (e.keyCode) {
    case 65: // A - 跳转到行首
    case 69: // E - 跳转到行尾
    case 70: // F - 查找
    case 87: // W - 关闭窗口
    case 84: // T - 打开标签页
    case 75: // K - 删除到行尾
    case 89: // Y - 粘贴
      e.stopImmediatePropagation();
      e.stopPropagation();
  }
}

(function(){
unsafeWindow.document.addEventListener('keydown', antigrab, true);
})();

(灵感来源:https://gist.github.com/rodneyrehm/5213304

今天注意到 Gmail 也开始劫持 Ctrl+K 了::crazy_face:

3 个赞