别再留恋:那些被 HTML5 弃置的旧标签
本篇文章里我们将回答下面一些问题:
1,哪些元素和属性在HTML5中被弃置了?
2,在我的站点中是否使用了这些元素?
3,我是否对有效验证感到担心?
4,对向后兼容性来说,这些有什么影响?
5,我的内容能否在所有的目标浏览器和客户端正确显示?
1, 哪些元素和属性在HTML5中被弃置了?
在 HTML5 说明里被弃置的元素有:basefont, big, center, font, strike, tt, frame, frameset, noframes, acronym, applet, isindex, dir。 你可以在这篇 HTML5与4的区别文章中找到它们被弃置的原因。
2,在我的站点中是否使用了这些元素?
如果你的站点使用了以上元素或者属性,你应该考虑将其改为在HTML5中新的更具语义的元素。或者,如果你使用了<font> 或<center>这样的元素,可以将它们移入 CSS 文件来换种表达方式。
一个在大学工作的人说他使用了这些旧元素。他的站点用了大量已经被HTML5弃置的 <acronym> 标签。如果他想使他的符合 HTML5 规范,有三个方案可以解决这个问题:
- 把 doctype 改为 HTML5 ,不修改<acronym>,但HTML并不确定它的有效性。
- 把 doctype 改为 HTML5 ,像规范说明的那样,将<acronym>替换为<abbr>。
- 什么都不做,保持站点的HTML 4.01或者XHTML规范。
在不知道执行这些建议的工作量或者站点的定位以及项目团队对于有效验证的态度前,建议他做那个选择是困难的。说道有效验证,就是我下面要谈到的。
3,我是否该对有效验证感到担心?
虽然有效验证对你的页面标签和CSS都很重要,但在我看来,却非生死攸关。我们接到了一些报告不符合验证的邮件,并纠正了一些错误,主要是关于ARIA的使用。这个属性现在在规范中已被禁止,但是也有一些融通的办法。
让我们来看Google网站这个例子,如果你看它搜索页面的源代码,你可以看到它们使用
<!DOCTYPE html>
但是,这些页面也没有完全符合规范,因为它们使用了<font> 和 <center>这些在规范里已被弃置的标签。这是否意味着用户不能正确访问Google了,显然不是。
还有一点,HTML5 规范也没有最后确定,仍然可能有改动。验证机制也不能立刻体现规范的变动。
4,对向后兼容性来说,这些有什么影响?
我们已经知道Google的站点也不完全符合规范,也没对访问造成什么影响,但是否是向后兼容的呢?是的。据我所知,所有的浏览器支持<font>标签。知识验证机制不支持。如果你使用这些老旧元素,你是可以这样做的,浏览器仍然能处理它们——只是不符合验证而已。
虽说浏览器有向后兼容性,但是你仍然应该在你的HTML4.01或XHTML1.x中去使用 HTML5元素,它们可是有进步意义的提升。如果你采用了一些新元素标签如<video>,为什么不把整个页面也改造一下呢?
5,我的内容能否在所有的目标浏览器和客户端正确显示?
再次重申,看Google,仍然显示在旧的浏览器和设备上,但它的标记是 HTML5的。规范的另一方面也说明了新的特性应该能显示和工作在旧的浏览器上,最起码不会造成无法访问。
记住,浏览器仍然要处理这些,不管它们是不是被 HTML 5支持。就像XHTML一样,虽然frames不符合其规范,但它仍然能正常工作。
所以我们可以得出结论,浏览器将仍然支持被弃置的元素。
总结
要不要使你的站点通过HTML5验证,需要考虑成本等因素,是一个商业决策,至少现在(2012-12-5)还不是非做不可。这也不影响你使用HTML5的新特性比如javascript 的API或离线存储等。