2012-03-27 168 views
5

我写过一个使用jQuery来显示模式弹出窗口的网站。它基本上覆盖了覆盖屏幕的整个可视区域,然后在叠加层上显示包含实际弹出窗口的DIV。该项目的其中一项要求与可访问性有关。屏幕阅读器是否可以在DIV元素中“锁定”?

当它弹出时,我们已经能够将焦点放在模态中,以便屏幕阅读器停止它在做什么并开始在模态内读取。但是,我们目前的问题是,一旦JAWS屏幕阅读器完成阅读模式窗口内的文本,它就会继续读取文本,并读取窗口之外的文本(覆盖层下面)。

有没有什么办法可以将屏幕阅读器“锁定”到特定元素中,以便它不能读取任何东西?

+0

当我看到你的网站有这些荒唐的弹出窗口时,你知道我做了什么吗?我关上了窗户。如果我真的想阅读这些内容,那么我只需在页面上右键单击并从webkit中删除元素。像你所做的一样,“技术”只会让网络变得更糟,而且非常烦人。无论你遇到什么问题,你最好做别的事情,而不会激怒你的读者。 – Incognito 2012-03-27 23:34:49

+1

但是,我很欣赏你的想法,不仅是今天常见的模式弹出窗口,这个决定不合我心意。我在财富100强公司工作,这是他们的决定,不是我的。并非我们所有人都对我们所创造的事物拥有完全的权力,请在对我所做的事做出判断之前记住这一点。 – Scott 2012-03-28 00:08:07

+0

我不是在判断你,我告诉你你在做什么的问题。如果我在评判你,我会说“你懒惰,害怕告诉他们如何提高可用性”,而不是与你正在做的事情有关的实际问题,并建议你选择一种替代方案。 – Incognito 2012-03-28 00:11:24

回答

3

如果添加的属性:

aria-disabled="true" 

到现场的标记后将焦点设置在模式的其余部分,它应该保持屏幕阅读器阅读这些内容。如果所有其他内容都在DIV中,并且该模型作为该DIV的同级添加到DOM(因此您只需将该属性添加到一个元素中),这是最容易做到的。

或者,如果您的对话框可以使用,您可以添加一些JavaScript制表/焦点检测以保持用户在此对话框中的循环。如果用键盘无法退出对话框(按下关闭/取消按钮),通常应该可以访问该对话框。

+0

谢谢马特,我马上给你一个镜头。我们已经使用tab/keypresses将模型中的用户“困住”了,但是如果我们只是让屏幕阅读器读取,它会一直在模态之外。 – Scott 2012-03-27 23:34:33

相关问题