您好,我认为这更像是一个意外行为而非 Bug。
我在 Mac 上习惯于使用 ⌘+点击 在新标签页中打开链接。当我对汉堡菜单中的“键盘快捷键”执行此操作时,会打开一个新标签页,但该页面并未显示键盘快捷键。
您好,我认为这更像是一个意外行为而非 Bug。
我在 Mac 上习惯于使用 ⌘+点击 在新标签页中打开链接。当我对汉堡菜单中的“键盘快捷键”执行此操作时,会打开一个新标签页,但该页面并未显示键盘快捷键。
该“链接”的导航由应用内处理。我之所以将链接加上引号,是因为它实际上并非真正的链接,因为它并不指向任何具体地址。
<a class="widget-link keyboard-shortcuts-link" href="" title="Keyboard Shortcuts">
<span class="d-label">Keyboard Shortcuts</span>
</a>
注意到 href 属性是空的了吗?
它只是打开一个模态框或对话框。因此,无法在新标签页中打开该链接并显示该模态框。
你好,我明白了。我只是想指出,从用户的角度来看,这种行为是出乎意料的,因为“键盘快捷键”在视觉上看起来完全像一个链接。如果有办法提供一些提示,表明“在新标签页打开”的操作不会生效,那就最理想了。当然,我认为这不需要优先处理——我想不太会有太多人遇到这个问题。
仅供参考,完全移除 href 属性(而不是将其设置为空字符串,后者是 对当前文档的引用)应该可以防止链接在新标签页中打开,至少在大多数浏览器中是这样。
有道理,在 HTML5 中,没有 href 的锚标签是有效的。
但移除它的问题在于,这会将其从 Tab 键索引中移除,导致无法通过键盘或其他辅助输入方式访问该链接。
我们可以通过添加 tabindex: 0 来解决这个问题。
因此,我们可以这样做:
links.push({
action: "showKeyboard",
className: "keyboard-shortcuts-link",
label: "keyboard_shortcuts_help.title",
attributes: {
tabindex: 0
}
});
除非 @awesomerobot 知道移除 href 还存在其他问题?
我觉得这比起在新标签页中打开略有改进,但当我尝试在新标签页中打开该链接时,仍然感觉有些奇怪……尤其是因为这是菜单中唯一表现如此异常的链接。
理想情况下,无论何种情况都应打开键盘模态框。在 /widgets/link.js.es6 中,我们有:
click(e) {
if (wantsNewWindow(e)) {
return;
}
...
看来,如果请求在新窗口/标签页中打开,我们在那里会阻止点击时的任何操作?……我在想,我们是否可以在那里做一些重组,以便即使在使用修饰键时也能打开模态框?