【发布时间】:2013-09-22 02:07:21
【问题描述】:
我们的立场
我们正在推动网络可访问性,以符合某些管理公共/教育机构的法律。到目前为止,我们一直在确保:
- 我们的布局在逻辑上是有序的;
- 图片有
alt=""标签。 但我们很快了解到我们需要做好准备并认真考虑这一点。
我们正在考虑什么
我们一直将 AngularJS 视为动态 Web 应用程序的框架,但担心它对我们的可访问性地位可能意味着什么。
我了解没有 JavaScript 的浏览器可能会破坏高度动态的 Angular 应用程序(例如,嵌入在标记中的 {{ item.something }} 等表达式,使用 ng-repeat 从单个 <li> 构建列表,客户端部分视图为空标签等)。
问题
我想知道对于这些严重依赖动态标记和内联标记的框架是否有很好理解的最佳实践或信息资源,这些框架可能会被视为胡言乱语比如屏幕阅读器,甚至是关闭 JavaScript 和 CSS 的浏览器。
【问题讨论】:
-
从在学校研究 WAI 的东西开始,我还记得他们的规范有很多旨在让屏幕阅读器理解动态的、基于 AJAX 的 Web 应用程序的功能。 (例如,您可以将元素标记为内容会动态变化的元素,以便屏幕阅读器会观察它的变化。)通常,WAI 的东西应该是您正在寻找的资源:@987654321@
-
浏览器是否支持 Javascript 无关紧要。当浏览器功能被禁用时,我们必须构建我们的站点以优雅地回退。 Javascript 可以根据用户的意愿打开或关闭,因此我们不能假设他们总是会打开它。实际上,所指出的文章建议在构建 Web 应用程序时考虑这一点。
-
换一种说法:让屏幕阅读器用户可以访问网站与让禁用 Javascript 的用户可以使用网站是完全不同的问题。对于前者:阅读 WCAG,应用广泛支持的 WAI-ARIA 属性,或等效的 hack。 (即关注内容动态变化的元素。)对于后者:不要使用任何 Javascript,或使用渐进增强技术添加它。 (A List Apart 很乐意为您提供有关该主题的大量文章。)
-
需要注意的一点:“渐进式增强”与“优雅后备”不同——它们是解决同一问题的不同方法。如今,前者似乎拥有更大的思想份额。 (即,您从一个功能齐全的服务器端应用程序开始,并添加用户客户端上可用的动态行为。例如,用 AJAX 提交替换常规表单提交,为所有绝对需要 Javascript 的功能动态添加 UI 元素等)见:docs.webplatform.org/wiki/tutorials/…
-
即使在今天,也有一些主流屏幕阅读器不支持或对 JavaScript 的支持非常有限。网站“可访问”和“无需 JavaScript 即可工作”不是两个独立的东西。这并不意味着您必须打开和关闭完整的奇偶校验 JavaScript。显然,你能提供的体验总是会随着 JS 的开启而更加丰富。但是,所有关键任务至少应该在没有 JS 的情况下运行,否则你非常搞砸了你的一些用户。
标签: javascript angularjs accessibility