JAWS 没有宣布加载 iFrame 内容?

6 iframe accessibility wai-aria jaws-screen-reader

我正在开发一个使用 iFrame 的 Web 应用程序(请不要要求我使用其他东西,而不是我的决定)。有两个框架,一个导航框架和一个内容框架(自上而下)。

导航框架始终保持不变。当用户单击链接导致内容框架内的内容发生更改时,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 在首次加载框架时宣布框架的内容(因此之前从未单击过该链接)。如果是“访问过的链接”,则根本不会公布该框架的内容。

Rya*_*n B 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>
Run Code Online (Sandbox Code Playgroud)

什么也没做,因为该 iframe 所在页面的 DOM 没有改变。