是否有人在使用带有更新面板的 AJAX 并保持其网站符合 508/可访问性时遇到任何问题?有没有办法检测到 javascript 已关闭并强制更新面板同步工作?
2 回答
第 508 节指南正在向 WCAG 2.0 发展。
http://www.access-board.gov/sec508/refresh/draft-rule.htm#e107
E107 WCAG 2.0 协调
WCAG 2.0 定义的网页,符合 WCAG 2.0 的 AA 级,如>该标准中定义的,(即所有 A 级和 AA 级成功标准和一致性>要求 1 - 4)应被视为符合符合>本部分的以下章节,只要它们也符合本部分的列举部分:
第 4 章,所有相应的 WCAG 2.0 成功标准和一致性要求以及本部分的第 409 和 413 节;
第 5 章,所有相应的 WCAG 2.0 成功标准和一致性要求;
第 6 章,所有相应的 WCAG 2.0 成功标准和一致性要求以及本部分的第 604.4、604.5、607 和 608 节。
咨询 E107 WCAG 2.0 协调。网页的 WCAG 2.0 定义可通过互联网http://www.w3.org/TR/WCAG20/#webpagedef获得。
WCAG 2.0 一致性定义可通过 Internet 获得, 网址为http://www.w3.org/TR/WCAG20/#conformance。
WAI-ARIA 是一项使动态网站可访问的关键技术。这与使用 UpdatePanel 直接相关。使用 WAI-ARIA 标签,辅助技术可以通过可访问性 API 接收来自浏览器的通知,通知面板已更新。使用 WAI-ARIA,您不必担心对新内容进行同步请求。但是,如果您仍然担心,请考虑使用一种称为“渐进增强”的技术。
使用 WAI-ARIA 方法将使您的应用程序朝着可访问性的未来发展,并使其在 508 与 WCAG 2.0 的协调中保持良好状态。
这是一个很大的话题,所以你可能会有更多的问题。
只要您不专门使用 JavaScript 触发回发,那么 ASP.NET 将回退到常规回发,这基本上是 HTML 表单提交。服务器端页面生命周期或多或少相同,<asp:UpdatePanel>
因此您的页面应该优雅地降级。
当您必须使用类似的控件时,您可能会遇到问题,<asp:LinkButton>
因为该控件依赖于 JavaScript 来执行回发。您可以使用以下(示例)代码解决此问题:
<noscript>
<asp:Button runat="server" OnClick="Click_Handler" Text="Update" />
</noscript>
<asp:LinkButton runat="server" OnClick="Click_Handler" Text="Update" />
不支持 JavaScript 的客户端应该首先呈现常规按钮,其他浏览器应该忽略它。为了提高可用性,您应该考虑使用 JavaScript 显示链接元素:
<span class="hidden">
<asp:LinkButton runat="server" OnClick="Click_Handler" Text="Update" />
</span>
<script type="text/javascript">
// PSEUDO CODE:
document.ready ? for each span.hidden : show
</script>
基于 JavaScript 的回发可以发生在多个控件和事件中,而不仅仅是LinkButton
(例如DropDown
,带有AutoPostBack="True"
或TextBox
带有OnTextChanged
事件的控件)。