我们的网站上有一个表单,其中包含在用户输入时使用 JavaScript 进行验证的字段(onChange 事件)。错误消息以红色文本显示在字段输入下方。
目前,我们使用 aria-descriptedby 和 aria-invalid 属性将消息呈现给 NVDA。屏幕阅读器会正确地宣布字段何时无效,但不会宣布字段何时再次有效。我们的测试团队强调这是有问题的。
我们还研究了将 role="alert" 添加到错误字段,但这似乎会在该字段无效时导致“双声” - 它会因为 role="alert" 而宣布错误一次,并再次因为咏叹调描述。
处理这个问题的正确/推荐方法是什么?