不能使角度弹出(模态/对话框)可访问,因为焦点停留在打开弹出窗口的BTN上



我一直在尝试让所有用户都可以访问我的网站,但我无法处理其中的弹出窗口和表单。

当我点击打开一个弹出框的<a id="login_btn" role="button">时,焦点仍然在这个按钮上,即使我用this.focusedElement.nativeElement.focus();->设置焦点在弹出框中的第一个输入元素上;我看到输入是集中的!但是屏幕阅读器仍然说我所在的元素是按钮,我必须点击它(只是为了提醒-我看到焦点是输入元素)。当我点击屏幕阅读器想让我做的,然后第二个模态打开…

我怎么能忽略'login_btn'?

我以几种方式尝试了标签索引-体与tabindex=0,然后当我打开模式,tabidex = -1和输入内弹出框有tabindex=0。也许另一种方式是正确的?我尝试在'login_btn', aria-hidden, aria-disabled上设置禁用属性…没有成功。

我的模态有role="dialog"和aria-modal ="true"我还应该做什么?

这可能是时间问题。也许您的代码试图在呈现模态之前转移焦点。你可以使用一个超时函数来解决这个问题,该函数在将焦点转移到第一个输入字段之前等待模态渲染。

至于制表索引,tabindex=“-1”应该只添加到那些永远不能通过tab键访问或使用辅助技术参与的元素中(您不会希望将其添加到交互式按钮或模态输入字段中)。而且,您不应该将tabindex=“0”添加到本地<input><button>元素中,因为它们应该已经可以通过制表符访问。

另外,如果你的目标是让所有用户都可以访问你的网站,你应该避免禁用按钮或隐藏你所描述的交互式内容。

Google Chrome开发人员在YouTube上有一些关于设计可访问的模态对话框的伟大资源:https://youtu.be/JS68faEUduk

最新更新