【问题标题】:Does Jaws (and other screen readers) read from the input value attribute or the text on screen?Jaws(和其他屏幕阅读器)是否从输入值属性或屏幕上的文本中读取?
【发布时间】:2010-02-08 23:14:18
【问题描述】:

如果我有一个通过 AJAX 更新的表单,则原始值字段(因为它被输出到浏览器)有可能与表单字段现在包含的文本不匹配。

我从一位盲人用户那里得知,我有时会帮助 Jaws 9 及更高版本对富 Internet 应用程序(特别是 AJAX 和 DOM 更改)提供强有力的支持,但我不确定这种支持是否可以追溯到 Jaws 7(正如他们的发布历史所暗示的那样)。

基本上有两个问题:

  • 如果我加载完全空白且没有设置值的表单,然后在页面加载时(或用户点击按钮后)使用 AJAX 加载数据,Jaws 会读取插入的值吗?

  • 如果我加载设置了值的表单,并且这些值通过 AJAX 发生更改,读者会读取值中或屏幕上的内容吗?

我希望这是一个旧版本的缺陷对我有利的情况,并且它总是读取屏幕上的任何内容(在输入字段中)并忽略值。并且它期望表单值发生变化,因此它会读取当前的任何内容,而不仅仅是加载的内容。

但我当然宁愿确切知道,也不愿以后再发现。

【问题讨论】:

  • 最好试试这个。 Jaws 有自己的想法,但通常似乎遵循“DOM 中的内容”与“可见的内容”。我们(根据客户需求)最终使用了“警报”和页面刷新。 (我见过使用的一个“技巧”是将内容推送到“移出屏幕”的页面中,以便被 Jaws 而非普通查看器拾取。)
  • 页面刷新有点扼杀重点,不是吗?屏幕外的页面是指打开一个新窗口吗? iFrame 会起作用,还是更不可能?

标签: ajax accessibility screen-readers jaws-screen-reader


【解决方案1】:

屏幕阅读器与他们自己的界面版本交互 - “虚拟缓冲区”。与网页交互的屏幕阅读器(至少是 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 也值得一读。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 2018-07-19
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多