Javascript 以编程方式聚焦地址栏?

Javascript 以编程方式聚焦地址栏?,javascript,html,accessibility,Javascript,Html,Accessibility,我正在构建一个模式插件,我希望能够设置地址栏的焦点 我希望能够做到这一点,因为我需要能够将tab限制在模态窗口内的对象上,但是键盘用户和辅助功能用户应该能够在到达最后一个元素时将tab从模态窗口转到地址栏上(这样他们就不会卡在模态窗口内)。我知道我可以通过将模态之外的所有tabbable元素设置为tabindex为-1来实现这一点,但是如果可能的话,我希望避免这种解决方案 我知道,由于安全限制,可能无法直接将焦点设置到地址栏。但是,有没有办法做到这一点,或者对页面进行散焦,以便下一个元素是地址栏

我正在构建一个模式插件,我希望能够设置地址栏的焦点

我希望能够做到这一点,因为我需要能够将tab限制在模态窗口内的对象上,但是键盘用户和辅助功能用户应该能够在到达最后一个元素时将tab从模态窗口转到地址栏上(这样他们就不会卡在模态窗口内)。我知道我可以通过将模态之外的所有tabbable元素设置为tabindex为-1来实现这一点,但是如果可能的话,我希望避免这种解决方案


我知道,由于安全限制,可能无法直接将焦点设置到地址栏。但是,有没有办法做到这一点,或者对页面进行散焦,以便下一个元素是地址栏?

具有模式元素不会从可视缓冲区中删除其他元素。屏幕阅读器可能会自动读取模式后的任何其他元素。因此,删除可能公布的元素的tabindex确实不是一个解决方案

您可以尝试使用诸如
$(“.outside_modal”).onfocus(){$(“#modal first link”).focus()}
之类的代码从任何其他元素中移除焦点,但在读取链接目标的视觉焦点和键盘焦点提供的操作之间会出现不一致


唯一可行的解决方案是将模态元素设置在DOM的最后一个位置。

具有模态元素不会从可视缓冲区中删除其他元素。屏幕阅读器可能会自动读取模式后的任何其他元素。因此,删除可能公布的元素的tabindex确实不是一个解决方案

您可以尝试使用诸如
$(“.outside_modal”).onfocus(){$(“#modal first link”).focus()}
之类的代码从任何其他元素中移除焦点,但在读取链接目标的视觉焦点和键盘焦点提供的操作之间会出现不一致


唯一可行的解决方案是将模态元素设置在DOM的最后一个位置。

为什么他们不能只使用Ctrl-L/Cmd-L?您可以更成功地向用户传授[Control]+[L]perhaps@jonrsharpe鼠标用户可以从网站或模式窗口访问地址栏。键盘用户可以从窗口点击地址栏——此外,他们还可以使用HTML5对话框。模态对话框插件应共享此行为以实现最大的可访问性。@mplungjan这是一个类似的问题,但该问题涉及浏览器扩展,它与网站具有不同的安全执行上下文。为什么它们不能只使用Ctrl-L/Cmd-L?您可以更成功地向用户传授[Control]+[L] perhaps@jonrsharpe鼠标用户可以从网站或模式窗口访问地址栏。键盘用户可以从窗口点击地址栏——此外,他们还可以使用HTML5对话框。模态对话框插件应共享此行为以实现最大的可访问性。@mplungjan这是一个类似的问题,但该问题涉及浏览器扩展,它与网站具有不同的安全执行上下文。