Javascript 强制Voiceover在Web浏览器(OS X)中说文本

Javascript 强制Voiceover在Web浏览器(OS X)中说文本,javascript,macos,accessibility,wai-aria,voiceover,Javascript,Macos,Accessibility,Wai Aria,Voiceover,我正在尝试使一个复杂的Web应用程序可访问。我现在正在做的工作涉及使用验证获取表单字段,以便与屏幕阅读器配合使用 整体结构是一个输入标记(#带有验证的输入),带有控制验证的javascript。根据输入的验证状态,将显示或隐藏单独的div(#验证错误) 我使用role=“alert”和aria live=“assertive”的组合,让它在Chrome、Firefox和IE上与JAWS保持一致 我正在寻找一种正确的方法,在OSX上使用Voiceover(Chrome/Firefox/Safari

我正在尝试使一个复杂的Web应用程序可访问。我现在正在做的工作涉及使用验证获取表单字段,以便与屏幕阅读器配合使用

整体结构是一个输入标记(#带有验证的输入),带有控制验证的javascript。根据输入的验证状态,将显示或隐藏单独的div(#验证错误)

我使用role=“alert”和aria live=“assertive”的组合,让它在Chrome、Firefox和IE上与JAWS保持一致

我正在寻找一种正确的方法,在OSX上使用Voiceover(Chrome/Firefox/Safari,或任何组合)。其行为应该是在每次按键时#input with validation具有焦点,如果存在验证错误,它将从#validation error向用户读取完整的验证错误消息

它不应将焦点从带有验证的#输入改变。我们可以使用wai aria属性的任意组合,或者以我们认为合适的任何方式更改结构

或者,是否有一种方法可以让javascript调用告诉Voiceover“立即阅读此文本”?这将解决几乎所有问题

我们想让互联网成为每个人都更容易访问的地方,但他们显然没有让它变得容易。谢谢你的帮助


注意:我们的页面是一个复杂的web应用程序,主要是用React编写的。

在努力使所有用户组都可以访问页面时,您必须记住的一点是,对于您可能选择使用的每个控件来说,现在还为时尚早。这包括浏览器、小部件库、屏幕阅读器;实际上是整个工具集

如果您测试并发现给定的ARIA功能不起作用,您可能不得不放弃某个浏览器/AT组合。确保检查其他人是否有类似的问题,以支持您为谁编写代码的声明

我认为您在这里找到了正确的解决方案,我可能也会这样做——将验证消息放在一个断言的aria live区域中,并在某些内容关闭时将验证消息发送到这些区域


我发现了,但我不能说你的具体案例有记录。然而,我说相信你的测试。在这里有很多工作要做。

与其讨论结构,不如发布一个示例?还是要点?这复制了这种行为。这不仅会让问题更容易回答,而且会让你得到更好的答案。