我编写了一个使用jQuery显示模式弹出窗口的网站。它基本上用覆盖覆盖了屏幕的整个可视区域,然后显示了一个DIV,其中包含覆盖顶部的实际弹出窗口。该项目的要求之一与无障碍性有关。
我们已经能够在模态弹出时将焦点集中在模态内部,这样屏幕阅读器就可以停止它的操作,开始在模态内部阅读。然而,我们目前的问题是,一旦JAWS屏幕阅读器完成了对模式窗口内文本的读取,它就会继续读取,并在窗口外(覆盖层下方)读取文本。
有没有办法将屏幕阅读器"锁定"在特定元素内,使其无法读取外部的任何内容?
如果添加属性:
aria-disabled="true"
在模态中设置焦点后,对于站点标记的其余部分,它应该阻止屏幕阅读器阅读该内容。如果所有其他内容都在一个DIV中,并且模型作为该DIV的同级添加到DOM中(因此您只需要将该属性添加到一个元素中),那么这是最容易做到的。
或者,如果您的对话框可以,您可以添加一些JavaScript选项卡按下/焦点检测,以使用户在该对话框中保持循环。如果你不能用键盘离开对话框(按下关闭/取消按钮),它应该是可以访问的。