2009-08-10 32 views
4

我的一位同事在他的一个项目中遇到了问题。由于缺乏屏幕阅读器和技术方面的经验,我无法为他提供帮助,于是我转向你,SO用户的骄傲和强大。与屏幕阅读器(例如大白鲨)的可访问性

TLDR的总结: 我们在UpdatePanels中的网格不适用于屏幕阅读器。可能是AJAX工具包的东西?

任何人都可以帮助或提供有关下一步可能采取的措施的建议吗?

下面是我从我的同事收到(强调的是我的,不是他的,希望能改善可扫描):


我目前无障碍 工作,我遇到了一些问题当它 来到页面使用Ajax。我使用 屏幕阅读器来测试页面的 可访问性。屏幕阅读器 尝试识别或解释 什么显示在屏幕上 借助音频 (文本到语音),然后将 信息传输给用户。这对 非常有用,对于盲人, 视力受损,文盲或 学习障碍。以下是关于屏幕阅读器如何工作的摘要。 屏幕阅读器拍摄网页的 的快照,并将内容置于 中的虚拟缓冲区。屏幕阅读器 使用虚拟缓冲区允许用户浏览内容。 如果内容用 脚本更改,那么这需要将 中继到屏幕阅读器。如果没有 一种机制来发现什么 改变,屏幕阅读器用户可能 不被通知的内容已经 改变过,或者只通知 内容已被更改,但 将需要读取整个 文档发现确切地有 已更改。 为了测试,我使用了两个 类型的屏幕阅读器,Access To Go 3.0.76和Jaws 10.0。

我的发现,同时测试了该 的页面有更新面板内一个gridview ,例如典型的 搜索页面,屏幕 读者会读,按照往常一样,所有 的 搜索前的页面信息(搜索标准)。按 按下搜索按钮,我们的 gridview包含列标题 和结果集生成。 屏幕阅读器没有得到 信息,通知它 新内容已被写入 页面,因此听到沉默。一个 技术已经建议由 微软员工,涉及 插入 更新面板内隐藏的iframe将触发 屏幕阅读器导航到 更新的内容和阅读。网站 网站说明如何仅通过 UpdatePanel控件实现 可访问性。我已经测试了这种技术,并且没有成功地使它工作 。它呈现一个iframe,但 屏幕阅读器仍然不知道该页面的更新 。

我们AjaxControlToolKit版本 1.0.11119.0,不提供ARIA(无障碍富互联网应用程序 )住区域的标记。 Live 区域指示可能发生内容更改 而没有重点的元素,并提供有关如何处理这些内容更新的技术信息 。 W3C的 建议如何 组织页面内容语义, 基本上给人一种角色,每个页面上的 元素,以便辅助 技术能够传达 适当的信息提供给用户。 我不确定这暗示了 我们在技术上的位置。

回答

1

AJAX网页是不是屏幕阅读器,至少对大白鲨的一个问题,那就是大约2年前(我开发了一些网络应用可以与许多Ajax与大白鲨伟大的工作)。

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

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

编辑:有好东西有:Sitepoint article about AJAX and screenreaders

+0

感谢您的帖子艾德里安!我将把这件事传递给我的同事,让他在他的项目中尝试一下,希望能够解决这个问题。我会告诉你! – 2009-08-11 12:10:06

+1

看起来iframe和脚本解决方案在我们的例子中没有解决。网格导致UpdatePanel拒绝被识别。 我们正在研究一种显示我们的结果而不使用UpdatePanel的替代解决方案。如果这个工作,我会张贴这个答案。 – 2009-08-27 12:33:15

1

嗯,这完全取决于你想给用户更新的优先级,记住这一点,你不做出最终屏幕阅读器更加详细,您可能需要浏览ARIA直播区域,根据优先级别,您可以将更新标记为poliyte atomic或assertive。

相关问题