Javascript 如何停止屏幕读取器读取所有错误span标记,该标记具有role=";警惕;?
我正在为我的移动应用程序使用Chrome Vox屏幕阅读器。此读卡器读取包含Javascript 如何停止屏幕读取器读取所有错误span标记,该标记具有role=";警惕;?,javascript,jquery,html,wai-aria,jaws-screen-reader,Javascript,Jquery,Html,Wai Aria,Jaws Screen Reader,我正在为我的移动应用程序使用Chrome Vox屏幕阅读器。此读卡器读取包含role=“alert”的所有错误span标记,我希望屏幕读卡器只读取第一个错误(role='alert')。例如,我们可以看到Gmail帐户注册页面。如何实现这种情况?如果您在每个错误输入旁边放置跨距,那么这些跨距实际上不应该有role=alert,而是ID。然后输入将需要aria describedby=该ID。您可能需要一条消息警报,指出存在错误,并将焦点放在那里,或将焦点放在第一个与错误相关的输入上,选择等等 如
role=“alert”
的所有错误span标记,我希望屏幕读卡器只读取第一个错误(role='alert')。例如,我们可以看到Gmail帐户注册页面。如何实现这种情况?如果您在每个错误输入旁边放置跨距,那么这些跨距实际上不应该有role=alert,而是ID。然后输入将需要aria describedby=该ID。您可能需要一条消息警报,指出存在错误,并将焦点放在那里,或将焦点放在第一个与错误相关的输入上,选择等等
如果您希望在表单顶部有一个错误框,并且想要一个摘要,您可以将重点放在错误上,并制作一个带有指向输入的锚(文本解释错误)的列表。此操作不需要警报角色
如果你只是想提醒用户有错误,你可以在一个包含role=alert和aria live=assertive的容器中放一个短语,然后关注第一个输入错误。我必须解决同样的问题,最好的解决方案是根本不要对错误消息使用
role=alert
。相反,对可以验证的元素使用aria descripbeby
,并将其指向包含错误消息的范围
这将确保读取焦点中元素的错误消息
与警报相比,这种方法更加用户友好,因为错误消息不会立即读取(如问题中所述),这可能会造成混淆。在页面中导航时,将读取焦点元素的错误消息
例如:
用户名未知
还有一些提示:
- 通过设置
属性,向屏幕阅读器提示元素包含错误aria invalid=true
- ARIA 1.1定义了“ARIA errormessage”属性,一旦广泛使用该属性,就可以使用该属性代替由描述的ARIA