我是辅助功能的新手,我面临的问题是屏幕上有多个错误,但屏幕阅读器仅宣布最后一个错误消息。但后来我意识到读者正在阅读这两个错误,但速度太快了,无法宣布第一个错误,而仅宣布第二个错误(最后一个错误)
我尝试通过放置
aria-live="assertive"
、aria-relevant="all"
、role="alert"
来解决,但行为仍然相同。
如果我可以附加更多信息来详细说明,而不是对问题标记负面评级,请告诉我。
不同的屏幕阅读器缓冲文本以不同的方式宣布。有些人会将所有文本排队并依次宣布,另一些人会尝试优化所有文本,并可能会放弃其中一些文本以跟上。您无法真正控制它,屏幕阅读器用户已经习惯了。
它也可能受到屏幕阅读器语速的影响。许多用户将速率设置得非常快,他们会听到所有内容。其他人设置得较慢。
无论如何,即使您的所有错误消息均未公布,它们仍应与出错的字段相关联(通常与
aria-describedby
),因此如果用户导航回表单,他们会听到与该字段相关的错误消息。
aria-invalid="true"
(并将其设置为“false”或在字段更正后删除该属性)。