javascript - google.com 如何将选项卡焦点放在不可聚焦的元素上

标签 javascript html web accessibility

请访问 google.com 并搜索“词典”,通过 Tab 键导航并选择“跳到主要内容”:

step1

按 Enter 键后,字典元素获得焦点:

step2

当我检查它时,它是一个具有 aria-level 属性的 div,没有 tabindex

step3

所以我的问题是一个不可聚焦的元素如何能够像这样获得焦点?

编辑:当我尝试将确切的 div 元素保存到全局变量中并调用 focus 时,它永远不会获得焦点。

最佳答案

当您在该消息上按 Enter 时,JavaScript 代码会将 tabindex="-1" 添加到该元素并将其聚焦。在输入之前:

Google page with Elements panel showing no tabindex on the main content div

之后:

Google page with Elements panel showing tabindex="-1" on the main content div

当焦点离开元素(可能是 blur 事件处理程序)时,JavaScript 代码会从元素中删除 tabindex

如果右键单击该元素并在“元素”面板中显示它,然后在按 Tab 键时观察该元素,直到再次看到该元素,您就可以看到这一点。例如,如果您在打开“元素”面板和 Shift+Tab 后单击页面正文顶部附近的任意位置,最终您会再次看到相同的“显示主要内容”框,并且当您按输入,您可以看到添加了tabindex(然后在您离开时看到它被删除)。

关于javascript - google.com 如何将选项卡焦点放在不可聚焦的元素上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70739439/

相关文章:

html - 使用Css在固定宽度的div内垂直滚动

java - 从 Java 应用程序以编程方式登录网站

javascript - 获取 Chrome pageAction 图标以显示 JSON 格式的 URL 列表

javascript - React 生命周期方法顺序

javascript - window.location.assign(url) 和 window.open(url, '_self') 的区别

javascript - 访问 .js 文件中的模型参数

html - 将背景图像放置在 45 度旋转的 div 中

当从服务器接收到 html 时,带有 svg 的 html img 标签看起来更小,而当我从文件系统打开 html 时,它看起来更大

html - 简单的下拉菜单——悬停时的过渡

node.js - Node 对不同文件夹中存在的同名静态文件感到困惑