是否可以使用javascript来检测屏幕阅读器是否在用户计算机上运行?

时间:2011-10-10 11:34:58

标签: javascript html accessibility screen-readers

我想检测屏幕阅读器是否在用户的机器上运行,以避免与html中的音频标签发生声音冲突。如果是,请提供有关如何完成此操作的详细信息。

4 个答案:

答案 0 :(得分:11)

即使您检测到屏幕阅读器正在运行,您也不应该尝试做任何特殊的事情。即使您为一组屏幕阅读器用户提供了正确的选择,您也可能会为另一组人员弄错。最好是首先专注于编写好的干净HTML5。

请注意,并非所有屏幕阅读器用户都使用文字转语音;许多人使用盲文输出。此外,其他类型的辅助工具 - 例如内容荧光笔和语音输入应用程序 - 使用与屏幕阅读器相同的技术和API(例如,DOM,MSAA),因此任何“检测屏幕阅读器”的技术也可能会检测到这些 - 所以你不能认为这意味着用户完全失明并只使用语音。

目前的情况是,音频标签目前无法普遍访问,不同的浏览器具有不同级别的辅助功能支持 - 请参阅HTML5 Accessibility并向下滚动到音频以获取有关当前支持的更多详细信息。我已经看到一些页面在音频标签之后添加了基于HTML5的控件和javascript,因此他们可以提供自己的UI,以确保键盘或屏幕阅读器用户可以根据需要播放/停止音频。 (最终,当浏览器赶上时,不需要这样做。)

就一般可访问性而言,WCAG 2.0(Web Content Accessibility Guidelines)建议任何自动播放超过3秒的音频应具有暂停或停止音频的可访问方式。 (我会更进一步,建议不要使用任何自动音频 - 当使用标签式浏览时,通常无法确定音频来自哪个标签。)

答案 1 :(得分:3)

虽然可能不是一种完全可靠的方式,但是当用户浏览内容时,可以使用焦点事件通过javascript检测屏幕阅读器的进度。

隐藏的“跳过导航链接”(http://webaim.org/techniques/skipnav/)应该是重点,是检测是否有人使用屏幕阅读器的一种方法。

即使它没有解决问题的音频部分,我只是想提供这个部分解决方案,因为我正在寻找可能的方法来自己检测屏幕阅读器。

答案 2 :(得分:2)

您无法使用javascript检测屏幕阅读器,您无法使用任何客户端技术检测屏幕阅读器。您可以使用Flash检测正在运行MSAA客户端的软件。有关其工作原理以及无效且不应用于检测屏幕阅读器的详细信息,请访问:Developer Beware: Using Flash to Detect Screen Readers

答案 3 :(得分:-2)

点击链接 http://northtemple.com/2008/10/07/javascript-and-screen-readers 你的问题得到了解决。