3

我正在使用iFrames的Web应用程序(请不要问我使用别的东西,而不是我的决定)。有两个框架,一个导航框架和一个内容框架(自上而下)。JAWS不宣布加载的iFrame内容?

导航框架始终保持不变。当用户点击一个链接,导致内容框架内的内容改变时,JAWS什么都不做。我想要JAWS做的是宣布新页面的内容(至少是标题)。

我查了一下WAI-ARIA标签,并且一直在尝试各种JavaScript技巧来将注意力集中到元素上。 已经种工作的唯一的事情是做以下

<iframe id="contF" aria-atomic="true" aria-live="assertive" frameborder="0" name="content" title="${ca.title}" src="${ca.src}"></iframe>

这将导致JAWS宣布帧的内容时首先加载它(这样的链接从未被点击之前)。如果它是“访问链接”,它根本不会公布帧的内容。

+0

恐怕VoiceOver和ChromeVox有同样的问题 – rds

回答

0

我知道你问过不要问什么改变,但你为什么要跟两个iframes?我好几年没有处理过这个问题,所以我很模糊。我想说,你可以将正常的帧链接在一起,但不是iframe。

如果您将target="content"添加到导航框架中的各个链接,它可能会有效。

原子属性不起作用,因为该属性和iframe的性质。原子属性监视DOM更改并在更改时触发。所以到你的

<iframe id="contF" aria-atomic="true" aria-live="assertive" frameborder="0" 
name="content" title="${ca.title}" src="${ca.src}"></iframe> 

什么都不做,因为这个iframe的页面的DOM是不变的。