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