4

我的一位同事在他的一个项目中遇到问题来找我。由于我缺乏屏幕阅读器和技术方面的经验,我无法帮助他,我求助于你们,骄傲而强大的 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 推荐了一种关于如何组织页面内容的语义,基本上为页面上的每个元素赋予一个角色,以便辅助技术可以向用户传达适当的信息。我不确定这对我们在技术上所处的位置意味着什么。

4

2 回答 2

1

AJAX 网页对于屏幕阅读器来说不是问题,至少对于 Jaws 而言,那是大约 2 年前(我开发了一些带有大量 AJAX 的 Web 应用程序,这些应用程序与 Jaws 配合得很好)。

无论如何,您应该使用良好的屏幕 CSS 布局和 HTML 锚点以获得更好的可访问性(标题、alt、tabindex、标签)。

无论如何,如果您真的担心可访问性,您应该通过 iframe 加载所有内容并使用回调来更新父级(<script>使用 iframe 内容更新父级容器 DIV 的小标签)。也看看 PORK.Iframe ( http://schizofreend.nl/Pork.Iframe )。

编辑:那里有好东西:关于 AJAX 和屏幕阅读器的 Sitepoint 文章

于 2009-08-10T20:29:31.140 回答
1

好吧,这完全取决于您要提供给用户的更新的优先级,请记住这一点,您最终不会使屏幕阅读器更加冗长,您可能需要通过 ARIA 实时区域并取决于在优先级上,您可以将更新标记为 poliyte atomic 或 assertive。

于 2016-09-30T11:31:59.623 回答