點評:多數人使用HTML 4 和XHTML 1 編寫網頁。相對較少的HTML 狂熱者了解語義HTML 的概念、驗證HTML 結構和改進文檔的可訪問性。高質量的HTML 文檔是反復權衡、設計優选和討論醞釀的結果。儘管受到諸多批評,還沒有任何語言的普及性能與HTML 比肩。多數用戶滿足於標準的現
多數人使用HTML 4 和XHTML 1 編寫網頁。相對較少的HTML 狂熱者了解語義HTML 的概念、驗證HTML 結構和改進文檔的可訪問性。高質量的HTML 文檔是反復權衡、設計優选和討論醞釀的結果。儘管受到諸多批評,還沒有任何語言的普及性能與HTML 比肩。多數用戶滿足於標準的現狀,彷彿生來就該如此一樣。
但是和其他很多標準一樣,HTML 也有後繼者。即便現在,專家仍然在考慮HTML 的下一版本,解決當前版本中已知的所有問題。和任何人多的地方一樣,這些專家也對此項工作的未來方向持有不同意見。
關於新HTML 版本的第一個提議來自W3C 組織的一個工作組。這個工作組想法圍繞著XHTML 2— 這個標準延續了原來進一步淨化XHTML、回歸第一版HTML 設計理念的開發方向。
W3C 之外的一些重要的HTML 專家— 瀏覽器廠商、Web 開發人員、作者和其他有關人員— 不同意XHTML 2 的方向。 2004 年,他們成立了一個獨立的工作組,為新的HTML 版本提出了一種新的設計方向。在WHATWG(Web 超文本應用程序技術工作組,Web Hypertext Application Technology Working Group)的名義下,他們推出了HTML 5 和Web Forms 2。
數年之後,通過工作草案清楚地描述了HTML 的另一種發展方向。 2007 年4 月,W3C 針對是否接納HTML 5 進入標準審核程序的提議進行了投票,(還)沒有承認它是正式標準。多數人讚同。於是出現了一種有意思的情形:W3C 同時研究兩種互相競爭的HTML 和XHTML 後繼技術。從理論上說,兩者都有充分的理由。從實踐上說,讓所有的主流瀏覽器支持這兩種標準還要克服很多障礙。
這就是導致目前這種情況的基本事實。更有意義的是討論兩種提議之間的真正分歧。本文概括介紹了兩種提議的基本要點,然後剖析兩者的設計理念。經常用到的縮寫詞
CSS:級聯樣式表
HTML:超文本標記語言
W3C:萬維網聯盟
XHTML:可擴展超文本標記語言XHTML 簡史
理解XHTML 2 背後隱藏的設計理念需要了解一點歷史。 20 世紀90 年代初,第一個HTML 版本是基於標准通用標記語言(SGML)的。主要的區別在於超鏈接特性— 萬維網的關鍵基礎和成功因素。和SGML 一樣,HTML 允許作者描述文檔的結構,把頭部和段落、有序列表、無序列表分開。在屏幕上的顯示結果和瀏覽器有關。
隨著Web 日漸普及,HTML 用戶要求控制頁面的觀感。瀏覽器廠商在HTML 2 和3 中推出了新的特性。網頁變得難以理解,複雜的嵌套表結構成為控制頁面佈局的主要手段。文檔的其餘部分則充斥著font 標記和color 聲明。原來的文檔結構已經難以理清。
HTML 4 的出現就是為了結束這種混亂,它將表示邏輯推給了CSS,為高級的內容定位引入了層(DIV)。和HTML 3 相比這意味著代碼編寫模式上的變化。為了簡化遷移的過程,通過HTML 4 的Transitional 版本來支持舊的HTML 3 結構。適用於高級用戶的Strict 版本則要求將內容和表示徹底分開。
第一個HTML 4 網站把DIV 當作新的聖杯一樣使用,頁面中幾乎每個需要略加修飾的元素都用上,包括(但不限於)頭部。 HTML style 屬性是常見的描述表示細節的地方。最終從網頁中消滅了氾濫成災的表格。但內容和表示邏輯仍然混在一起。必不可少的CSS 文件只有寥寥數行。
最近,一些知名的Web 開發人員為HTML 4 樣式表提出了一種更巧妙的辦法。在現代瀏覽器中,CSS 屬性並沒有局限於DIV 元素。只要願意可以為任何HTML 元素指定樣式。很多weblog 開始談論語義HTML。沒有完全禁止DIV 元素,但是網頁編寫者開始使用最適合描述其內容的HTML 元素。比方說,多數網站的導航菜單最好用無序列表來描述。再比如,不對段落元素使用bigHeader 這樣的類名,而改為H1 元素,然後用CSS 根據要求修改表示形式。
同時,W3C 提出XHTML 1 作為符合結構良好而有效的HTML 4 的XML 版本。對於XML 用戶來說,這樣做簡化了將XML 內容轉化成網頁並用已有驗證程序檢查轉換結果的工作。 XHTML 1.1 嘗試將不同的問題隔離到不同的模塊中。模塊化方法便於針對不同的需要重用標準的不同部分,也有利於用新的功能擴展標準。
和HTML 4 相比,XHTML 1.1 的用戶甚至更多,把內容和表示分離開。但是和過去一樣,一些實際問題只能使用CSS 中技巧來解決。比如,無序列表表示的菜單結構通常包括漂亮的圖片。但是,圖像不大容易通過文本-語音設施讀給有視覺障礙的人聽。而且Lynx 這樣的文本瀏覽器也不能顯示圖像。一個複雜的CSS 技巧可以在瀏覽器中隱藏文本顯示圖像。但是如果不同頁面上的菜單不同,就很難用CSS 指定這部分內容了。 XHTML 2 背後的設計理念
XHTML 2 背後最重要的設計理念是進一步分離內容和表示,改進HTML 4 和XHTML 1 殘留的瑕疵。比如,為無序列表中的每項指定圖像的原生支持。原來的IMG SRC 標記換成了可用於任何元素的可選屬性SRC。修改後的CSS 完全脫離了內容,不支持圖像的設備很容易轉而表示文本。
但CSS 不是Web 開發人員的惟一挑戰。大量的時間用於服務器和HTML 表單的交互以及存在大量JavaScript™ 代碼。表單僅限於一維的鍵值對。開發JavaScript 代碼工作量很大,但是在文本-語音轉換設備這樣的接口上毫無用處。
基於模塊化的方法,XHTML 2 用XForms 模塊替換了HTML Forms,使用適當的應用程序模型增加了對常見問題的支持。 XForms 不需要一行腳本就能指定交互邏輯、驗證規則和計算方法。此外,這種技術採用了豐富的XML 結構而不是鍵值對,允許出現嵌套的子表單和重複的元素。除了提供一個強大的引擎外,文本-語音設備更適合改變應用程序的豐富性。
除了XForms,還有其他一些XHTML 有關的問題抽取為獨立的規範滿足其他需要— 比如XML Events、XFrames 和Ruby(亞洲語言)。
隨著表示的分離,編程也從標準中分離出來。 onClick 之類的交互屬性被XML Events 模塊代替。由於XML Events 規範本身就是為此而設計的,它提供了一組更強大的工具來處理用戶接口。
對於XHTML 2 的創新,總結而言其基本理念就是分解不同的問題。問題不再是HTML 的次要特性,而成為新規範的主要目的。因此,新規範最適合優化面臨的問題。不過,區別對待不同的問題是出於理念而不是實踐的需要。熟悉使用這套工具的聰明的開發人員可以得到需要的結果。但是當前HTML 版本的一般用戶能否創建高質量的XHTML 文檔並不好說。
XHTML 2 的目標很可能不是一般HTML 用戶。但是在好的開發人員手中,可以作為增強可訪問性的不錯的方法。 HTML 5 的設計理念
WHATWG 在設計HTML 5 的時候採用了一種更符合實際的方法。沒有考慮問題分解之類的抽象理念,這個工作組從當前主流瀏覽器的行為出發製定文檔,和W3C 規範完全不同。在上述分析的基礎上,這個工作組調查了HTML 的實際運用。
根據這些信息,工作組提出了旨在簡化一般Web 開發人員工作的方案。雖然HTML 5 宣稱源於上一HTML 版本,但其主要目標不是純粹性。比如,模塊化文檔的主要目標是方便用優化的Web 應用程序替換。
基於此目的的模塊化語言大大簡化了Web 應用程序的開發。比如,HTML 5 支持數據表格、菜單和工具欄這類交互組件。使用默認行為的描述性HTML 元素可以避免用大量代碼模擬通用DIV 的行為。
HTML 5 規範不限於HTML 元素和屬性。它定義了編輯文檔和拖放式交互這類專用的JavaScript API。這種方法和分解問題的辦法截然不同。它簡化了Web 開發人員API 但增加了規範的大小。
HTML 5 和HTML 4 的相似性遠遠超過XHTML 2 和XHTML 1 的相似性。遷移路徑更平坦了,有經驗的HTML 4 開發人員熟悉新版本也更方便。新特性遵循相似的邏輯。特定元素的專門事件屬性允許HTML 編輯人員提供更適當的文本完成功能。
當前的Web 應用程序和服務器的交互依賴於異步JavaScript XML (Ajax)。 HTML 5 認識到了和服務器交互的重要性,定義了多種和網絡交互、分發收到的服務器事件和從其他域向文檔發送消息而不會造成安全問題的方式。
HTML 5 的基本設計理念是利用Web 開發人員需要的特性擴展HTML 4。 HTML 5 在繼承HTML 4 基本技術的同時進行了簡化。為了解決HTML V4 的不足,HTML V5 選擇最簡單直接的辦法重新設計。新標準的實際應用
XHTML V2 和相關模塊得到了W3C 的官方支持,相關模塊成為W3C 支持的其他XML 規範的重要因素。不幸的是,W3C 的官方認可不能保證主流Web 瀏覽器的支持。支持一般的XHTML V2 不是問題:現代瀏覽器已經支持很多功能。正確地使用XHTML V2 依賴於相關模塊的可用性。在撰寫本文的時候,Microsoft 是否要擴展Windows® Internet Explorer® 以支持XML Events 和XForms 這些特性還不清楚。一種Mozilla XForms 插件,包括XML Events,已經開發了數年。該插件提高了這種技術的功能,降低了實現的難度。
HTML V5 規範的編寫保持了和瀏覽器廠商的深入溝通,始終考慮到實現的問題。儘管該團隊對W3C 官方認可表示懷疑。 FAQ 甚至沒有正式回答什麼時候通過正式批准的問題。不論W3C 的態度如何,瀏覽器廠商似乎決定實現非正式的HTML 5 標準。瀏覽器廠商趕在官方標准出爐之前已不是第一次了。互相競爭的標準
到目前為止,HTML 5 和XHTML 2 都還不是正式的推薦標準。將來一些細微的地方還可能變化。但它們的發展方向不會變,兩者都解決了現行標準存在的一些不足。未來的瀏覽器如何增加對這兩種新標準的支持還有待觀察。當前瀏覽器同時支持HTML 4 和XHTML 1。類似地,將來的瀏覽器可能同時支持HTML 5 和XHTML 2。這兩種標準都有各自的支持者。
如果對XHTML 1.1 比HTML 4 更關心,希望創建的文檔能夠支持不同的設備,可能更偏愛XHTML 2。如果使用XHTML 1 僅僅是因為它符合XML 標準,而更喜歡HTML 5 的新特性,XHTML 5(用XML 改寫的HTML 5)也許是您的最佳選擇。
HTML 5 頗受使用HTML 4 開發交互式Web 應用程序的開發人員的歡迎。對於使用所見即所得文檔編輯器的站點這種方法更可行。但是要具體情況具體分析,HTML 4 和XHTML 1 很可能要並存很長時間。