我正在构建一个模式插件,我希望能够将焦点设置到地址栏。
我希望能够执行此操作,因为我需要能够限制对模式窗口内的对象进行 Tab 键切换,但键盘用户和辅助功能用户应该能够从模式窗口切换到地址栏当它们到达最后一个元素时(这样它们就不会卡在模态中)。我知道我可以通过将模式之外的所有可选项元素的 tabindex 设置为 -1 来做到这一点,但如果可能的话,我想避免该解决方案。
我知道由于安全限制,可能无法直接将焦点设置到地址栏。但是,有没有办法做到这一点,或者使页面散焦,以便下一个元素是地址栏?
最佳答案
拥有模态元素不会从视觉缓冲区中删除其他元素。屏幕阅读器可以自动读取模式之后的任何其他元素。所以去掉可能公布的元素的tabindex确实不是一个解决办法。
您可以尝试使用一些代码从任何其他元素中删除焦点,例如 $(".outside_modal").onfocus() {$("#modal-first-link").focus()}
但读取链接目标的视觉焦点与键盘焦点提供的操作之间会出现不一致。
唯一可行的解决方案是将模态元素设置在 DOM 的最后一个位置。
关于javascript - 以编程方式聚焦地址栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37901554/