JAWS不宣布加载的iFrame内容?
我正在开发一个使用iFrame的web应用程序(请不要要求我使用其他东西,而不是我的决定)。有两个框架,一个导航框架和一个内容框架(自上而下) 导航框始终保持不变。当用户单击链接,导致内容框架内的内容发生更改时,JAWS不会执行任何操作。我想要JAWS做的是宣布新页面的内容(至少是标题) 我查找了WAI-ARIA标记,并尝试了各种JavaScript技巧来命令关注元素唯一有效的方法是执行以下操作JAWS不宣布加载的iFrame内容?,iframe,accessibility,wai-aria,jaws-screen-reader,assistive-technology,Iframe,Accessibility,Wai Aria,Jaws Screen Reader,Assistive Technology,我正在开发一个使用iFrame的web应用程序(请不要要求我使用其他东西,而不是我的决定)。有两个框架,一个导航框架和一个内容框架(自上而下) 导航框始终保持不变。当用户单击链接,导致内容框架内的内容发生更改时,JAWS不会执行任何操作。我想要JAWS做的是宣布新页面的内容(至少是标题) 我查找了WAI-ARIA标记,并尝试了各种JavaScript技巧来命令关注元素唯一有效的方法是执行以下操作 这将导致JAWS在第一次加载框架时宣布框架的内容(因此以前从未单击过链接)。如果它是一个“已访问的
这将导致JAWS在第一次加载框架时宣布框架的内容(因此以前从未单击过链接)。如果它是一个“已访问的链接”,它将根本不会公布框架的内容。我知道你要求不要要求更改任何内容,但你为什么要使用两个
iFrame
?我已经很多年没有处理过这个问题了,所以我很模糊。我想说的是,可以将普通帧链接在一起,但不能链接iFrame
如果将target=“content”
添加到导航框架内的各种链接,则可能会起作用
由于该属性和iframe的性质,atomic属性不起作用。原子属性监视DOM更改,并在更改时激发。所以对你的
<iframe id="contF" aria-atomic="true" aria-live="assertive" frameborder="0"
name="content" title="${ca.title}" src="${ca.src}"></iframe>
什么也不做,因为此iframe所在页面的DOM没有更改。我知道这是一篇非常古老的文章,但我将为有相同问题的人发布我的解决方案。 在将加载到iframe的所有页面中放置description div:
<div id="ac_title" style="display:inline-block;position:absolute;top:0;right:0;height:1px;width:1px">Page ZZZ loaded.</div>
恐怕画外音和ChromeVox有同样的问题
window.frames["content"].onload = function() {
var a = this.contentDocument.getElementById("ac_title");
if (a) {
a.setAttribute("role", "alert");
}
};