低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

Web 2.0 应用的可访问性问题

2008 年 6 月 08 日

确认您的网站具有可访问性既是重要的业务也是法律问题。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 请求来更新的一段示范代码:

<pre id="hk0m26"> <b>Active Users:</b><br id="hk0m27"></br> <p id="users-desc">A list of the currently-connected users.</p><br id="hk0m28"></br> <ol aria-live="polite" aria-relevant="additions removals"<br id="hk0m29"></br> aria-describedby="users-desc" id="users"><br id="hk0m30"></br> <li>John</li><br id="hk0m31"></br> <li>Mary</li><br id="hk0m32"></br> <li>Ted</li><br id="hk0m33"></br> <li>Jane</li><br id="hk0m34"></br> </ol><br id="hk0m35"></br>

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

2008 年 6 月 08 日 23:31398
用户头像

发布了 71 篇内容, 共 16.7 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

(28DW-S8-Day22) 《流程型组织》学习笔记:金字塔

mtfelix

28天写作

通过使用终端(iTerm2&Oh my ZSH)来提高您的生产率 John 易筋 ARTS 打卡 Week 41

John(易筋)

ARTS 打卡计划 iterm2 myzsh

第一天(VBA, Python最最最基础入门)

橙橙橙橙汁丶

自学 办公自动化 python excel IT蜗壳教学 vba

翻译:《实用的Python编程》05_02_Classes_encapsulation

codists

Python

复盘读书笔记

lenka

3月日更

软件工程任务排期方法

steve_lee

Wireshark数据包分析学习笔记Day10

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

Python和VBA快速入门

IT蜗壳-Tango

办公自动化 3月日更 IT蜗壳教学

07|PPT 教程|应该如何开始制作一个PPT?

青城

PowerPoint 3月日更

第27届中国国际广告节新闻发布会在厦门顺利召开 ;可口可乐和蒙牛竟然开了一家「可牛了」公司

󠀛Ferry

七日更 3月日更

滚雪球学 Python 之作用域下的 global 和 nonlocal 关键字

梦想橡皮擦

28天写作 3月日更

Zookeeper.02 - API

insight

zookeeper 3月日更

冒泡插入选择排序以及PHP实现

一个大红包

3月日更

对产品经理的一些思考

ES_her0

28天写作 3月日更

Wireshark数据包分析学习笔记Day11

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

Android源码分析笔记:(2021-3-13)事件分发

Geek_416be1

甲方日常 93

句子

工作 随笔杂谈 日常

《3%法则》读书笔记

boshi

读书笔记 七日更

Mac Os下搭建Hadoop运行环境

白程序员的自习室

大数据 数仓 hadoo

GO GC知识点整理

Jack Zheng

go 垃圾回收 GC算法

大作业(一)

Binary

源码分析 -Netty:多线程在Netty中的应用

程序员架构进阶

Java 源码分析 Netty 28天写作 3月日更

爱赢才会拼——目标梯度效应

Justin

心理学 28天写作 游戏设计

redis分布式锁实现

Sakura

28天写作 28天挑战 3月日更

算法攻关 - 从上到下打印二叉树2 (O(n))_offer32

小诚信驿站

刘晓成 小诚信驿站 28天写作 算法攻关 从上到下打印二叉树

《精通比特币》学习笔记(第九章)

棉花糖

区块链 学习笔记 3月日更

《精通比特币》学习笔记(第十章)

棉花糖

区块链 学习笔记 3月日更

HR14问

我是程序员小贱

面试 3月日更

打造技术人创作利器:Typora+PicGo+Github+Jsdelivr 组合拳

Viktor

创作 GitHub Pages 工具软件

第六次作业

秦挺

如何使用标准稳压器输出几百毫伏极低直流电压?

不脱发的程序猿

电路设计 28天挑战 3月日更 电源电路 标准稳压器

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

Web 2.0应用的可访问性问题-InfoQ