我的一位同事带着他的一个项目来找我。由于我缺乏屏幕阅读器和技术的经验,我无法帮助他,我转向你,SO用户的自豪和强大。
TLDR人员摘要: 我们在UpdatePanels中的网格在屏幕阅读器中不起作用。可能是AJAX工具包的东西吗?
任何人都可以帮助或提供我们下一步可能采取的步骤的建议吗?
这是我从同事那里得到的(重点是我的,而不是他的,希望提高可扫描性):
我正在研究可访问性 我遇到了一些问题 来到使用Ajax的页面。我用了 屏幕阅读器测试页面的 可访问性。屏幕阅读器 试图识别或解释 什么在屏幕上显示 在音频的帮助下 (文本到语音)然后传输 给用户的信息。这是 对失明的人非常有帮助 视障者,文盲或 学习障碍。这是一个简短的说明 屏幕阅读器的工作原理摘要。 屏幕阅读器拍摄快照 网页并将内容放入 虚拟缓冲区。屏幕阅读器 使用虚拟缓冲区来允许 用户浏览内容。 如果内容随之改变 脚本,然后这需要 转发到屏幕阅读器。没有 发现有什么的机制 屏幕阅读器用户可能会改变 没有被通知内容 完全改变,或只是通知 内容已被更改,但是 将被要求阅读整体 文件,准确发现有什么 改变。 为了测试,我使用了两个 屏幕阅读器类型,Access To Go 3.0.76和大白鲨10.0。
我在测试时的发现是这样的 在具有gridview的页面上 在更新面板中,一个典型的 搜索页面,例如,屏幕 读者会按照惯例阅读所有内容 之前页面上的信息 搜索(搜索条件)。上 按下搜索按钮,我们的 包含列标题的gridview 并生成结果集。该 屏幕阅读器没有得到 可以告知它的信息 新内容已写入 页面因此听到了沉默。 A. 技术已经被推荐了 涉及的Microsoft员工 在隐藏的IFrame中插入隐藏的IFrame 更新面板将触发 屏幕阅读器导航到 更新内容并阅读。网络 网站解释了如何实现 仅限可访问性 UpdatePanel控件。我测试了这个 技术并没有成功 这行得通。它呈现一个iframe但是 屏幕阅读器仍然不知道 对页面的更新。
我们的 AjaxControlToolKit版本是 1.0.11119.0并且不提供ARIA (可访问的富Internet) 应用程序)实时区域标记。生活 区域表示内容发生变化 可能在没有元素的情况下发生 专注并提供辅助 技术信息如何 处理这些内容更新。 W3C 推荐了一个关于如何使用的语义 整理页面内容, 基本上给每个人一个角色 页面上的元素,以便辅助 技术可以传达 适当的信息给用户。 我不确定这意味着什么 我们在技术上的位置。
答案 0 :(得分:1)
AJAX网页对于屏幕阅读器来说不是问题,至少对于大白鲨而言,大约2年前(我开发了一些带有大量AJAX的网络应用程序,这些应用程序与Jaws配合得很好)。
无论如何,您应该使用良好的屏幕CSS布局和HTML锚点以获得更好的可访问性(标题,alt,tabindex,标签)。
无论如何,如果您真的担心可访问性,您应该通过iframe加载所有内容并使用回调来更新父级(一个<script>
标记,用iframe内容更新父容器DIV)。还要看看PORK.Iframe(http://schizofreend.nl/Pork.Iframe)。
答案 1 :(得分:1)
嗯,这完全取决于您希望为用户提供的更新的优先级,请记住,您最终不会使屏幕阅读器更加冗长,您可能希望通过ARIA实时区域,根据优先级,您可以将更新标记为poliyte atomic或assertive。