wor*_*ith 3 accessibility screen-readers voiceover
我在 a 上有一个 aria-live 区域role="alert",其值"assertive"未在表单提交中说出。当时它也是由 PHP 编写的,就像页面加载一样。
它在 PC 上的 NVDA 中运行良好,但在 Mac 上却什么也说不出来。我发誓我之前已经测试过这一点并且经常使用这种技术。
有什么想法为什么不被谈论吗?
div 看起来像这样:
<div class="alert alert-danger" role="alert" aria-live="assertive">Error: please fix the indicated fields:</div>
Run Code Online (Sandbox Code Playgroud)
Que*_*inC 10
众所周知,在页面加载时直接读取 ARIA 实时区域是行不通的,或者对于屏幕阅读器 + 浏览器的某些组合来说并不总是可靠。这是事实:你对此无能为力。
当新的活动区域添加到 DOM 或更新现有活动区域的文本内容时,会读取 ARIA 活动区域。这适用于几乎所有屏幕阅读器+浏览器的组合。但是,对于页面加载时存在的实时区域(是否必须读取)没有明确指定;因此,这取决于屏幕阅读器和浏览器。
知道这一点后,您可以在页面加载后不久通过执行上述两件事之一来触发读取:
请注意,如果您添加/更改现有元素的角色和/或 aria-live 属性,它将不起作用。该元素必须是新的,或其文本必须有效更改。