《移动网页设计与开发 HTML5+CSS3+JavaScript》—— 2.2 网页易读性倡议的无障碍的富因特网应用程序组件(WAI-ARIA)

2.2 网页易读性倡议的无障碍的富因特网应用程序组件(WAI-ARIA)

创建网页易读性倡议的无障碍的富因特网应用程序(Accessible Rich Internet Applications)组件(WAI-ARIA)的目的,就是为了解决可访问性的短缺。随着网络超越简单的文档标记,进入一个应用和交互的时代,可访问性短缺就产生了。

下面,我们来看看WAI-ARIA是如何做到这一点的。首先,创建一些HTML扩展(或者,事实上任何基于DOM语言的扩展都可以,例如SVG和XML的扩展);其次,允许开发人员开发能识别交互式内容的浏览器和辅助技术。例如,如果有一个链接,单击它时,就会使用JavaScript创建一个屏幕上的对话框叠加,但没有办法让浏览器识别它;这个标记看起来就像一个标准的链接:

因为事件附加在使用脚本的链接上,所以,对于这里发生的事件,屏幕阅读设备没有任何信息,也就不能告诉用户事件的来龙去脉,用户对该事件仍然一无所知。WAI- ARIA引入一个新属性—aria-haspopup,只要出现上述的情况,它就会告诉用户到底发生了什么:

用户可以使用一系列的新属性,其中之一,就是所谓的landmark role。这些属性能使得屏幕阅读器和其他可访问导航设备能识别页面结构,这样的话,用户就可以轻松地找到文档。在某种程度上,这种解决方案履行了结构职责,而结构职责,本应是新创造的HTML5元素所应该履行的。

注释:
如前所述,眼下,一些用户代理和辅助技术不能正确解析新HTML5文档大纲,所以,使用landmark role可能会对提高向后兼容性有所帮助。
landmark role的应用使用了具有一系列预先定义值的role属性。这些值并不直接对应HTML5的结构元素,但它们大多都非常的相配。比方说,如果想要定义包含网站一般信息的文档区域,例如标识和品牌标语,则需添加banner:

banner大致类似于header元素,并且在大多数情况下,可以用它来代替header元素。

一些landmark role在HTML5中并没有对应物。在HTML5中,没有合适的元素来指明网页的主要内容在哪里,所以,要想让屏幕阅读器知道关键内容的位置,我们可以使用main:

WAI-ARIA规范所定义的8个landmark role:

application 显示页面的一个区域,这个页面是一个交互式应用程序,而不是一个文档。

banner 正如前面提到的,说明一般的网站内容,可能包含在标头中;在这种情况下,类似于header元素。

complementary 显示主要内容的相关内容,而不是主要内容的组成部分,像一个侧边栏;它类似于aside元素。

contentinfo 提供法律指令等文档信息。通常位于页脚,所以,在这种情况下类似于footer元素。

form 显示除搜索之外的任何形式,例如,联系人表单。

main 显示文档的核心内容。

navigation 包含导航这些文件或相关文件的链接组,类似于nav。

search 显示专门用来搜索这个网站或其他网站的格式。

landmark role不但可用于导航,而且有助于提供语义值,它还能为CSS制作便捷的样式钩子(hook)。使用确切属性值选择符(Exact Attribute Value Selector),就可以轻松地应用规则,例如,用在页眉中:

这个选择符几乎在所有过去10年的浏览器(我所知道的)中都已经实现,所以,除非使用一个非常旧的或一个非常基本的浏览器,否则确切属性值选择符就是有用—但请注意,复杂选择符可能对页面下载速度有不利的影响。

时间: 2024-09-19 09:59:15

《移动网页设计与开发 HTML5+CSS3+JavaScript》—— 2.2 网页易读性倡议的无障碍的富因特网应用程序组件(WAI-ARIA)的相关文章

《移动网页设计与开发 HTML5+CSS3+JavaScript》—— 导读

前言 移动网页设计与开发 HTML5+CSS3+JavaScript 我们正处于一个史无前例的网络创新时代.不久前,一家叫微软的公司主宰着网络世界,例如,2003年全球约95%的电脑使用IE浏览器.这种高度统治的优势是:为开发人员提供了一个稳定的市场:但同时也存在严重的缺陷:微软选择了结束IE浏览器的非核心工作,使得网络创新停滞不前--这就是一个缺乏竞争的封闭环境导致的结果. 现在的情形完全不同了,将近四五个主要浏览器厂商,大约相同数量的主要操作系统商,以及更多的团队一直参与其中.Adobe已经

《移动网页设计与开发 HTML5+CSS3+JavaScript》—— 第 1 章 网络平台

第 1 章 网络平台 移动网页设计与开发 HTML5+CSS3+JavaScript 在这一章里,我将谈论一些必要的网络技术,一些非常有用的知识,以及多设备网络工作的要求和规定.本章的目的确保我们的起点相同,这是一种比喻-我知道我们现在确实起点相同,因为你正在阅读这段话-但下一章才真正开始涉及技术内容. 如果读者渴望马上学习这些技术,则可以跳过这一章并直接阅读第2章.但我强烈建议读者不要这样做.因为第1章含有一些有趣且实用的背景信息.此外,技术含量较少的内容使我有机会表现我那令人惊叹的幽默感.

《移动网页设计与开发 HTML5+CSS3+JavaScript》—— 2.6 微数据

2.6 微数据 通过创建被称为微数据的简单语法,HTML5解决了语义问题.根本上,微数据是一系列提供富有意义的机读数据的名称值对.和前面一样,与其设法去解释它,还不如使用这个更简单易行的方法-向读者展示它是如何运作的: 此标记创建了一个单项.itemscope属性被用于标记此特定项的界限或范围的包含元素.里面含有被称为property的名称值对:itemprop属性的值是名称-在此示例中,是"city"-而元素的内容是值-在此示例中,是"London".最后的结果是

《移动网页设计与开发 HTML5+CSS3+JavaScript》—— 1.5 CSS3及其他

1.5 CSS3及其他 正如HTML5对应HTML4.01一样,CSS3对应的是CSS2.1.CSS3是对一些现有CSS2.1功能进行标准化的进化迭代:因为在不同浏览器中,这些功能的执行会略有差异.另外,在这个网络发展的新时代,网络浏览器可以被嵌入任何设备,所以CSS3还引入了一套全新的功能,使得CSS能符合新时代的要求. 改造浏览器的第一类CSS3功能在很大程度上是视觉效果上的,并且,这些功能基于开发人员已经使用多年的编辑程序:使用任何来源的字体.圆角,并在文本和框上放置阴影.登录之后是一系列

《移动网页设计与开发 HTML5+CSS3+JavaScript》—— 1.4  真正的HTML5

1.4 真正的HTML5 HTML5是HTML4.01的迭代,它在HTML4.01基础上添加了一些新功能,废弃或者删除了几项旧功能,并且对一些现有的功能进行了修改.编写HTML5的目的一是为了规范许多开发人员已使用多年的常见程序编辑和设计模式,二是为了满足现代网络的需求,这是因为,现代网络与应用程序的相关性和它与文档的相关性是一样大的(也可能更大).事实上,Web Applications 1.0是HTML5的前身. HTML5的新功能包括建立可提供含义和可接入性的文档,我会在第2章中介绍.HT

《移动网页设计与开发 HTML5+CSS3+JavaScript》—— 2.4 微格式

2.4 微格式 微格式由一群草根开发人员联合创建.通过使用现有属性的标准化标记模式,他们给内容添加上了更多的属性.微格式最大的魅力不在于它是HTML的扩展,而在于它使用当前的开发方法来工作.它既是一种设计原则,也是一组标准用法模式. 微格式多种多样,有相当复杂的微格式,也有极其简单的微格式.下面这个例子,可能是最简单的微格式: 这种微格式被称为Rel-Tag微格式.关键字是rel属性中的tag,它让其他机器知道URL链接到一个在a元素里的页面,这个页面由一个标签来描述,该标签的名称是URL的最后

《移动网页设计与开发 HTML5+CSS3+JavaScript》—— 2.7 数据属性

2.7 数据属性 HTML5扩展元素含义还可以通过另一种方式:使用数据属性.这些都是用户定义的属性,这些属性的值能提供元素的相关信息,而无需给予机器或人类任何额外的语义.接下来,让我们看看更详细的解释. 假设我们想输出一组数据,其中每一项都有两个值-名称和编号 (例如,独特的数据库ID):我们想将名称显示在文档中,还想让编号可以用于脚本运行中.从目前情况来看,没有相关的属性可以用来存储该信息:我们可能不得不使用这样一个类: 创建数据属性的目的,就是为了将数据相关联.数据属性能像类一样,让你存储这

《移动网页设计与开发 HTML5+CSS3+JavaScript》—— 1.6 浏览器支持

1.6 浏览器支持 现在,读者应当已经了解多设备网络非凡的广泛性和多样性:另外,在这些设备上运行的浏览器范围也相当广,甚至在各式各类的浏览器中,还有各种版本和实现(我希望你已经明白这一点,因为序言中大部分的内容都在试图说明这一点).因此,本书中所提到的一些功能有可能还没实现,或有可能在实现方式上略有不同. 对于每个新功能,我都将它们视为完全实现,而不涵盖每种不同级别的实现水平.另外,我还在附录A中介绍了这些新功能的实际实现. 此外,甚至最前沿的标准提案也会发生变化,即使是当某些浏览器中已经进行了

《移动网页设计与开发 HTML5+CSS3+JavaScript》—— 1.3 了解什么是HTML5

1.3 了解什么是HTML5 关于HTML5到底是什么,还是有些模糊不清.这是我们大家(我们大多数人,大多数用户)对它的理解与其真实的含义有所偏差.HTML5不是一个用于我们创建网站的全新平台,不是一个富多媒体环境,也不是一个可以跨多设备运行网站的工具.总体来说,HTML5是一种尝试,不断制作网站以满足我们当前使用方式的需求,它由最早的简单文本链接网络转变而来. 大多数人认为,HTML5是一系列相关关联并相互补充的技术的集合,这些技术包括CSS3.SVG.JavaScript API等.尽管一些