作为一个网络开发,一些项目,我的工作属于政府的雨伞,因此都受到 508无障碍 法律法规,有时候 W3C的无障碍 指导方针。到什么程度上可以JavaScript被用,同时仍能满足这些要求?

沿着这些路线,在什么程度上是JavaScript,具体阿贾克斯和使用的软件包等jQuery要做的事情,例如显示的模式对话,弹出窗口,等等。支持的现代化辅助软件,例如爪,奥卡,等等?在过去,该规则去了一些东西像"如果它不会的工作在山猫,它不会作为一个屏幕阅读器。" 这仍然是真实的,或者是否有更多的进展在这些领域?

编辑:达成的共识似乎是,javascript是好的,只要还存在非javascript回退,但是它似乎仍然不确定的有关支持阿贾克斯在屏幕阅读器软件。如果任何人有具体的经验,那将是最有帮助的。

有帮助吗?

解决方案

如果主要关注可访问性,请始终使用符合标准(选择文档类型定义并坚持使用)HTML来启动网站。如果它是一个Web应用程序(表单提交等),请确保表单只使用HTTP GET和POST。一旦你有一个完整的网站/应用程序,你可以添加一些CSS和JavaScript,只要该网站仍在运行,其中一个或两个都关闭。

这里最重要的概念是渐进式增强。您正在使用CSS / JavaScript添加额外的铃声和口哨声,但您的网站/应用程序将完全正常运行,无需

用于测试 508 的一个很好的工具, WAI ,CSS off,JavaScript off尝试使用 Web Developer 插件。

其他提示

我认为答案实际上就是你如何设计事物。 JQuery具有不显眼且易于访问的能力。诀窍是围绕AJAX调用实现冗余,因此没有JavaScript的浏览器仍然可以使用您的服务。换句话说,无论您何时拥有JavaScript响应,对话框等,都需要具有降级的等效项。

如果您有可访问性并且正在测试这两个用例(JavaScript与非JavaScript),那么您应该能够编写满足这两个受众的应用程序。

示例(为了清楚和简洁,省略了$(document).ready调用:

<script>
  $("#hello").click(function(){
    alert("Hi");
  });
</script>
<a href="/say_hello.htm" id="hello">Say Hello</a>

一个简单的示例,但基本上只有在支持JavaScript时才会评估Click JavaScript事件。否则,它将像普通链接一样运行并转到say_hello.htm - 您作为开发人员的工作是确保两个结果都得到适当处理。

希望有所帮助!

渐进式增强肯定是一种途径,但不引人注目并不是所有JavaScript的可访问性,因为屏幕阅读器倾向于使用浏览器作为其工作的基础。由于这些浏览器支持JavaScript,因此页面上的脚本仍会运行。这是AJAX的一个特殊问题,因为单击页面的某个部分可能会更改屏幕阅读器不知道的页面的另一部分。

然而,随着AJAX的成熟,使其易于访问的方法正在出现。查看 WAI-ARIA ,了解可以访问AJAX的现代方法,以及 Google的AxsJAX 是实现它的好方法。


看看

你可能也看看FlashAid,尽管它远远不是一个完美的解决方案。(但是,如果您使用的渐进增强,只有使用阿贾克斯在闪存和用户不使用的无障碍API,你可能会有一个合理的解决方案...for Windows。)

在长期WAI-阿里亚是解决方案。它是有点支持在爪10(β)和Firevox,但它肯定是不足为今天的所有用户。

  

JQuery具有不显眼且易于访问的能力。诀窍是围绕AJAX调用实现冗余,因此没有JavaScript的浏览器仍然可以使用您的服务。换句话说,只要你有JavaScript响应,对话框等,你就需要有一个降级的等价物。

重用代码的一种方法是让您的“简单”页面调用“功能” (或者用于服务器端逻辑的任何东西)可以自己调用,返回JSON或XML。

例如: /static/myform.asp(在服务器端,'包含'与/ajax/myform.asp相同的逻辑) 这样你就可以使用asp作为django的模板了。

当然,使用功能齐全的铃声和口哨框架,你可以让它变得更容易(想想在django中使用相同视图的html和xml'模板'),但同样的想法适用。

完成此操作后,使用jQuery迭代文档就绪的所有锚点,并使用锚点自己的链接添加onclick事件,重新启动/ static / ajax /可以让您的生活更轻松。

任何人都可以认为这会造成太多负担吗?想知道这个“设计理念”是否存在严重缺陷。

我认为已经接受的答案,虽然它的时间很好,现在已经过时了。 (在写这个答案的时候已经十年了。几周前WCAG 2.1已经完成了......)

W3C WAI-Authoring Design Patterns Practices 文档包括需要 javaScript的常见小部件的各种示例,以便将正确的语义,状态和角色传达给辅助技术。

只要您小心地为屏幕阅读器提供关于页面内更新在用户激活之前将会是什么的语义线索,就可以使AJAX可访问。您可能还需要通知屏幕阅读器事后发生的实际更改,例如咏叹调生活区域可能会宣布“已装载20件新物品”管他呢。这是通过javaScript实现的。

如果您的辅助功能知识在“渐进式增强”中停止,并且您将上面接受的答案视为该职位的基本原理,那么您可能需要更新。这些天来事情发展很快。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top