2.3 语义标记的重要性
在继续探讨如何以不同的方式为页面添加更深层次的丰富含义之前,让我们先停下来问问“究竟为什么要使用语义?”我的意思是,我们通常都使用div元素来标记一个页面,难道这样做在本质上是错误的吗? (例如,使用以下代码块):
Divya Manian在一篇辩论性文章“Our Pointless Pursuit of Semantic Value”中也讨论了这个问题。在文章中,她认为,对于大多数人来说,过于强调语义标记就是浪费时间:
标记结构内容,但是,和我们教科书上所说的相比,选择标签所起的作用,实际上要小很多……
然而我要说,对于使用正确的语义元素,有两个很好的理由。第一,也是最平淡无奇的一个理由,使用正确的语义元素能够帮助我们制定一个约定俗成的标准,让编写的代码具有良好的可维护性。众所周知,如果使用语义元素,你的同事或继任者将能够在你的代码上工作,而不用学习你的名称方案。反过来也是一样的:如果你接手他人的代码,他或她如果按照标准来编码,你就会知道代码的情况到底如何。
还有另一个更深奥的原因,使用语义元素能增加内容的相关性(aboutness)。简单地说,相关性是衡量意义质量的一个标准,内容的相关性描述了内容的本质。
下面,我们来对这个原理做一个简单的说明,假设有一个网页,其中包含W.H.Auden的一首诗《葬礼蓝调》:
他是我的南北,我的西东。
是我作息的意义。
是我的日夜,欢唱谈话的内容。
我以为爱会永恒不朽……
……我错了
虽然我们知道这是一首关于死亡的诗,但是“死亡”这个词本身并没有出现在诗中。索引页的搜索引擎如何才能知道这首诗是关于什么主题,并且在该主题的搜索结果中找到它?当搜索引擎浏览该页面的链接文本时,在“阅读更多”的链接文本中没有提供上下文,可在 “W.H. Auden关于死亡的诗”的链接文本中提供了一些相关的信息检索。
正确使用语义元素能带来同样的好处。如果页面上所有的内容都用div来标记,内容就会没有上下文;反之,如果正确使用语义元素来标记页面,内容就会有上下文:
现在,哪些是重要标题,什么是主体内容,就非常清楚了。所以说,通过正确使用语义元素,可以赋予内容一些信息检索的相关性。
除了正确使用语义元素来标记内容,还可以使用很多其他方法来增加文档的含义,这些含义是机器所需的、而非用户所需(通常称为结构化数据)。例如,可以使用定义模式(微格式)中现有的属性和元素,或用新属性(RDFa和微数据)来扩展HTML。接下来,我们将一一对这些方法作简要介绍。