评估JavaScript屏幕阅读器的当前状态

4
我已经在过去两年里进行了屏幕阅读器的优化,但现在我正在开发一个核心功能为音频播放的应用程序。据我所知,在运行屏幕阅读器时没有办法推迟音频播放,目前我的所有音频流都在同时播放。我已经多次查看WAI-ARIA规范,甚至怀疑我正在寻找的功能是否包含在其中。
是否有JavaScript可以访问的整体屏幕阅读器API,允许我协调我的应用程序音频,以避免与辅助设备重叠?是否有一种方式让我监听回调或订阅事件,就像window.addEventListener('screenReaderAudioFinished', handlerFn);这样的方式?
简而言之,我正在寻找一种在JavaScript中通知屏幕阅读器完成讲话的方法。回调,事件等任何东西都可以。

1
这个应用程序基本上是一个媒体/音频播放器吗? - unobf
@unobf部分还协调动画和用户交互。 - novwhisky
2个回答

1
TL;DR:您在浏览器中寻找的内容不存在。
听起来您正在开发游戏,如果是这样,您可以完全接管正在发生的公告-实质上是实现自己的屏幕阅读器。这可以通过在键盘操作的控件上实现应用程序区域和虚拟“光标”来实现。此日历小部件展示了如何实现键盘和手势控制。

http://dylanb.github.io/datepicker/datepicker.html

Audio output可以通过自己的音频管道实现。如果您有播放音频的能力,那么编写此部分应该相对容易,但混合选择和优先级可能是较难的部分。
您不仅应该在用户移动到不同控件时宣布控件,而且还应该有一个“音频描述”轨道,描述动画中发生的重要事件。
如何混合声音取决于任何给定时间最重要的内容以及用户与游戏交互是否存在任何“实时”组件。

1

您需要阅读WCAG的音频控制部分(http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-dis-audio.html)。

实际上,您想要的恰恰与残障人士想要的相反。

需要的是能够停止应用程序中的音频,并在需要时重新启动它。

我会提供一个控件来暂停应用程序中的音频,并在关闭音频模式时以小信号声(<3s)告知用户您的应用程序想要告诉他什么。

屏幕阅读器与浏览器的集成并不完全,因此如果您希望获得辅助设备的完全支持,则很难找到更好的解决方案。


感谢分享这些信息。我认为我的实现已经在某种程度上符合要求,因为大部分音频都是由用户交互触发播放的。然而,在实践中,这种方法会让用户承担停止音频播放的负担,每当他们需要导航到其他地方时。鉴于这个项目首先是关于交互式多媒体的,我认为要求用户干预再次开始播放音频是次优的,更有效的操作模型是应用程序根据环境状态限制自己的回放。 - novwhisky
在这里遇到了评论长度限制,但显然这是一个复杂的讨论。我只想补充一点,即通过播放/暂停控件,用户确实可以完全控制音频/视频播放。问题在于,这个解决方案有点太粗糙,对我来说没有用处。正如你所提到的,SR / 浏览器集成很少,这可能最终成为限制。希望更好的互操作性正在路上。如果您知道适当的工作组可以接受此类请求,我将非常乐意分享我的担忧。 - novwhisky
1
我认为这个问题应该成为下一个UAAG指南的关注重点:http://www.w3.org/TR/2014/WD-UAAG20-Reference-20140925/#gl-control-inaccessible-content(例如2.11.5)。但主要问题是屏幕阅读器和浏览器现在是两个独立的东西,如果浏览器可以警告屏幕阅读器其元素,则没有从屏幕阅读器到浏览器的警报。 - Adam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接