Jaws不会读取错误消息

时间:2016-10-20 13:44:44

标签: angularjs jaws-screen-reader

我正在使用angularjs并试图使网站可访问。当用户没有进入或忘记进入必填字段时,钳口不会读出错误消息。我试过将div添加到“div”但它似乎不喜欢它。任何建议

   <div aria-type-label="{{'some:error'}}">
   <span role="alert" class="error-message">Error</span>
   </div>

2 个答案:

答案 0 :(得分:0)

Jaws和浏览器正在寻找更新的内容以提醒我,因此我发现我必须完全添加和删除数据才能使警报始终如一。例如,当错误消失时我删除了文本,并且一旦出现错误就将文本放回原处。这可以通过几种方式完成。一,使用ng-if={{error}},如果没有错误,HTML将从DOM中删除,并在出现错误时重新放入DOM。

另一种方法是在没有错误时将errorMessage值设置为空字符串,或者在出现错误时将错误消息设置为错误消息。这样,DOM中的文本实际上正在发生变化,从而产生警报。

使用上述两种方法的可能示例:

<input name="theTextInput" type="text" ng-model="filled" placeholder="Add something"/>
<div role="alert" ng-if="filled" aria-type-label="">
   <span class="error-message">{{message}}</span>
</div>
<span class="sr-only" style="display: none;">{{message = "Has Error"}}</span>

Plunker

注意:这在2016年10月和2016年11月在Chrome中有效,但今天它看起来似乎没有提醒。仍然适用于Firefox。

答案 1 :(得分:0)

你必须一起使用aria描述和角色警报。 请看一下:

<input type="textbox" id="yourField" aria-describedby="yourFieldError">
<span role="alert" data-bind="visible:yourCondition" class="error-message" id="yourFieldError">Error</span>

希望它会有所帮助。