【发布时间】:2012-04-11 15:24:51
【问题描述】:
我编写了一个使用 jQuery 来显示模式弹出窗口的网站。它基本上用覆盖覆盖了屏幕的整个可视区域,然后显示一个 DIV,其中包含覆盖顶部的实际弹出窗口。该项目的要求之一与可访问性有关。
当页面加载时,屏幕阅读器从页面顶部开始读取。当用户单击特定链接时,我们会显示一个模式对话框。我的问题是:如何中断屏幕阅读器对网站主要部分的阅读并告诉它开始阅读对话文本?
我的模态容器被包裹在一个这样的 div 中:
<div id="modalcontainer" tabindex="0" class="popup" role="dialog" aria-labelledby="dialog-label" >
触发模态的 jQuery 如下所示:
$("#modalLink").click(function (e) {
e.preventDefault();
$("#modalcontainer").center();
$("#modalcontainer").show();
$("#closeBtnLink").focus();
$("#wrapper").attr('aria-disabled', 'true');
});
“closeBtnLink”是模式对话框中的关闭按钮。我原以为将焦点设置在此会指示屏幕阅读器从该元素开始阅读。
“包装器”元素是模式对话框的 SIBLING。根据另一个 SO 用户出于不同原因的建议,我在包含整个页面的包装元素上设置了“aria-disabled=true”。模态对话框作为该容器之外的兄弟存在。
我的主要目标是让屏幕阅读器在单击特定链接时阅读我的模态 DIV 元素的内容。任何帮助将不胜感激。
【问题讨论】:
-
我将焦点设置为内容,而不是关闭链接。对话框中有标题吗?
-
有,但由于某种原因,要求之一是将焦点设置为关闭链接。这个客户对他们的要求非常挑剔,如果它在那里,我无法改变他们的想法。大型跨国公司,他们的决定从什么时候开始是正确的? :)
-
没有一致的方式,请阅读:sitepoint.com/ajax-screenreaders-work
-
那个链接已经快 6 年了。
-
一些关于模态和可访问性的阅读:irama.org/web/dhtml/lightbox
标签: javascript jquery html accessibility screen-readers