文章摘要
文章探讨了如何通过改进浏览器的键盘导航功能,特别是Firefox的“快速查找链接”功能,来提升用户体验。作者指出,虽然Firefox和Chrome都支持通过键盘快速查找链接,但现代网站多使用按钮和div元素而非传统链接,导致键盘导航功能受限。作者建议浏览器在用户按下回车键时,能够自动点击高亮文本,以解决这一问题,从而提升键盘导航的效率和便利性。
文章总结
通过小改动提升浏览器的键盘导航体验
我们选择使用Firefox,不是因为它简单,而是因为它复杂。~ 可能是jfk说的
(这个问题同样适用于Chrome)
如果你想通过键盘浏览网页,可以利用Firefox中的“搜索功能”(即“快速查找链接”)。只需按下'键并开始输入,任何包含你输入文本的链接都会被高亮显示。按下回车键后,Firefox将导航到高亮显示的链接。
然而,如今大多数网站不再使用链接进行导航和操作,而是使用按钮和div元素,点击它们时才会触发相应操作。
这就暴露了Firefox中另外两个内置查找功能的局限性。虽然/(快速查找)和ctrl+f(页面查找)可以高亮显示任何文本(不仅仅是链接),但当你按下回车键时,并不会触发任何操作(除非你通过Esc键关闭搜索对话框)。
你可以自己测试一下。这是一个指向我个人主页的链接,而这是一个带有javascript:alert(1)的链接。
这里是一个带有处理程序的按钮。
这里是一个带有onclick处理程序的span元素。
如果Firefox能在我按下回车键时,直接点击高亮显示的文本(浏览器创建的选择),那岂不是很好?
是的,确实如此!这就是为什么我创建了这个小小的扩展。它的功能只是注入以下几行代码:
``` addEventListener('keydown', event => { if(event.key !== 'Enter') return
// 更多不应挂钩回车键的情况有待发现... if(event.shiftKey) return
const elementWithSelection = getSelection()?.anchorNode?.parentElement
if(!elementWithSelection) return
elementWithSelection.click() getSelection()?.removeAllRanges() }) ```
这段代码只是获取当前选择的节点,然后查找该节点的父HTML元素并点击它,最后移除选择。
这个小技巧大大提升了键盘导航的体验 ~ h43z
评论总结
评论主要围绕键盘操作在浏览器中的使用体验和扩展工具展开,观点多样且平衡。
键盘操作体验:
- 正面体验:有用户表示在Chrome + Mac上使用Control + Enter成功触发了测试元素(评论1:Control + Enter worked on the first three test elements for me on Chrome + Mac)。
- 负面体验:有用户指出在Firefox中使用PageUp/PageDown和光标键时遇到问题,特别是在有固定顶栏的网站上(评论7:PageUp/PageDown do not work correctly on sites that have a permanent topbar)。
浏览器扩展推荐:
- Vimium系列:多位用户推荐Vimium及其变体(如Vimium C、Vimium-FF),认为它们提供了良好的键盘操作体验(评论5:highly recommend the Firefox Vimium extension;评论6:I’m quite happy with Vimium C for keyboard-based browsing)。
- 其他扩展:有用户推荐Surfingkeys和Qutebrowser,认为它们虽然学习曲线较陡,但值得投入(评论8:Surfingkeys extension - it has a bit of a steep learning curve;评论10:Qutebrowser, a keyboard-driven browser built on the Chromium engine)。
浏览器默认功能改进建议:
- 有用户建议浏览器应默认提供headingMaps和地标功能,以增强导航体验(评论2:browsers should also come with headingMaps and landmarks by default)。
操作技巧:
- 有用户分享了在Firefox中通过Esc关闭搜索框后再按Enter的操作技巧(评论4:press Esc first, which closes the search box, and then you can press Enter)。
总结:评论中既有对键盘操作体验的正面反馈,也有对现有问题的批评,同时推荐了多种浏览器扩展和操作技巧,反映了用户对键盘驱动浏览体验的多样化需求和改进建议。