首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用IE11读取页面刷新中隐藏的内容

使用IE11读取页面刷新中隐藏的内容
EN

Stack Overflow用户
提问于 2019-11-21 13:20:15
回答 1查看 441关注 0票数 0

我有表格。提交表单后,表单将与display:none一起隐藏,并在其位置显示一条确认消息(该消息将样式从display:none更改为display:block)。没有AJAX调用,也没有重新加载页面。确认只是更改了display属性。

JAWS不读取确认的文本,即使我将aria-live="assertive"放在它的容器上。我把注意力放在确认消息容器上,让JAWS阅读它。但是问题是,当我重新加载页面时,JAWS会再次读取确认消息,即使在页面加载时它有display:nonearia-hidden="true"

我尝试了我在堆栈溢出中找到的所有东西:我测试了aria-busyspeak:none,这两种类型的aria-live,用aria-hidden隐藏消息,没有任何效果。JAWS仍然读取刷新页面的确认消息。

由于项目的性质,我无法粘贴代码,但我希望我对问题的描述是可以理解的。

更新:

基于@Josh建议,我更新了代码--现在我使用JavaScript将错误/确认div插入到活动区域。但问题仍然存在。

下面是代码结构:

我将confirmation-status-publisherror-status-publish与所有的aria附加到上面相应的包装器中。

EN

回答 1

Stack Overflow用户

发布于 2019-11-21 14:55:40

在无法看到代码发生了什么情况的情况下,我怀疑您可能没有正确地使用aria live区域。

要使活动区域工作,它必须以具有aria-live或等效role属性的元素的形式出现在页面加载中。无法通过脚本在页面加载后添加活动区域,因为它无法工作。

当页面加载时,在aria元素中的任何内容都将被视为页面的一部分,而不是以任何特殊的方式公布。

只有当通过动态地将内容添加到活动区域时,来自活动区域的公告才是aria-live="polite/assertive"aria-atomic="true/false"属性将控制其工作方式的行为。

所以,要想让这件事奏效,你需要做一些如下的事情:

在页面上加载:

代码语言:javascript
复制
<div aria-live="assertive" aria-atomic="true">
    <form>
       ... some code
    </form>
<div>

提交表格后:

代码语言:javascript
复制
<div aria-live="assertive" aria-atomic="true">
    <div id="confirmation">
       ... some other code
    </div>
<div>

我鼓励您查看一下Terrill Thompson Aria现场测试页面上的源代码,并使用JAWS/IE运行一些测试,以了解它应该如何工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58976045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档