你好,
我正在查看Alert组件,并注意到它为该组件添加了一个ARIA alert角色。这个组件可能在页面加载时不存在,可能会动态显示。
在您对alert组件的无障碍说明中,您说:
当组件动态显示时,大部分屏幕阅读器会自动宣布内容。此时,屏幕阅读器不会通知用户页面加载时的警报。
然而,有些屏幕阅读器并不总是自动宣布内容。Scott O'Hara在一篇名为are we live的文章中谈到了这个问题。
动态注入一个活动区域节点或将现有的活动区域从display: none更改为display: block实际上是相同的。在这两种情况下(不存在或设置为display: none),活动区域在a11y树中不存在。相反,正如以下测试用例所示,确保您的DOM中存在一个空的活动区域,并在必要时将其注入内容,这被证明是确保活动区域将被宣布的最稳健的方法。
警报的严重性
有些人可能不认为成功消息是一个警报,而且根据上下文,信息和警告也不一定都是。您为所有变体都附加了role="alert"到组件上。我真的认为这应该重新审视一下。至少在文档中提到一下。我认为指向WAI-ARIA作者制定的做法在这里没有帮助。
谢谢。
1条答案
按热度按时间wsxa1bj11#
嘿,@garyb1,谢谢你的报告!
这次对Alert组件的审计非常有帮助。我希望我们能尽快改进这个。