如何使屏幕阅读器宣布何时在Angular或任何单页应用程序中加载了新页面?

问题描述

我一直在到处寻找针对此问题的最佳解决方案,但找不到任何好的解决方案。 我希望诸如NVDA或JAWS之类的屏幕阅读器在加载时宣布新页面。但是使用箭头键滚动页面时,它不应检测到此消息。

我尝试了很多事情。

例如,我添加了一个具有role =“ alert”和/或aria-live =“ polite”的span元素,并使用CSS将其隐藏,并向该元素动态添加了innerHtml以便屏幕阅读器宣布。但是,屏幕阅读器会在使用箭头键滚动浏览页面时检测到它,并再次阅读该消息。 因此,设置一个超时功能,将在2秒后将innerHtml设置为空。

以上操作在某些浏览器中工作正常,但在IE浏览器和JAWS中,当我两次更改innerHtml时,它将读取警报两次。与NVDA配合正常。

但是我想知道是否有更好的方法。

我还尝试将[attr.aria-label]属性绑定到ts文件中的变量。

<div [attr.aria-label]="title" role="alert"></div>

并使用我要宣布的消息更改title变量。但是屏幕阅读器将始终在滚动时检测到该div元素。

请帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)