《移动网页设计与开发 HTML5+CSS3+JavaScript》—— 2.3 语义标记的重要性

2.3 语义标记的重要性

在继续探讨如何以不同的方式为页面添加更深层次的丰富含义之前,让我们先停下来问问“究竟为什么要使用语义?”我的意思是,我们通常都使用div元素来标记一个页面,难道这样做在本质上是错误的吗? (例如,使用以下代码块):

Divya Manian在一篇辩论性文章“Our Pointless Pursuit of Semantic Value”中也讨论了这个问题。在文章中,她认为,对于大多数人来说,过于强调语义标记就是浪费时间:

标记结构内容,但是,和我们教科书上所说的相比,选择标签所起的作用,实际上要小很多……
然而我要说,对于使用正确的语义元素,有两个很好的理由。第一,也是最平淡无奇的一个理由,使用正确的语义元素能够帮助我们制定一个约定俗成的标准,让编写的代码具有良好的可维护性。众所周知,如果使用语义元素,你的同事或继任者将能够在你的代码上工作,而不用学习你的名称方案。反过来也是一样的:如果你接手他人的代码,他或她如果按照标准来编码,你就会知道代码的情况到底如何。

还有另一个更深奥的原因,使用语义元素能增加内容的相关性(aboutness)。简单地说,相关性是衡量意义质量的一个标准,内容的相关性描述了内容的本质。

下面,我们来对这个原理做一个简单的说明,假设有一个网页,其中包含W.H.Auden的一首诗《葬礼蓝调》:

他是我的南北,我的西东。

是我作息的意义。

是我的日夜,欢唱谈话的内容。

我以为爱会永恒不朽……

……我错了
虽然我们知道这是一首关于死亡的诗,但是“死亡”这个词本身并没有出现在诗中。索引页的搜索引擎如何才能知道这首诗是关于什么主题,并且在该主题的搜索结果中找到它?当搜索引擎浏览该页面的链接文本时,在“阅读更多”的链接文本中没有提供上下文,可在 “W.H. Auden关于死亡的诗”的链接文本中提供了一些相关的信息检索。

正确使用语义元素能带来同样的好处。如果页面上所有的内容都用div来标记,内容就会没有上下文;反之,如果正确使用语义元素来标记页面,内容就会有上下文:

现在,哪些是重要标题,什么是主体内容,就非常清楚了。所以说,通过正确使用语义元素,可以赋予内容一些信息检索的相关性。

除了正确使用语义元素来标记内容,还可以使用很多其他方法来增加文档的含义,这些含义是机器所需的、而非用户所需(通常称为结构化数据)。例如,可以使用定义模式(微格式)中现有的属性和元素,或用新属性(RDFa和微数据)来扩展HTML。接下来,我们将一一对这些方法作简要介绍。

时间: 2024-10-01 17:50:57

《移动网页设计与开发 HTML5+CSS3+JavaScript》—— 2.3 语义标记的重要性的相关文章

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

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

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

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

《移动网页设计与开发 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.2 网页易读性倡议的无障碍的富因特网应用程序组件(WAI-ARIA)

2.2 网页易读性倡议的无障碍的富因特网应用程序组件(WAI-ARIA) 创建网页易读性倡议的无障碍的富因特网应用程序(Accessible Rich Internet Applications)组件(WAI-ARIA)的目的,就是为了解决可访问性的短缺.随着网络超越简单的文档标记,进入一个应用和交互的时代,可访问性短缺就产生了. 下面,我们来看看WAI-ARIA是如何做到这一点的.首先,创建一些HTML扩展(或者,事实上任何基于DOM语言的扩展都可以,例如SVG和XML的扩展):其次,允许开发

《移动网页设计与开发 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》—— 2.6 微数据

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

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

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