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