2012-03-26 94 views
14

爲了試圖瞭解W3C驗證是否可以幫助更好的DOM渲染,或者如果它只是HTML編碼的標準,我嘗試驗證主要網站,但所有這些網站都失敗並出現一些錯誤。爲什麼主要網站不能正確通過W3C驗證?

下面是典型的例子:

  • google.com 36錯誤,2個警告

  • facebook.com 42錯誤

  • youtube.com 91個錯誤,3個警告

  • yahoo.com 212錯誤,8個警告

  • amazon.com 510錯誤,138個警告

當各大網站似乎並沒有花足夠的W3C驗證的時間,是否需要花時間爲中小型網站做到這一點?

+0

我認爲這個問題實際上包含兩個主題(他們都有趣):1)我是否需要生成有效的HTML? 2)他們爲什麼不這樣做? – 2012-03-26 11:00:40

+0

http://stackoverflow.com/questions/7940/how-important-is-w3c-xhtml-css-validation-when-finalizing-work的可能重複 – 2012-03-26 11:00:56

+0

@TomWijsman該問題沒有關注主要網站的失敗。理性地說,通過任何驗證是很好的;但關鍵是爲什麼主要網站不這樣做,如果它是非常重要的! – Googlebot 2012-03-26 11:04:48

回答

12

驗證是一個痛處的問題。在XHTML的日子裏(html5 doctype無處不在)幾乎不可能驗證W3C發佈的嚴格DTD的複雜佈局。我認爲你可能會指責IE是最主要的罪魁禍首,因爲需要這麼多非標準的黑客才能使其以合理的跨瀏覽器方式運行,而且IE是並且是地球上使用最廣泛的瀏覽器。值得感嘆的是,MS並沒有遵循webkit和gecko引擎提供的線索,而是決定添加更多的瀏覽器擴展和黑客來渾水,而不是簡單地遵守「標準」。我們都知道,如果時間不是問題,我們作爲開發人員可以創建驗證頁面,但實際上,正如其他人指出的那樣,驗證最終不是事實目標的有用工具。如果客戶需要驗證,那麼需要花費一定的成本,並且需要進行解釋 - 管理這些期望非常重要。

html網頁在非常短的時間內從一個非常簡單的語義文本佈局引擎發展到在瀏覽器內運行的完全動態的應用程序,驗證工具根本無法跟上這一點。鑑於瀏覽器技術每天都在向前推進,因此我甚至不確定他們可以跨千多個不同的平臺。所以,這是一個供開發人員使用的工具,但是你自己的個人能力決定了項目是否符合目的。在驗證器中有一個圖標或綠色的「確定」框絕對不會定義項目是否符合這個定義。

+0

+1用於指出現代XHTML文檔的複雜性。 – Googlebot 2012-03-26 11:15:11

2

在我看來,你應該驗證你的網頁的最好的理由是,那麼你有最高的可能性,你的網頁在每個瀏覽器看起來都是一樣的。而且你最大限度地減少了佈局(甚至是一些Javascript邏輯)被破壞的可能性。

+0

W3C驗證需要許多在現實世界中無用的標準。例如,你不能用數字開始'id'。 – Googlebot 2012-03-26 11:00:14

+2

@Ali - 幾乎不是一個大問題。什麼樣的真實世界的例子要求你從一個數字開始,你不可能以一個字符爲前綴? – thomthom 2012-03-26 11:15:14

+0

@thomthom這就是要點。花時間使用前綴是否有用?請注意,這是一個例子。我認爲主要網站不會花費這個時間。 – Googlebot 2012-03-26 11:21:14

3

驗證是廉價的質量保證。它會幫助你發現錯誤(尤其是嵌套錯誤和那些由於錯誤操作而造成的錯誤)。它會節省更多的時間,然後花費(特別是如果在一開始實施)。

我還沒有看到任何瀏覽器錯誤恢復例程的性能指標。由於存在很多不同的錯誤,所以很難製作出能夠提供有用信息的任何信息。