我想要一个fieldset
标签来显示错误消息。
在执行类似操作时:
<fieldset>
<legend>Some Legend</legend>
<div role="alert" aria-live="assertive" aria-relevant="all">
My Error Message
</div>
...
<!-- formfields -->
</fieldset>
屏幕阅读器没有读取错误消息,但是将错误消息包装在<label>
标签内时,它正在读取错误消息,但是感觉不对。
根据可访问性,在fieldset
标签内显示错误消息的正确方法是什么?
答案 0 :(得分:0)
aria-live
区域就可以很好地工作。
aria-live
的元素必须在页面加载时存在。也就是说,页面加载后就无法动态添加该属性。aria-relevant
值(即,如果您未指定aria-relevant
),则仅当您更改区域中的文本或添加子DOM节点时,才会宣布更改。在您的情况下,您拥有“全部”,因此也将宣布已删除的子DOM节点。请注意,隐藏或取消隐藏元素不视为DOM的更改,因此不会宣布。一些注意事项:
aria-live="polite"
在大多数情况下就足够了。除了非常紧急的消息外,几乎不需要aria-live="assertive"
。role="alert"
给您一个隐式aria-live="assertive"
。您不必指定aria-live
。