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