爲何要Web標準?

Chinese Translation by Chinese Translator (翻譯 Chinese Translation Services ) of "Why do we need web standards" by Zibin Cheah

Google Chrome驚動四方,一個“不小心”把文件泄露了,搞得大家都等不及它的推出。 Google當然不負衆望,成功加入了一個競爭非常的軟體領域=瀏覽器。Google的加入,再一度引起了大家對瀏覽器世界的關注。除了微軟IE,還有開源的Firefox,北歐Opera,蘋果Safari。當然,在中文世界裏,還有Maxthon. 頓時另瀏覽器拉鋸戰再一次燃起火花。IE雖然稱霸已久,可是確實在性能方面的表現不盡如人意(不敢恭維)有某方面做得不太完善,特別是對web標準的支援。它之所以還是霸主,和軟體綁定不無關係。

微軟從當年的95%到當今的70%證明了遊覽器市場還是會持續的變化。更何況當年微軟也是從網景的壟斷搶了過來。現在我們又看到了Google Chrome的加入,火狐新推出新的Trace Monkey JavaScript,還有Opera 9.6測試版都一再顯示瀏覽器的市場佔有可能會一再改變。在這種情況下,已經不是IE獨領風搔,而是百花齊放。在這種情況之下,很多程式師都不禁問到,是不是時候設計給所有網站,而非單單IE而已呢?答案絕對是,而且嚴格來說,每一個版本的IE都可以算是一個不同的瀏覽器,有不同的排版引擎(rendering engine),JavaScript引擎。現在微軟竭盡全力,想把IE8規格化,可是卻出現了一個很致命的問題,很多專爲IE7和6設計的網站不符合規格,在這種情況下,微軟就變得進退不得,結果就得靠不一樣的排版來顯示IE6,IE7和IE8網站。

舉例來說,web標準addEventListener, 其他遊覽器都可以支援,可是唯獨IE不行。在這種情況下,程式師除了給其他符合web標準的遊覽器(絕大多數的遊覽器)用 addEventListener,也得給IE加上一個微軟本身支援的attachevent。當然如果是特別個案就算了,不過還有很多CSS element,比如content property在IE7也是不被支援的。

現在微軟要解決web標準問題,提議大家用不同的meta/doctype來告訴瀏覽器,排版引擎哪些用IE8的,哪些用IE7的。當年網景和微軟之戰,即使網景當年擁有絕大多數的市場(估計不少於95%),可是最後市場也吹向IE。那想想,如果今後IE下臺,換來另一個霸主,那程式師的網站豈不是要從新更改。更何況,在很多海外市場,人們已經不偏愛IE。在印尼火狐是龍頭。而且在手機遊覽器這塊肥田,Opera是佼佼者,更有挪威資料稱Opera的佔有率已經超過一半。

而且試想想,現在IE可能要求人家用meta或doctype(甚至是別的方法)來區別網頁到底是用哪個排版引擎。個人覺得是一個不錯的選擇,畢竟這是要同一時間讓設計者可以用web標準來設計,又要確保舊有網站可以相容的唯一方法。不過令人疑惑的是,程式師是否願意在每一頁放doctype呢?用 CSS來設定吧,不過也得很頭痛的。

一個網站有了大量的CSS,HTML, Javascript就開始會出現某些性能不能在兩個網站一起運行。在中國,IE和Maxthon是占市場很大比率,那給她們他們的排版設計好了(畢竟 IE和Maxthon用一樣的排版,不過就象之前提到的,非常不標準化。可是很多網站的使用者,特別是web2.0網站的使用者,都相信選擇 (freedom of choice),畢竟除了IE,還有火狐, Opera, Safari, Chrome, Omniweb, Konquerer, Camino, Chrome等。這些使用者,也是消費群,而且更可能是肯花錢的一群,因爲她們他們選擇了使用更前端的科技,更能接受新思維,那也或許更可能接受網上消費(或已經在做了)。比方,手機瀏覽(另人聯想到3G)的霸主可不是IE。

IE8將問世,那些運用了不規格的網站可以靠不同排版解決,不過大家可以想像未來IE9呢?IE10呢?以往大家或許有的好理由用不規格的設計,畢竟IE市場如此之大。不過筆者相信再未來其他瀏覽器也會陸續提供選擇,大家都會開始接受不同的的CHOICE。唯有運用web標準設計,才可以給所有用戶提供最佳的瀏覽經驗,最好的網站設計。