前不久结束的Google I/O大会上,Google演示了一系列基于HTML 5技术之上的web应该,其中包括离线存储、用户交互、2D绘画等,并表示将来在Adroid和Chrome中加大对HTML 5的支持。微软也表示在下一的浏览器中逐渐加入对HTML 5的支持。网上对HTML 5 和 XHTML 2的比较有不少很好的文章,都值得参考,这里我不想说太多技术上的东西,只谈谈自己对于HTML 5 和 XHTML 2两种标准的理解。
一、未来的Web都需要这两种标准
HTML 5旨在提高网页性能,增加页面交互。HTML 5中增加了不少新的标签,如audio、video、canva等,其交互功能都大超过了XHTML 1.1t和HTML 4.01,这比完全依赖于JavaScript来实现这些功能效率更高更准确。HTML 5让页面内容更加丰富,使超文本更加名副其实。而XHTML 2.0更加注重页面规范和可用性。在XHTML 1.1的基础上,XHTML 2.0根据原定目标——使Web语言逐渐由HTML过度到XML——做出了巨大改进。从Web标准的角度说,XHTML 2.0是一个飞跃,这一点HTML 5则做的不够好。不过HTML 5还提供了另种解析方式,将MIME类型设定为 application/xhtml+xml时,浏览器会使用XML解析器对其进行解析,所以HTML 5的正确名称应该是X/HTML 5。
我们抛开HTML 5与XHTML 2中新增加的标签等不说,未来的Web需要更加强大的功能以实现更加丰富的页面表现,但是同样未来的Web编写应该更加规范,更加体验web的易用性,不过两方面却体现两种规范中,虽然浏览器可以通过不同的命名空间来区分它们,但是我们却无法在同一个文档中同时使用两种规范。
二、我们不需要两种规范
HTML 5还有一个优点是它的向后兼容性,HTML 4在HTML 5的命名空间中仍然可以使用,但是XHTML 2却与XHTML 1.1出现了断层,这也是XHTML 2.0的一个软肋。HTML 5和XHTML 2的竞争实际上是浏览器厂商和W3C标准组织的竞争,其未来的结果很可能是一种妥协方案:浏览器同时支持两种规范。这看似不错,但是仔细想想,我们根据不需要两种规范。因为最终结果是我们的web文档只能是其中的一个,难道让我们在实现强大功能的时候放弃更加优秀的web标准?而且HTML 5和XHTML 2在标签上存在很大差异,这与HTML 4和XHTML 1.1区别完全不同,我们几乎不需要去记忆哪个标签可能在HTML 4中使用哪个可能在XHTML 1.1中使用,因为他们在这方面几乎没有区别,但是HTML 5和XHTML 2不同,他们各自有不同的标签,如果你一不小心记错的话,你可能会遇到不小的麻烦,这无论对于web开发初学者还是其他人员来说都将是个问题。
我的期望是HTML 5和XHTML 2即便真的作为两种规范问世,那么他们的区别也仅仅是HTML 4与XHTML 1.1的区别。我们可以通过简单修改命名空间(HTML不需要命名空间,但是X/HTML 5需要),少量修改代码即可完成转换。竞争是好的,但不要各自为政,相互融合相互借鉴才会产生好的标准。我知道W3C的工作组看不起WHATWG的自私自利,WHATWG也瞧上W3C的傲慢,但是所有的标准只有得到浏览器的支持才是有用的标准,所有的浏览器都支持统一有约束力的标准Web开发才能进行。所以也许两者最后成为一个标准才是最好的选择。
三、也许一切都要等到十年后
XHTML 2已经公布了第8个工作草稿,但是仍然存在一些问题,当然最重要的问题就是浏览器的问题。目前浏览器无论对于XHTML 2还是HTML 5的支持都非常非常少,要比对CSS 3的支持还要少,所以当我们真正可以使用它们来做开发工具的时候,也许是2020年了。不过,我们在一切还没有成为现实之前,尽可能使之完美。
【编辑推荐】