InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Web 2.0应用的可访问性问题

作者 Brian Smith 译者 沙晓兰 发布于 2008年6月8日

领域
语言 & 开发
主题
Java ,
JavaScript
标签
AJAX

确认您的网站具有可访问性既是重要的业务也是法律问题。2006年Target被起诉,原因是盲人无法访问他们的网站。在网站使用越来越多的javaScript来实现各种特性的动态页面之时,如何保持网站的可访问性这个问题着实不可忽略。

任何一个由大量javascript驱动的动态网站在向大众发布使用之前都必须考虑到两个级别的可访问性。第一个级别是对于那些没有激活javascript的用户,他们能正常使用您的网站所提供的服务吗?另一个级别是对于那些身体有缺陷的用户,他们在您的网站上所享受的是怎样的用户体验呢?

第一个级别的可访问性可以通过所谓的“逐步加强(progressive enhance)”或着“优雅降级(grace degradation)”来实现。实际上,这两种方式只是从两个不同的视角来看待同一种解决方案。“逐步加强”的观点在于首先确保您的站点在没有JavaScript的前提下能够正常提供服务,之后在此基础上再逐渐“人不知鬼不觉地”添加一些互动特性。而“优雅降级”是从相反的视角出发,主张确保在用户没有激活JavaScript的情况下,网站能够退回到最基础的服务功能。Christian Heilmann总结了以“逐步加强”的方式开发的7条准。这些准则可以概括为:

  1. 尽可能地分离功能
  2. 在能够正常运作的服务上逐步添加新功能
  3. 产生有依赖的标记
  4. 在发布之前测试所有功能
  5. 对运行环境了如指掌
  6. 按需加载新功能
  7. 代码模块化

第二级别的可访问性的关键在于为那些身体有缺陷的用户考虑。这可以参考ARIA规格说明来解决。这个规格说明包含的内容基本上是指在具有交互性的html元素中添加特殊的属性。Google Reader的开发团队最近在他们的产品中将该规格说明付诸实践。他们根据在实现的过程中所得到的启发与经验创建了一个可以自动注入可访问性的类库,并将它命名为AxsJAX。John Resig,jQuery的创始人也快速地浏览了一下如何使用ARIA属性来申明页面的某些部分拥有动态更新的功能。John提供了下面这段通过ajax请求来更新的一段示范代码:

        <b>Active Users:</b>
<p id="users-desc">A list of the currently-connected users.</p>
<ol aria-live="polite" aria-relevant="additions removals"
aria-describedby="users-desc" id="users">
<li>John</li>
<li>Mary</li>
<li>Ted</li>
<li>Jane</li>
</ol>

Filament Group提供更多的关于如何使用ARIA规格说明来开发可访问性交互组件的指南。首当其冲的是关于如何使用canvas标签来可开发可访问的图表,他们以数据表格为基础,在JavaScript没有激活的情况下,这个表格的显式能够相应地降级。紧接着他详细解释了如何使用JavaScript创建非常吸引眼球的可访问的slider control。这篇指南使用了下拉框中的数据来创建slider,这样一来control在没有JavaScript的情况下仍然正常工作并且提供类似的功能。这两个控件都自动在html中添加了适当的aria属性。另外,Marco Zehe在他的博客中分两篇博文演示了在网站中实现ARIA规格是多么容易,并且提供了一些简单的ARIA小窍门。他的第一篇博文主题是如何使用aria required表现一个必填域,而第二篇讲到了如何利用aria-labelledby和aria-describedby以将表单域中的句子填充完整,比如如何填充“Delete History after X days”中的X。

查看英文原文:Accessibility Remains a Concern with Web 2.0 Applications

译者 沙晓兰 目前从事Web应用的开发,有Java和JavaScript开发经验,关注J2EE、Struts 2等技术以及富客户端开发动态。

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。