我正在使用Twitter Bootstrap开展一个项目,并使用屏幕阅读器在JavaScript components周围玩游戏。
当我触发模态对话框时,Jaws跳过模态进入页面中的下一个链接。
有没有办法实现可访问的模式?
我认为另一种解决方案是将静态页面设置为模态的功能,并在用户使用屏幕阅读器时重定向到此页面。如果用户使用屏幕阅读器,我能以某种方式检测到吗?
答案 0 :(得分:7)
编辑2019:N。Hoffmann在vanilla JS(与van11y项目中的其他组成部分)和jQuery中编写并维护了一个可访问的模态组件。
可以通过data-*
属性和类轻松修改行为和样式
它已经过更多条件(屏幕阅读器等)的测试,你用自己的脚本做了什么; - )
此外,Bootstrap 4在其最新版本中具有相当可访问的模态和Bootstrap 3(大部分或全部Paypal Bootstrap可访问性插件被反向移植到3.3.x)。
现代资源: Access & Use 欧洲倡议以简单的方式详细介绍了很多有趣的方面并指向其他资源,包括最新的ARIA Deisgn模式。
这是一个可访问的模式对话框:http://hanshillen.github.com/jqtest/#goto_dialog
激活模态后,键盘导航将被困在对话框中,直到用户明确关闭为止。
http://irama.org/web/dhtml/lightbox/详细介绍了这种可访问的实现(灯箱和模态对话框之间没有什么区别,重要的是模态部件和键盘管理)。
您还可以阅读 DHTML样式指南的非官方副本 dialog modal部分和W3C / WAI-ARIA Making a Dialog Modal。
学家如果你需要更多的DIY方法,Wajsberg写了一个能够trap the keyboard input inside a DOM element的jQuery插件。
答案 1 :(得分:0)
如果用户使用屏幕阅读器,我不知道任何自动检测到的解决方案。但有一个谷歌解决方案隐藏页面开头的链接(左边:-1000em和位置:绝对),如果你使用键盘并显示“特殊模式”,可以激活。
<a href="#" style="left:-1000em;position:absolute">Screen reader users, click here to turn off Google Instant.</a>
对于你的模态对话框尝试在对话框html div上使用aria和aria-atomic =“true”aria-live =“assertive”属性。它应该公布你对话框的内容。