0

我对可访问性有疑问。 有几个图层/模块或弹出窗口,只需点击一个按钮或链接即可打开。保留重点关闭模式或弹出窗口

我需要将焦点保留在原始元素上,点击该元素打开模式或弹出窗口或弹出窗口,一旦它们关闭,焦点应该返回到单击元素。当我在页面上标签关闭模态窗口或弹出按钮后,焦点从begining

我使用的角度引导模式,并通过角状态提供配置打开自定义弹出窗口开始

目前。

+2

从打开模式/弹出的事件中保存事件目标,并在模态/弹出关闭时将焦点设置在该目标上。请参阅[MDN HTML元素参考 - 焦点方法](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus)。 – georgeawg

回答

0

通过打开模式之前,保持目前的工作重点解决了上述问题,并恢复焦点返回时模态关闭

0

的官方建议从WAI-ARIA Authoring Practices - Modal Dialog状态:

当对话框关闭,焦点返回到调用对话框的元素,除非:

  • 调用元素不再存在。然后,将焦点设置在提供逻辑工作流程的另一个 元素上。
  • 工作流设计包括以下条件的,可以偶尔会聚焦不同的元素一个更合乎逻辑的选择:
    1. 这是不太可能的用户需要立即重新调用对话框。
    2. 对话框中完成的任务直接与工作流程中的后续步骤相关。

将焦点移回到你的模式打开之前的重点元素:

  1. 之前打开模式,参考保存到document.activeElement
  2. 关闭模式后,focus参照前面的activeElement

例子:

let previousActiveElement = document.activeElement; 
// Open and close the modal 
if (document.body.contains(previousActiveElement)) { 
    previousActiveElement.focus(); 
} 
0

将焦点移回到你的模式打开之前的重点元素:

打开模式之前,请保存到document.activeElement参考。 关闭模式后,将引用集中到前一个activeElement。