HTML5:让Web应用跟上多媒体时代
HTML的前一次升级发生在大约10年前。10年来,互联网飞速发展,而浏览器市场也风云变幻,现有的HTML标准在支持音视频等多媒体应用上开始显露不足。HTML5是响应互联网最新变化的产物,然而,这一标准的最终通过以及真正落地注定是一个长期的过程。
■ 清水 编译
近日,微软发布了Internet Explore 9(IE9)的技术预览版。与前一个版本IE8相比,微软进行了很多技术创新; 同时,也在对标准的支持上迈出了一大步,特别是对HTML5的支持,这对于Web开发者而言是一个好消息,也肯定会大大加速HTML5标准的推广。
HTML5是HTML的最新标准,HTML5的草案已经于2008年发布,目前W3C(万维网联盟)正在对此进行进一步完善,可能于今年年底或更晚些时候正式推出。对许多人来说,早该进行这种改进了。十多年来,HTML一直没有进行真正的升级,上一次正式获得W3C推荐(即Web标准制定过程的最终阶段)的标准语言还是2001年的XHTML 1.1。此后的这些年,Web开发人员要求升级的呼声越来越高。因为HTML和XHTML标准已力不从心,它们以文档为中心的理念无法有效地满足现代Web应用的需要。
HTML5旨在改变这一切,这项新标准将包括更强大的用于交互、多媒体和本地化等方面的标签以及应用编程接口(API)。随着对HTML5功能特性的支持慢慢出现在目前主流的浏览器中,一些开发人员甚至已开始表达这种希望:这种经过更新的新HTML将会解放浏览器,让浏览器不必再依赖Flash、QuickTime和Silverlight等专有插件。
然而,虽然一些知名的内容发布网站已经开始支持这项新标准,如苹果、谷歌、Mozilla 基金会、Vimeo和YouTube,但W3C的内部人士表示,HTML5前面的道路依然很坎坷。这项规范的有些部分仍存在争议,而另一些部分尚未最终敲定。最终标准可能几年后才会出现,而大部分网民用上兼容HTML5的浏览器则需要更长的时间。在此期间,开发人员将面临一大难题:如何利用现有技术开发富Web应用,同时为今后顺利过渡到HTML5做好准备。
让HTML跟上富互联网时代
富互联网应用与 HTML并非一直是天作之合。按互联网之父Tim Berners-Lee的说法,HTML就是“一种用来创建平台独立的超文本文档的简单标记语言。”XHTML(采用纯XML格式的语言)问世后,W3C保留了把网页视做文档的这种理念,而几项提议的XHTML标准注重文档结构、与XML工具的兼容性以及Berners-Lee憧憬的语义Web等问题。
这让那些认为互联网作为一种应用平台还会有更大作为的开发人员深感沮丧。2004年,苹果、Mozilla 基金会和 Opera软件公司的代表共同成立了Web超文本应用技术工作组(WHATWG),这是个独立的Web标准联盟。WHATWG独立于W3C组织开展工作,开始携手改进HTML,方向是互联网应以应用为中心。
2007年,由于XHTML2方面的工作陷入了似乎无休止的争论中,W3C投票决定采纳WHATWG的工作成果,在此基础上制定新的HTML5标准。至此,连Berners-Lee都改变了立场,支持互联网以应用为中心。他在2006年曾写道:“事隔几年后想想,一些问题比较清楚。有必要逐步完善HTML,而试图让全世界一下子改用XML是行不通的。”
这倒不是说纯XML的标记语言这个想法已过时。虽然HTML在标准制定工作中重新扮演起主角,但采用XML格式的HTML5(名为XHTML5)同时也在开发中。区别在于,XHTML5将面向那些已经改用HTML5的人,而开发人员不再非得遵守XHTML的严格语法才能充分利用Web标记语言的最新功能特性。
重新定义标签
尽管如此,HTML5还是继承了当初提议为XHTML 2增添的许多特性,包括旨在改善文档结构的许多功能特性。比如说,新的HTML标签(如header、footer、dialog、aside和figure)让内容创作者能够以一致的方式,指定常用文档元素。以前,开发人员不得不使用自定义类属性的Div标签来标记这类元素,这种自定义的方法使得HTML文档很难解析。
HTML5还继续致力于把Web内容与表现分开来。比如,开发人员可能会惊讶地看到新标准中可以使用b元素和i元素,不过这些元素现在用来以类属方式作为文本的一部分,而不代表任何特定的排版格式。比如,i元素过去代表斜体字体,而在HTML5中,它仅仅指“突出不同意见或语气的一段文本”。与之相似的是,b元素并不代表特意加重字体的文本,而是代表文体上突出的不包含任何额外重要性的文本。
相比之下,原先专门代表下划线文本的u标签在HTML5中被弃用了,一同弃用的还有其他针对特定表现的元素,包括font、center和strike。这类样式属性现在被认为是CSS所特有的。
新标准为表单输入元素引入了额外的数据类型,包括日期、URL和电子邮件地址,同时对部分原来的元素进行了修改,比如改进了对非拉丁文字符集的支持,包括用于指定出现在一些亚洲语言中的“附注文字”(ruby text)的标签。HTML5还引入了微数据(Microdata)概念,这是一种用机器可读标签来标注HTML内容的方法,从而为语义Web简化了处理。总之,这些结构上的改进让内容创作者得以提交更干净、更容易管理的网页,这些网页可与搜索引擎、屏幕阅读软件及其他自动化内容分析工具很好地兼容。
实现更丰富、基于标准的Web
但世人最迫切期待的HTML5新增方面却是那些新的元素和API,让内容创作者只要使用基于标准的HTML,就能制作丰富多媒体内容。现代网页越来越多地采用可扩展图形、动画和多媒体,但到目前为止,这些功能要求使用Flash、RealMedia和QuikTime等专有插件。这类插件不但带来了新的安全风险,还限制了网页的受众面。
HTML5解决这个问题的一个办法就是让浏览器原生地支持相关的标记语言。内容创作者可以把用MathML(用于渲染公式)和SVG(用于渲染可扩展矢量图形)编写的标记直接嵌入到HTML5网页中。这种更强的灵活性让跨平台的HTML比设计当初就既要支持图形又要兼顾文本的Flash和Silverlight等更有竞争力。
不过,Web开发人员对HTML5新的音频和视频标签的呼声更高,这些标签最终目的是要很容易地把多媒体内容嵌入到网页中。这些标签在HTML5标准中要求与编解码器无关,这意味着将由浏览器厂商负责提供能播放任何内容所需的编解码器,只要符合一定标准就可以。其中,视频标签尤其被寄予厚望,因为对网上视频提供商来说,它们希望自己的内容未来可以在苹果的iPhone和即将发布的iPad上播放,这两款设备目前都不支持Flash。
画布(Canvas)标签让交互式Web图形向前迈进了一步,该标签可用来把浏览器窗口的某些区域定义为动态位图。Web开发人员可使用JavaScript来处理画布中的内容,针对用户操作实时渲染图形。从理论上来说,这项技术有望让开发人员只要使用JavaScript和HTML,就能开发出完全交互的游戏。
除了这些显示技术外,HTML5还引入了基于浏览器的应用缓存概念,应用缓存让Web应用可以把信息存储在客户端设备上。与谷歌Gears 插件一样,这些缓存既提升了应用性能,又可以让用户即便无法连接互联网,也能继续使用Web应用。实际上,谷歌已经计划逐步停止支持Gears,改而支持HTML5技术。
浏览器插件还没过时
尽管HTML5有诸多新特性,但也别指望插件会一夜之间销声匿迹。Web向来就有多种相互竞争的技术与媒体格式共存的传统,且很难克服这种传统的强大惯性。也许很多年以后,纯HTML5浏览器的性能才赶得上如今各式各样的客户端。
比如,尽管Vimeo和YouTube已经在试用HTML5 Video标签部署HTML5多媒体内容,却不会像听上去那么容易。W3C决定不在HTML5标准中明确规定用哪种特定的媒体编解码器,这意味着开发人员无法保证任何一种媒体格式在每一种客户端设备上都能播放。比如,苹果、谷歌和微软都在力推H.264视频格式,但Firefox和Konqueror等开源浏览器却无法(或者说思想上不愿)把支持这种格式的相应专利权授给别人。除非解决这个问题,否则Web内容创作者要想覆盖最广泛的受众面,可能只好继续依赖Flash。
也并不是每个旧的Web应用都能针对HTML5进行改写。比如,尽管谷歌低调对待自身的Gears技术,青睐基于标准的本地应用存储方法,但Gears API和HTML5应用缓存API并不完全一样。谷歌自己承认“目前还没有一种简单、全面的方法可以让具有Gears功能的应用(连同整个用户群)都改用基于标准的方法。”除非真有这种方法,否则连使用完全兼容HTML的浏览器的用户也可能只好安装Gears以支持这些过去开发的Web应用。
最后,对钟情于HTML5的开发人员来说,浏览器市场份额也许是最大的障碍。尽管IE6存在渲染问题、在Web标准支持方面落后,却似乎仍是不可能马上消失的浏览器。旧版本的 Firefox、Opera、Safari及其他浏览器也有庞大的用户群,而它们中没一个支持HTML5。除非这些浏览器换成新版,否则Web开发人员可能需要同时维护两个版本的网站:一个面向HTML5用户的版本,另一个面向依赖过时渲染方法的面向旧浏览器的版本。
苹果的iPhone和iPad青睐HTML5,不支持Flash,随着HTML5日趋成熟,预计它们会支持这项标准。与之相似的是,谷歌的Chrome浏览器在支持HTML5方面一路领先,而基于该公司即将推出的Chrome OS的设备预计会亦步亦趋。不过,各大内容发布网站在标准支持方面一向很保守,就算拥有庞大的HTML5用户群,财富500强公司可能也在多年以后才愿意冒险升级。
如何向HTML5过渡?
Web开发社区的不少人认为转向HTML5要谨慎。比如,虽然微软计划在IE9中支持HTML5,但这家软件业巨擘对于在HTML5还没有正式成为标准之前支持它心存疑虑。微软Windows事业部总裁Steven Sinofsky最近接受采访时表示:“先说自己基于标准,但随后又说你是最兼容HTML5的浏览器,这种做法不明智,因为这项标准还没有制定完毕。”
W3C也对HTML5的前景持谨慎态度。HTML5工作组预计这项标准在2011年之前不会正式成为候选推荐标准—这是W3C标准制定过程的特性完成阶段。即便到那时,批准其为W3C推荐标准的过程预计仍会持续到2022年前后。如果真是这样,从XHTML 1.1走到HTML5就要用21年。
不管怎样,HTML5可能仍是今后5到10年最前沿的技术之一。那些希望马上看到实际应用效果的早期采用者可以这么做,尽管应用有限。如今网上有许多试点项目和演示网站展示了这项新标准的各项功能,关键在于选择合适的浏览器。比如,Firefox对HTML5功能特性的支持就不尽如人意; 基于WebKit渲染引擎的浏览器(包括Chrome和Safari)则支持得更好些。
同样,Web开发人员可以随意尝试,可以用遵守当前HTML5规范草案的代码来创建整个网站,不过效果对现有的浏览器而言可能各不相同。对关注HTML5的开发人员来说,网上最好的资源之一是知名程序开发员Mark Pilgrim所写的《Dive into HTML5》,里面深入浅出地介绍了HTML5 Video元素和目前浏览器支持的各种编解码器。
目前,HTML5标准方面还有太多工作要做,以至于有人甚至可能对它不屑一顾,觉得这又是一项日渐重要、但炒作过头的技术。其实,这种认识是片面的,标准制定组织本来动作就很缓慢。好在HTML5方面的工作得到了各大厂商的大力推动,包括Adobe、苹果、谷歌、微软、Mozilla基金会、Opera软件公司及其他厂商。这些公司认识到需要升级已无法满足当前需求的HTML标准,它们的工作有助于HTML5的推广和普及,因此,对Web开发人员来说HTML5机遇实在诱人,不容忽视。