我的一位同事在他的一个项目中遇到问题来找我。由于我缺乏屏幕阅读器和技术方面的经验,我无法帮助他,我求助于你们,骄傲而强大的 SO 用户群。
TLDR-folks 的总结: 我们在 UpdatePanels 中的网格在屏幕阅读器中不起作用。可能与 AJAX 工具包有关?
任何人都可以就我们下一步可能采取的步骤提供帮助或提供建议吗?
这是我从同事那里收到的(重点是我的,而不是他的,希望提高可扫描性):
我目前正在研究可访问性,在使用 Ajax 的页面时遇到了一些问题. 我使用屏幕阅读器来测试页面的可访问性。屏幕阅读器尝试借助音频(文本到语音)来识别或解释屏幕上显示的内容,然后将信息传输给用户。这对盲人、视力障碍者、文盲或学习障碍者非常有帮助。以下是屏幕阅读器工作原理的简要总结。屏幕阅读器拍摄网页快照并将内容放置在虚拟缓冲区中。屏幕阅读器使用虚拟缓冲区来允许用户浏览内容。如果使用脚本更改了内容,则需要将其转发给屏幕阅读器。如果没有发现发生了什么变化的机制,屏幕阅读器用户可能根本不会被通知内容发生了变化,为了测试,我使用了两种类型的屏幕阅读器,Access To Go 3.0.76 和 Jaws 10.0。
我在测试时的发现是,在更新面板中具有 gridview 的页面上,例如典型的搜索页面,屏幕阅读器会像往常一样在搜索之前读取页面上的所有信息(搜索条件)。按下搜索按钮后,将生成包含列标题和结果集的网格视图。屏幕阅读器没有得到通知它新内容已写入页面的信息,因此会听到静音。Microsoft 员工推荐了一种技术,该技术涉及在更新面板中插入隐藏的 IFrame,这将触发屏幕阅读器导航到更新的内容并阅读它。该网站解释了如何仅使用 UpdatePanel 控件实现可访问性。我已经测试过这种技术,但没有成功。它呈现一个 iframe,但屏幕阅读器仍然不知道页面的更新。
我们的AjaxControlToolKit 版本是 1.0.11119.0,不提供 ARIA(可访问的富 Internet 应用程序)实时区域标记。活动区域指示可能在元素没有焦点的情况下发生内容更改,并提供有关如何处理这些内容更新的辅助技术信息。W3C 推荐了一种关于如何组织页面内容的语义,基本上为页面上的每个元素赋予一个角色,以便辅助技术可以向用户传达适当的信息。我不确定这对我们在技术上所处的位置意味着什么。