检查浏览器是否支持盲人或视力不佳的人?

时间:2011-07-14 01:07:37

标签: java javascript accessibility

如果浏览器支持盲人或视力不佳的人,我如何检查(使用Java或JavaScript)?

2 个答案:

答案 0 :(得分:4)

如果您想确定是否安装了辅助技术(如JAWS或Window-Eyes),请不要使用Javascript。这些技术使用操作系统级API,当前的浏览器不会做任何会导致其存在可检测的事情。有一个基于闪存的黑客可以检测到更新版本的屏幕阅读器,请参阅http://webaim.org/techniques/flash/techniques

  

如果用户使用屏幕阅读器,也许您想提供不同的Flash界面或选项。例如,当观看电影的人使用屏幕阅读器时,您可能需要提供其他按钮或打开自发声功能。您可以使用ActionScript检测屏幕阅读器。如果检测到能够访问Flash内容的屏幕阅读器(当前只有Window-Eyes,JAWS和IBM主页阅读器的最新版本),Accessibility.isActive()函数将返回“true”。例如,您可以添加:

if (Accessibility.isActive()) { 
_root.selfVoicing.play(); 
}
  

重要   由于电影开始和检测到屏幕阅读器之间存在轻微延迟,因此在电影播放的最初几分钟内,Accessibility.isActive()可能会错误地返回false。 Flash影片也必须具有焦点才能使其正常工作。这可以通过将ActionScript与Flash影片中的按钮相关联来解决。   最后,这种检测屏幕阅读器的方法,不会检测所有的屏幕阅读器。它只会检测支持MSAA且安装了Flash 6+播放器的最新版本的屏幕阅读器。   此方法是自动检测Web上的屏幕阅读器的唯一方法。如果要为屏幕阅读器用户提供替代内容,可以使用Flash影片检测是否存在屏幕阅读器并进行相应的重定向。但是,这也假设用户安装了Flash播放器(大多数用户都这样做)。如果用户没有Flash,则检测将不起作用,并且可能会向用户显示其他可访问性问题。还必须注意为屏幕阅读器用户提供替代内容。替代内容必须保持最新,并提供与非屏幕阅读器内容相同的信息和功能。以下是基于屏幕阅读器存在重定向的代码:

if (Accessibility.isActive()) { 
getURL(screenreaderpage.htm); 
} else { 
getURL(normalpage.htm); 
}

答案 1 :(得分:2)

简短的回答是没有防弹的方法来做到这一点。虽然闪存解决方案可能在某些情况下有效,但它不是一个好的解决方案。我是一个完全盲目的程序员,因为闪存通常是完全无法访问的,所以我的浏览器默认没有启用它。许多盲人都使用iPhone,出于显而易见的原因,闪存解决方案也无法使用。即使浏览器确实支持辅助技术,也不意味着您的网站可以访问。如果您的整个站点是将画面绘制到画布上的JavaScript或WebGL,那么浏览器中的屏幕阅读器支持者并不重要,除非作者提供所绘制内容的文本描述,否则无法提供有关动态创建图形的信息。到屏幕。理想情况下,您希望以这样一种方式对您的网站进行编码,使盲人和已选定的个人可以使用它而不进行任何更改。如果这不起作用,您可以始终将不可见的链接放置到您的网站的替代版本或特定于屏幕阅读器的其他不可见的内容,这些内容将不会显示给选定的用户。有关创建仅对屏幕阅读器用户可见的内容的讨论,请参阅this link有关网络辅助功能的一般介绍,请参阅http://webaim.org/intro/