【发布时间】:2021-11-03 13:06:47
【问题描述】:
我有一个由 js 处理的计时器,每秒从 59 减少到 0。
我正在使用aria-live 来检测更改。但是,每次更改元素时,屏幕阅读器都会不断重复。
如何让屏幕阅读器仅在第一次渲染时宣布计时器?
【问题讨论】:
-
单独添加
aria-live部分并将其隐藏,然后在您的 JS 中添加一行以在初始化计时器后更新aria-live区域。但是我确实想知道为什么您只想宣布一次计时器?在不了解您的用例的情况下,很难给出建议,但您不想至少每 5 秒发布一次吗? -
谢谢,我会根据您的建议尝试通过 JS 处理。对于您的问题,用户报告说屏幕阅读器每秒钟播放一次会引起烦恼,并且带有计时器的消息也很长;因此,对于这种情况,我认为让屏幕阅读器第一次只宣布是可以的。
-
对不起,我不清楚,但我的意思是计时器的用途。由于这是一条消息,它取决于该消息是什么(即,如果它是由于不活动而导致的“注销”消息,您会希望它每隔几秒钟宣布一次,如果它只是某种 toast 消息,那么一个公告将没事的!)。还要记住,任何带有计时器的东西都需要有一个扩展选项,如果它是 WCAG 规定的关键功能(不记得它是哪个 SC,但如果你想查找它是“计时”)。
-
仅供参考,当登录会话还剩一分钟时,将显示一个弹出窗口。弹出窗口包含通知用户的计时器和消息。
-
正如我所说,您需要每 5-10 秒通知一次(与单独的
aria-live区域和计时器循环中的计数器相同的技术)。也不是你需要一个设置屏幕来延长会话时间以完全符合 WCAG 标准,正如我在之前的评论中提到的那样。
标签: javascript html accessibility screen-readers nvda