Angularjs 钳口+;IE11+;阿丽亚活着不工作的时候

Angularjs 钳口+;IE11+;阿丽亚活着不工作的时候,angularjs,wai-aria,jaws-screen-reader,Angularjs,Wai Aria,Jaws Screen Reader,我们正在向SPA网站添加ARIA支持 在应用程序中,我们有一个活动区域,在该区域中,我们根据验证显示来自服务器的动态消息 我们添加了role='alert'和aria live='assertive'来阅读这些活动消息 在FF和chrome中,其工作正常,但在IE中,其读取代码如“left brace left brace txtErrorMessage right brace right brace right brace”,即使屏幕上有消息 <div role="alert" aria

我们正在向SPA网站添加ARIA支持

在应用程序中,我们有一个活动区域,在该区域中,我们根据验证显示来自服务器的动态消息

我们添加了role='alert'和aria live='assertive'来阅读这些活动消息

在FF和chrome中,其工作正常,但在IE中,其读取代码如“left brace left brace txtErrorMessage right brace right brace right brace”,即使屏幕上有消息

<div role="alert" aria-live="assertive">
    <p class="scan-complete-text-auto">
        {{model.txtErrorMessage}}
    </p>
</div>

{{model.txtErrorMessage}}

在这里,txtErrorMessage将从api结果填充运行时

我们使用的是AngularJS


如何解决此问题?

尝试使用
ng bind=“model.txterromessage”
而不是
{model.txterromessage}
尝试使用ng show或ng hide隐藏div,直到消息准备就绪。可以检查消息长度以显示或隐藏div本身。这将解决问题。


也不需要role=“alert”和aria live=“assertive”。您可以删除role=“alert”。JAWS+IE倾向于对这种组合进行多次读取。

Angular提供了内置的CDK API来处理这种情况。

或者,您可以保留一个简单的span或div,并以编程方式更新消息

<span
    aria-live="polite"
    class="ada-visuallyhidden"
    [innerHTML]="yourCustomADAMessage"
  ></span>


U r解决方案还解决了我的一个问题我有一个问题。如果我们有如下表达式,那么如何使用ng bind

{{{'totalView.updatedttallabel'| i18next:model}}

在这里,我试图使用国际化(i18n)从资源文件(.json文件)中获取标签,更不用说我已经使用以下行实现了它

<span
    aria-live="polite"
    class="ada-visuallyhidden"
    [innerHTML]="yourCustomADAMessage"
  ></span>