2010-02-08 86 views
0

如果我有一个通过AJAX更新的表单,原始值字段(如输出到浏览器)与表单字段现在的内容不匹配。Jaws(和其他屏幕阅读器)是否从输入值属性或屏幕上的文本中读取?

我从一个盲人用户那里得知,我有时会帮助Jaws 9和后来对富互联网应用(特别是AJAX和DOM的变化)有强大的支持,但我不确定这种支持是否会回到Jaws 7 (正如他们的发布历史所暗示的)。

基本上有两个问题:

  • 如果我加载形式没有设定的值全部为空白,然后使用AJAX来加载在页加载的数据(或用户点击一个按钮后),大白鲨会读取插入的值吗?

  • 如果我通过设置值来加载表单,并通过AJAX更改这些值,读者将读取数值或屏幕上的内容?

我的希望是,这是一个情况下旧版本的缺陷将努力我的青睐,而且它总是读无论是在屏幕上(在输入字段)而忽略值。而且它希望表单值能够改变,因此它可以读取任何当前的内容,而不仅仅是读取哪些内容。

但是我当然宁愿知道,而不是稍后再发现。

+0

这是最好的,只是试试这个。大白鲨有自己的想法,但通常似乎遵循“什么是DOM”与“什么是可见的”。我们(按客户需求)最终使用'警报和页面刷新。 (我见过的一个“小窍门”是将内容推到一个“移出屏幕”的页面上,以便它被大白鲨收回,但不是普通的收看者。) – 2010-02-08 23:24:50

+0

页面刷新整个点的杀手,它呢?通过页面外的屏幕,你的意思是打开一个新的窗口? iFrame会工作,还是更不可能? – Anthony 2010-02-08 23:42:28

回答

2

屏幕阅读器与他们自己的接口版本进行交互 - 一个“虚拟缓冲区”。屏幕阅读器(至少,JAWS,至少)与网页交互实际上似乎是从DOM中读取节点和扫描显示在屏幕上的内容的组合。所以,我想答案是“取决于”。正如@pst所说,实际上没有替代实际进行测试的可能性,如果可能的话,屏幕阅读器用户也无法取代。

您的解决方案选项看起来有点像这样:

对于一个现代的方法来与像屏幕阅读器辅助软件通信,退房WAI ARIA。 Gez Lemon写了一个好的Introduction to WAI ARIA - 非常值得花时间阅读。

较旧的屏幕阅读器不擅长更新虚拟缓冲区,但JAWS 7.1和更高版本为开发人员提供了一个机制。 Gez Lemon又一次在他的博客Improving Ajax applications for JAWS users中提供帮助。如果你想更深入地研究这一点,有一些很好的背景阅读和research by James Edwards这也值得一读。