微軟近日發(fā)布了192項(xiàng)測(cè)試的結(jié)果,這些測(cè)試分為HTML5、SVG 1.1、CSS3以及二級(jí)、三級(jí)DOM等八類,結(jié)果顯示IE9成功通過(guò)了所有測(cè)試,而Chrome、Firefox、Opera以及Safari在各個(gè)類別中都或多或少有未通過(guò)的情況。 由此得出的結(jié)論是,與Google、Mozilla、Opera相比,IE9對(duì)于W3C標(biāo)準(zhǔn)有著最好的兼容性。
微軟與萬(wàn)維網(wǎng)聯(lián)盟(World Wide Web Consortium W3C)合作,創(chuàng)建了192個(gè)測(cè)試頁(yè)面,各種主要瀏覽器在這些頁(yè)面中的測(cè)試結(jié)果如下圖所示:
結(jié)果的總結(jié)之后是詳細(xì)的各項(xiàng)結(jié)果,并帶有包含各種測(cè)試頁(yè)面的鏈接,任何人都可以執(zhí)行這些測(cè)試。 由此得出的結(jié)論是: IE 9的預(yù)覽版完全兼容這些測(cè)試中所包括的W3C標(biāo)準(zhǔn),而其他瀏覽器無(wú)法達(dá)到這一點(diǎn)。 在其他瀏覽器中,成績(jī)最好的是Firefox,它完全通過(guò)了DOM 2的測(cè)試,但是大多數(shù)瀏覽器在很多類別中的測(cè)試結(jié)果都是黃色或者紅色。 InfoQ采訪了Google、Mozilla和Opera,想要了解他們對(duì)于此次測(cè)試、結(jié)果以及結(jié)論的看法。
Google提到了Google I/O大會(huì)第一天中的內(nèi)容,在其中他們講述了瀏覽器中有關(guān)HTML5的問(wèn)題,并且期望在2010年底,除IE之外的所有瀏覽器都能夠完全實(shí)現(xiàn)HTML5以及其他一些標(biāo)準(zhǔn)。
Mozilla認(rèn)為微軟的測(cè)試覆蓋范圍有限,因此不夠準(zhǔn)確,并會(huì)產(chǎn)生誤導(dǎo):
我們很高興微軟熱衷于使用這套測(cè)試來(lái)衡量瀏覽器對(duì)標(biāo)準(zhǔn)的兼容性,但是MSDN上這些特定的測(cè)試涉及到的范圍很有限,并且關(guān)于瀏覽器兼容性的說(shuō)法很顯然會(huì)產(chǎn)生誤導(dǎo)。
大家都知道,MSDN提到的SVG-in-HTML的測(cè)試是不正確的[1][2],它不符合HTML5解析規(guī)則和DOM規(guī)范,事實(shí)上利用的是IE的缺陷。微軟的工程師都了解該缺陷,并且知道該項(xiàng)測(cè)試本身就是錯(cuò)誤的,因此很讓人奇怪的是,這項(xiàng)測(cè)試竟然被作為瀏覽器之間更進(jìn)一步的互操作性的重要部分來(lái)介紹。另一方面,F(xiàn)irefox的beta版本確實(shí)已經(jīng)具備了HTML5解析器[3],并且每夜構(gòu)建[4]將會(huì)通過(guò)SVG-in-HTML的正規(guī)測(cè)試。
此外,MSDN上列出的CSS測(cè)試很不精確,事實(shí)上,完全通過(guò)了這些測(cè)試的瀏覽器并不與標(biāo)準(zhǔn)兼容。有一份官方的CSS3選擇器測(cè)試,我們已經(jīng)通過(guò)了所有測(cè)試[5],并且,我覺(jué)得對(duì)于web開(kāi)發(fā)者來(lái)說(shuō),當(dāng)討論瀏覽器對(duì)HTML5、CSS3和SVG的支持的時(shí)候,像caniuse.com [6]這樣的站點(diǎn)會(huì)更有用。Mozilla會(huì)繼續(xù)致力于為處于考慮之中的規(guī)范[7]創(chuàng)建開(kāi)發(fā)和公平的測(cè)試套件,也希望其他瀏覽器廠商能夠參與進(jìn)來(lái)。
更新:Mozilla還更新了他們的聲明,增加了下面這段簡(jiǎn)短但很有意義的信息:
我們得到微軟的反饋,他們正在試圖修正那些測(cè)試。
Opera知道微軟的測(cè)試和結(jié)果,但是他們使用了不同的測(cè)試套件,并得到了完全不同的結(jié)果:
我們沒(méi)有執(zhí)行內(nèi)部的專門測(cè)試,而是一直在做大范圍的測(cè)試,以確保我們?cè)谧约旱臑g覽器產(chǎn)品中實(shí)現(xiàn)了所有HTML5中我們所制定的部分。 Opera對(duì)HTML5標(biāo)準(zhǔn)作出了很大的貢獻(xiàn),正是在Opera提出了Video標(biāo)簽之后,它才被加入到標(biāo)準(zhǔn)之中。 我們一直在努力改善產(chǎn)品,以確保最大可能地遵守規(guī)范。
這項(xiàng)測(cè)試是非常有選擇性的,它慎重地選擇了所有要測(cè)試的元素,使結(jié)果看起來(lái)是“獨(dú)贏”的效果。 當(dāng)評(píng)估HTML5測(cè)試的時(shí)候,標(biāo)準(zhǔn)應(yīng)該與其他所有類型測(cè)試相同。 測(cè)試的權(quán)威性應(yīng)該是獨(dú)立的,并且測(cè)試應(yīng)該反應(yīng)出規(guī)范的真實(shí)情況。 我們很容易就能指出Opera比IE表現(xiàn)得好的HTML5相關(guān)的測(cè)試,比如下面這個(gè): http://www.codedread.com/svg-support.php. …
我們一直在測(cè)試,以了解我們的瀏覽器的兼容性如何,但是對(duì)于HTML5的兼容性工作還在進(jìn)行之中。 因此根據(jù)微軟的網(wǎng)頁(yè),他們看起來(lái)只測(cè)試了HTML5中特定的一部分,而沒(méi)有測(cè)試更多的內(nèi)容,像Canvas元素等。
很有趣的是,Opera指出測(cè)試結(jié)果顯示,Opera 10.53瀏覽器對(duì)SVG 1.1測(cè)試的通過(guò)率是94.89%,而IE 9 Preview 2的通過(guò)率只是30.55%。 Opera 10.52在微軟的測(cè)試中有同樣的表現(xiàn),但是IE9在該項(xiàng)測(cè)試中的通過(guò)率是100%,這與30.55%相去甚遠(yuǎn)。
一位軟件開(kāi)發(fā)者Jeff Schiller執(zhí)行了Opera所提到的測(cè)試,并對(duì)微軟的測(cè)試結(jié)果做出了評(píng)論:
盡管我對(duì)IE9的發(fā)展方向感到很激動(dòng),并且一直對(duì)于你們參與SVG工作組的程度有很深的印象,但是我感覺(jué)“IE測(cè)試中心”有很大的問(wèn)題,并且會(huì) 誤導(dǎo)他人。 即使是微軟也承認(rèn)他們只包含了自己所編寫的測(cè)試(聲稱IE9可以通過(guò))而不是完全的測(cè)試套件。
例如: SVG測(cè)試套件包括275項(xiàng)測(cè)試。 而微軟在測(cè)試頁(yè)面中只包含了31項(xiàng)。 例如,IE9甚至不支持漸變色。
另外一個(gè)例子,他們的HTML5的測(cè)試中關(guān)于一行中的SVG標(biāo)記的測(cè)試實(shí)際上是錯(cuò)誤的。 它們之所以在IE9中能夠通過(guò),是因?yàn)闉g覽器在處理子節(jié)點(diǎn)的時(shí)候存在缺陷。 如果我修正該項(xiàng)測(cè)試,它們就只會(huì)在Firefox每夜構(gòu)建版本中通過(guò),而在IE9中會(huì)失敗。