鑒于目前所面臨的問題,SHEEP 小組的架構師告知項目經理該站點的代碼很難進行修改,并且該項目所需時間將遠遠超出當初所估計的。出于好奇,項目經理查看了 Web 站點的歷史,以便查明是否有非凡原因導致該站點難于進行維護。結果表明影響該站點的兩個主要因素是兼容性和外觀。
該站點的第一個決定因素是對舊瀏覽器的向后兼容性。該站點是在 Web 早期發布的。隨著站點的發展以及 Web 技術的提高,公司添加了新功能。為了確保受眾盡可能地大,該站點被設計為可用于當時所有的流行瀏覽器。為了將瀏覽器市場快速變化的影響降至最低,公司決定將站點的 HTML 標記鎖定在通常會被 Microsoft? Internet Explorer? 5 和 Netscape? 4 所支持的層面上。正是這個層面的兼容性導致了頁面布局中額外的復雜性,并且需要使用 JavaScript 代碼來添加新功能。
第二個決定因素是頁面外觀在不同瀏覽器中的一致性。頁面經過了精心布置,因此無論是在 Internet Explorer、Netscape、 Opera 還是其他圖形化瀏覽器中進行顯示時,頁面的外觀幾乎是相同的。為了實現這個目的,頁面使用了大量嵌套的表和小的間隔圖片,用來強制表單元格寬度。
銷售應用程序示例說明了由不適當的側重點所引起的質量問題,比如為了支持舊瀏覽器版本所增加的維護時間,以及為了包含特定于瀏覽器的標記和代碼的大型 Web 頁面所增加的帶寬開銷。幸運的是,假如使用萬維網聯盟(W3C)Web 標準,就能夠很輕易地解決此類問題。
在 2003 年之前,Web 頁設計的復雜性是由于缺少標準的或一致的 HTML 實現而導致的。瀏覽器通過添加對 HTML 語言的擴展來相互競爭。它們對 JavaScript 代碼和文檔對象模型(DOM)的支持情況也各有不同。因此,開發人員不得不創建方法以確保 Web 頁面在不同瀏覽器中的外觀是相同的。所用的技術包括使用表格對圖片文本進行像素級定位、特定于瀏覽器的客戶機和服務器代碼、利用了瀏覽器代碼中的特性或 bug 的編程等。
2003 年左右,開始出現標準的融合和支持這些標準的瀏覽器。1998 年開始,W3C 發布了 Web 標準以便提供規范和準則,使開發人員與瀏覽器實現能夠相互協調。很多瀏覽器(例如 Netscape 4 和 Internet Explorer 5)開始實行部分 W3C Web 標準。但是,直到 2003 年,隨著 Mozilla?、Netscape 6、Internet Explorer 6、Opera 7 和 Firefox 的發布,瀏覽器的兼容程度才達到現在的水平。雖然這些瀏覽器中沒有一個是完全支持 W3C 標準的,但每一個又都非常接近標準,從而使開發人員可以基于主要的標準來編寫代碼,而不是基于特定于瀏覽器的實現。
現在所使用的 Web 標準致力于 Web 頁面的三個方面:結構、表現形式和行為。新的準則和法律要求也觸及了質量方面的問題,即可訪問性。我將在下面各節中討論這些內容。
結構:XHTML
HTML 是最初的 Web 頁面標記語言。現在的 Web 標準中,HTML 已經由 XHTML 代替。隨著 XML 被廣泛采納,W3C 將 HTML 重構為與 XML 兼容。得到的結果是基于 HTML 4.0 的 XHTML 1.0。使用 XHTML 的一個優點在于支持 HTML 文檔的舊瀏覽器可以讀取并正確處理 XHTML 文檔。此外,由于 XHTML 是與 XML 兼容的,所以 XHTML 文檔不能出現缺失的標記或不正確關閉的元素 ―― 而這正是很多 HTML 文檔中普遍存在的一個問題。
XHTML 的 Web 標準為 Web 頁面標記語言定義了新的使命。在 XHTML 中,標記語言將僅傳遞內容和結構 ―― 標題、段落、編號列表和定義列表等。而表現形式則更改為 CSS。從對 HTML <FONT> 標記及其他基于表現形式的標記的反對中就可以看出這種轉變。
表現形式:CSS
W3C Web 標準定義了兩級級聯樣式表(CSS)標準 ―― CSS1 和 CSS2。撰寫本文時,CSS3 標準還在開發中。CSS 標準定義了表示語言,用于指定 Web 頁面的格式 ―― 版式、布置、布局和顏色等。
CSS 答應站點的設計人員將表現形式和格式的具體說明放置在獨立于 Web 頁面 XHTML 文檔的單獨文檔中。這樣將答應重新使用,并且減少了必須隨每個 Web 頁面下載的文本數量。大多數與標準兼容的瀏覽器都提供了一定程度的對 CSS 文檔的緩存支持。這也提供了靈活性,對一個文檔進行更改不會影響另一個文檔。例如,假如一些 Web 頁面共享相同的 CSS 文檔,則對該 CSS 文檔所作的更改將反映在使用該樣式表的所有頁面上。
行為:ECMAScript 和 DOM
Web 標準關注的第三個方面是行為,使用 DOM 和 ECMAScript 指定。文檔對象模型 (DOM) 指定了 Web 頁面的表示方法和相關的瀏覽器對象,因此可以通過 ECMAScript 程序進行訪問和操作。ECMAScript 是 JavaScript 語言的標準化版本,減少了舊瀏覽器腳本語言(例如 Netscape 的 JavaScript 和 Microsoft 的 Jscript)的不兼容性。使用 DOM 和 ECMAScript,Web 開發人員可以添加高級行為和操作,改善用戶的 Web 體驗。例如,您可以在瀏覽器(而不是服務器)的 Web 表單上執行字段驗證。
可訪問性:WAI 和 Section 508
Web 頁面的質量方面也通過一套準則和規定進行了標準化。W3C 建立了一套準則,利用 Web Accessibility Initiative(WAI)來改善 Web 站點的可訪問性。美國政府通過 US Code 的 Section 508 建立了用于 Web 站點可訪問性的一套規定。其他很多國家也在相應的法律中考慮了類似的可訪問性規定和準則。
可訪問性準則的目的在于確保殘疾人可以使用 Web 頁面。設計可訪問頁面的一個有趣的副作用是它更適用于移動設備(例如 PDA、移動電話等)。
寬松的外觀要求
除了向后兼容性要求外,SHEEP 小組的架構師注重到該站點陷入了這樣的困境即過多使用代碼來加強其在不同瀏覽器中的外觀。這是引起問題的 Web 站點設計的諸多舊思路之一。
出于多種原因,早期的 Web 設計人員和站點主辦方堅持認為其站點在所有瀏覽器中的外觀應該是相同的。這種主張超出了對相似外觀和頁面可讀性的要求。它要求在每個瀏覽器的每個頁面上,都具有相同像素定位的元素和相同的字體大小。開發人員將大量時間花費在裝飾 Web 頁面上以確保相同的外觀。