來源:A List Apart
HTML 是 Web 統一語言,這些容納在尖括號裡的簡單標簽,構成了如今的 Web。1991 年,Tim Berners-Lee 編寫了一份叫做 “HTML 標簽”的文檔,裡面包含了大約20個用來標記網頁的 HTML 標簽。他直接借用 SGML 的標記格式,也就是後來我們看到的 HTML 標記的格式。本文講述了 HTML 這門 Web 標記語言的發展簡史。
從 IETF 到 W3C: HTML 4 之路
HTML 1 並不曾存在,HTML 的第一個官方版本就是由 IETF (互聯網工程任務組) 推出的 HTML 2.0。問世之前,這個版本中的很多細則已經被實現,比如,1994年的 Mosaic 浏覽器已經實現了在文檔中嵌入圖片的方法,後來 HTML 2.0 便吸納了 img 這個標簽。
後來,W3C 取代 IETF 的角色,成為 HTML 的標准組織,1990年代的後半頁,HTML 的版本被頻繁修改,直到1999年的 HTML 4.01,至此,HTML 到達了它的第一個拐點。
XHTML 1: XML 風格的 HTML
HTML 在 HTML 4.01 之後的第一個修訂版本就是 XHTML 1.0,其中 X 代表 “eXtensible” ,擴展,當然也有人將之解讀為 “eXtreme”,極端。XHTML 1.0 是基於 HTML 4.01 的,並沒有引入任何新標簽或屬性,唯一的區別是語法,HTML 對語法比較隨便,而 XHTML 則要求 XML 般的嚴格語法。
使用嚴格的語法規范並非壞事,要求開發者使用單一的代碼風格,比如,HTML 4.01 允許你使用大寫或小寫字母標識標記元素和屬性,XHTML 則只允許小寫字母。XHTML 1.0 的推出剛好碰上了 CSS 的崛起,Web 開發設計者們開始意識到 Web 標准問題,基於 XHTML 的嚴格語法規范被視為編寫 HTML 代碼的最佳實踐。
於是,W3C 推出 XHTML 1.1。
如果說 XHTML 1.0 是 XML 風格的 HTML,XHTML 1.1 則是貨真價實的 XML。這意味著 XHTML 1.1 無法使用 text/html mime-type 直接輸出,然而,如果 Web 開發者使用 XML mime-type,則當時的主流浏覽器,IE 則壓根不支持。看上去,W3C 似乎正在與當時的 Web 脫節。
出力不討好的 XHTML 2
對 W3C 而言,到了 HTML 4 已經是功德圓滿,他們的下一步工作是 XHTML 2,希望將 Web 帶向 XML 的光明未來。雖然 XHTML 2 聽上去和 XHTML 1 類似,它們卻有很多差別,XHTML 2 不向前兼容,甚至不兼容之前的 HTML。它是一種全新的語言,赤條條來去無牽掛。這實在是一場災難。
WHATWG:與 W3C 決裂
W3C 閉門造車的作風引起了一些人的不滿,來自 Opera, Apple, 以及 Mozilla 的代表開始表達反對聲音。2004年,Opera 的 Ian Hickson 提議在 HTML 基礎上進行擴展以適應新的 Web 應用,該提議遭到 W3C 的拒絕。於是,他們自發組織成立了超文本應用技術工作組,就是 WHATWG。
從 Web Apps 1.0 到 HTML5
從一開始,WHATWG 就和 W3C 走不同的路線,W3C 對問題的討論是集體投票,而 WHATWG 則由主筆 Ian Hickson 定度。表面上看,W3C 更民主,然而事實上,各種內部紛爭會使一些決議限於泥潭,在 WHATWG,事情的進展會更容易,不過,主筆的權力並非無限大,他們的委員會可以對那些過於偏執的主筆進行彈劾。
一開始,WHATWG 的主要工作包括兩部分,Web Forms 2.0 和 Web Apps 1.0,它們都是 HTML 的擴展,後來,他們合並到一起成為現在的 HTML5 規范。
言歸於好
在 WHATWG 致力於 HTML5 的同時,W3C 繼續他們的 XHTML 2.0,然而,他們慢慢地陷入困境。
2006年10月,Web 之父 Tim Berners-Lee 發表了一篇博客文章,表示,從 HTML 走向 XML 的路是行不通的,幾個月後,W3C 組建了一個新的 HTML 工作組,他們非常明智地選擇了 WHATWG 的成果作為基礎。這一轉變帶來一些困惑,W3C 同時進行這兩套規范,XHTML 2 和 HTML 5 (注意,W3C 的 HTTML 5 在 5 之前有個空格,而 WHATWG 的 HTML5 則沒有空格),而 WHATWG 也在進行著同樣的工作。
XHTML 已死: XHTML 語法永存
這一混亂局面到了 2009 年開始變得清晰,W3C 宣布終止 XHTML 2 的工作,這是一份關於 XHTML 2 的遲到的訃告。這一消息被那些 XML 的反對者視為珍寶,他們借此嘲笑那些使用 XHTML 1 規范的人,然而他們似乎忘記了,XHTML 1 和 XHTML 2 是截然不同的東西。於此同時,XHTML 1 規范的制定者擔心,XHTML 1 中的嚴格語法規范會被 HTML5 棄用,這種擔心後來證明是多余的,HTML5 既支持松散語法,也支持 XHTML 1 般的嚴格語法。
HTML5 路線圖
HTML5 的現狀是,它不再象以前那樣讓人困惑,然而仍不夠明朗。有兩個組織在同時制定它的規范,這兩個組織有著完全不同的行事風格,WHATWG 是先買後嘗,W3C 是先嘗後買,他們形成了一個不太靠譜的聯姻,最終人們必將面臨一個 HTML5 還是 HTML 5 的問題。
更讓開發者困惑的是,他們什麼時候才可以試水 HTML5。
在一次訪談中,Ian Hickson 提到了 2022,表示要到那時 HTML5 才會形成"推薦標准",此話一出,立刻招來 Web 設計者們的憤怒,盡管他們不知道推薦標准時什麼意思,但他們明白,2022 已經是猴年馬月的事了。
這還不算,更重要的是,這個推薦標准涉及兩套規范,考慮到 HTML5 標准的規模,這個日期還是太樂觀了,畢竟,各大浏覽器以往對既有標准的兼容並不遂人意,想當初,IE 花了10年才接納 abbr 這個標簽。
2012 年,HTML5 會被接納為候選標准,這將是 HTML5 真正開始發力的日子。對 Web 開發設計者來說,這並不重要,重要的是浏覽器的支持,就像 CSS 2.1,當有浏覽器開始支持這一規范的時候,就有開發設計者在使用了,倘若必須等到所有浏覽器都支持才開始入手,恐怕我們現在還在等待中。
HTML5 也一樣,並不會有一個時間點,宣布 HTML5 已經准備妥當,相反,我們會先開始使用它的部分功能,HTML5 並不是一個從零開始全新的東西,它是舊的 HTML 標准的改進,事實上,不管你正在使用的 HTML 是哪個版本,你已經在使用 HTML5 了。