X/HTML5 和 XHTML2

在了解了XHTML 2的进展之后,我们再来看看X/HTML 5 的进展。

X/HTML 5酷在什么地方

章节元素的构想

X/HTML 5引入新的元素用于把Web页面分成若干章节。这些组成部分有助于搜索引擎和辅助工具更好地理解页面内容。使用这些新元素可以使标签更具可读性。

章节化内容的构想很酷!但是请看一下为什么使用章节的技术不够酷。

对话元素

对话元素用来表示一段交谈。它包括一个用于定义会话者的dt元素和代表会话者讲话内容的dd元素。例如:

Costello

Look, you gotta first baseman?

Abbott

Certainly.

Costello

Who's playing first?

Abbott

That's right.

Costello

When you pay off the first baseman every month, who gets the money?

Abbott

Every dollar of it.

figrue元素

在印刷发行(教科书、报纸、杂志等)媒体对象(照片、插图、图表等)中经常会使用到标头。到目前为止,Web标记语言还没有可以产生这种效果的结构。figrue元素有一个legend子元素可以用来指定图像的标头。例如:

XML/HTML代码

Credit: Media Inc., 2007

Photo: J. Smith

m元素

m元素代表一段文本被标记或者是高亮。这在动态网页中显示搜索关键字时候非常有用,此时页面中的关键字就可以使用m元素来标出来了。例如,响应用户搜索的关键字snow时,Web页面可以生成下面这样一段内容:

XML/HTML代码

A snowman is a man-like sculpture constructed out of snow.

input元素得到加强

input元素功能加强之后可以支持email、url、数据相关、时间相关、和数字等数据类型。这就意味着更加的验证功能可以在客户端完成了。

开放的进程

X/HTML的开发进程比XHTML 2开放得多。每个人都可以参与到X/HTML 5创意明细中。

X/HTML 5的美中不足

章节元素的使用

采用章节元素的的想法是好的,但是X/HTML 5的应用中显得有点累赘。甚至有些解释会让你更加困惑。例如:

aside元素表示组成页面内容的一个部分,它和aside元素前后的内容相关联,它可以被看作是内容中独立的部分。这些组成部分经常用于印刷技术中的侧连栏。

难道拥有role属性的div元素不加具有扩展性和更容易被理解?

另外一个被提及的章节元素是nav,用于表示页面中链接其它页面的链接。我们真的需要nav元素吗?XHTML 2中的nl元素可以更好地完成这个任务。

HTML 4和XHTML 1中的不足在未来的规范中还将存在

因为X/HTML试图提供向后支持,HTML 4和XHTML 1中的不足将还会在X/HTML 5中存在。规范不必向后当空,相反应该客户端软件通过支持多种规范来提供向后兼容能力。

X/HTML 5没有遵循X/HTML 5手册

X/HTML 5旨在向后兼容HTML 4和XHTML 1。现在big、acronym、u和tt都还不是这个规范中的内容,而像i和samll等其它元素有了重新定义之后的语意。例如,在HTML 4.01规范中是这样定义i和small的:

i:使文本呈现斜体

small:以“小”字体呈现文本

在X/HTML 5中,i和small有了新的含意:

i元素用不同的方式来表现一段文本或者是与正文存在差异的段落,如分类设计、技术术语、外来语言的习惯用语、某个想法、意见、船名或者其它需要在印刷技术中呈现斜体的文本。。

small元素呈现的是小的打印字体(文档中具有说明法律约束作用的部分,如版权或者存在的弊端)和批注等。

通过重新定义i和small的含义,这破坏了对HTML 4和XHTML 1的向后兼容性。这是因为向后兼容应该意味着HTML 5的用户代理(user agent,浏览器)在呈现HTML 4的文档时应该和HTML 4的user agent保持一致。因此,如果HTML 5强调向后兼容,HTML 4中意义不大的结构在HTML 5中也同样没有多少意义。

不会吧?仍然支持font元素?

是的,如果开发者使用WYSIWYG编辑器的话, X/HTML 5依然支持font元素。这样做有什么合理性吗?难道WYSIWYG编辑器就能避免使用font吗?

WYSIWYG签名

使用WYSIWYG编辑器生成的文档必须在head元素中包含下面的WYSIWYG签名:

XML/HTML代码

或者:

XML/HTML代码

这样做的理由是什么呢?某种耻辱的标记?它是不是要告诉浏览器做好最坏的准备,因为这个文档是用WYSIWYG编辑器生成的?那么,如果文档中只有一部分是使用WYSIWYG工具完成的又该怎么做呢?

支持预定义类名

预定义类名是X/HTML 5用户代理中保留的具有语意的CSS类名。下面的例子中copyright就是一个预定义的类名:

XML/HTML代码

而这样的写法才会有意义:

XML/HTML代码

重写class属性变得很难去说明结构的具体含意。例如,下面的代码意味着什么呢:

XML/HTML代码

预定义类名还会限制开发者对类名使用的自由。同样,如果开发者现在使用了一个非预定义类名,但是之后某天这个类名变成预定义类,那又会首产生什么状况呢?这难道就改变了开发者之前内容的语意吗?

HTML 5 v.s. XHTML 5

在试图最终解决HTML和XHTML的争论中,X/HTML 5规范使事情变得更难于理解。的确,X/HTML 5规范中确实说“一般说来,开发者在Web中还能直接使用XML”,即使W3C一直都在为XML未来在Web中的应用不断努力。

开发过程过于匆忙

X/HTML 5是为了应对W3C在HTML 4和XHTML 1更新换代中的拖沓。因此,这导致X/HTML 5的开发过程有点匆忙,感觉这个规范不知道突然从什么地方冒出来然后又快速地跟进。即使是直接参与到其中的开发者也感到规范的开发进程有点不切实际。

下一代标记语言的竞争

X/HTML 5和XHTML 2都在为能够替代HTML 4和XHTML 1展开竞争。即时是在开发的前期,一些浏览器的供应商就已经声称他们对这两种规范的偏好。由于审议的紧迫性和封闭性,这使得Web标准组织出现了两极分化。随着两种规范的进展,更多的开发资源和市场资金将会投入到其中的某一个中,所有的这些因素都会引起一场“标准的”战争。

我们每一个人都是这个标准的制定者,因为Web属于每一个人,只有一场诚实、公开的争论才能保证最好的标准成为赢家。

注:为阅读方便文章中把“HTML 4.x/XHTML 1.x”简写为“HTML 4 and XHTML 1”

你可能感兴趣的:(X/HTML5 和 XHTML2)