WEB標準化進程

2024-04-29    分類: 網站建設

這是關于W3C工作組的系列文章的第一篇,主要關注CSS Working Group及相關工作。我覺得在我開始發(fā)表文章之前,有必要先清除一些關于web標準的廣為流傳的神話,并簡單講一下標準化進程是如何工作的。

一些術語

為了簡單及精確起見,下面列出了一些術語,這些術語在本文中得以使用,在大多數(shù)與標準相關的討論中也使用了這些術語:

Authors:開發(fā)人員,設計人員,或者說任何使用web技術的人。

Implementors:例如,那些提供開發(fā)者工具(developer tools)的公司。

Spec editors:撰寫標準的人。與人們慣常的想法相反,他們并不是創(chuàng)造web技術的人。在下面你將更多讀到關于這一點的內容。

1. ” W3C 創(chuàng)建了標準,然后瀏覽器必須去遵循”

瀏覽器創(chuàng)新與W3C創(chuàng)新(browser innovation vs W3C innovation)是一個廣為流傳的二元對立,然而這樣的對立是錯誤的想法。簡單來說,W3C實際上是implementors!Web標準是通過在Working Groups (WGs)中達成共識來實現(xiàn)的。這些WGs包括了各implementors的代表,主要是瀏覽器的代表。每個WG都有少量W3C成員,但他們只占少數(shù)。例如,在CSS WG中,現(xiàn)在有74名成員,其中只有4個(5.4%)是W3C成員(Bert Bos, Richard Ishida, Chris Lilley 以及 Liam Quin)。當然,瀏覽器通常自己先進行創(chuàng)新以后,然后隨后再進行標準化(例如,rag & Drop API, CSS transitions, CSS transforms, CSS animations),但這樣是很冒風險的,應該盡力避免。如果一個特寫在標準化之前就廣為流傳了,那么,WG可能被迫去解決欠佳語法問題。

2. “你必須在大公司中工作,才能影響web標準”

如果你是在為一個成員公司工作,成為一個Working Group成員確實要容易得多。當然,除此以外,你還可以成為一個特邀專家(Invited Expert),但這對大多數(shù)WGs來說,都是分成困難的。CSS WG現(xiàn)在只有四個特邀專家(Molly Holzschlag, Koji Ishii, Brad Kemper 以及 Anton Prowse),在74名成員中只占5.4%。

然而,如果你想要有所貢獻,并不非得是WG成員。每個WG都有一個公開郵件列表,每個好的想法都會被考慮,不論這個想法來自于誰。通常,一直在跟進某個列表的人可能會有更為有效的建議,因為他們對相關術語更為屬性,并明白其中可能有的局限,但是這些對于提出一個值得考慮的想法來說,都不是必要的。

類似的,壞的想法都會被拒絕,即使這個想法來自于WG成員。這對于保持標準的高質量來說是非常重要的,因為任何人都可以加入WG。對于一個公司來說,要想成為W3C成員,所要做的只是有足夠資金去交年費。任何一個來自于W3C成員公司的人都可以成員W3C成員,只要他們有時間,并且他們的雇主同意他們這樣做。

3. “Spec editors創(chuàng)建web技術”

實際情形并非總是如此。W3C采取兩種方式工作模式:

先審查,再成文:首先,每一個細節(jié)都會在WG中進行討論,然后editor必須將討論結果寫成正式文字 (正如某人所巧妙表達的那樣,”忠實記錄工作組的共識”).在這種工作模式下,editor和其他任何活躍參與這個討論的人有相同權力。 先成文,再審查:editor有更多權力去定義某種技術并在隨后對標準的審查中也擁有更多權力。

CSS WG 主要是工作在第一種模式下,但并非每個WG都是如此。

4. “標準主要是為developers寫的”

標準(specifications)實際上主要是為implementors寫的,比如瀏覽器提供商(browser vendors)。有一些editors會將標準寫得更為 author-friendly,但這并非是必須的。

5. “瀏覽器不能依靠標準, 因為它們還在變化”

在實際操作中,一旦一個標準達到候選推薦(Candidate Recommendation ,CR)狀態(tài),幾乎就不會再有什么重大改變了。早期的一些狀態(tài)(工作草案”Working Draft”和編輯草稿”Editor’s Draft”)是還在改變過程中的標準,因此,一般都會發(fā)生改變。在這些狀態(tài)下的標準實現(xiàn),通常是被看做實驗性質的,甚至在CSS中,是需要加前綴的,以免與將來成形的更為穩(wěn)定的對應標準發(fā)生沖突。在過去幾年里,authors對實驗性質依賴太多,將它們當做穩(wěn)定標準。因此,這些實驗性質的標準似乎就是標準,即使不可信,但實際并非如此。即使一個實驗性的特性在web上廣為使用,大多數(shù)WGs對于改變它們也頗為躊躇。這并不太好,因為這些特性往往并不完美,但是又不可避免要去使用,因為用其他方式的話將會使很多站點無法工作。

6. “CSS3和CSS4 是用以指代CSS版本的正式術語”

在CSS 2.1之后,CSS被分解成很多模塊,每個模塊都有自己的版本。建立在現(xiàn)有CSS 2.1特性之上的模塊被稱為是”Level 3″,但是新開發(fā)出的一些新的特性被認為是從”Level 1″開始的。不幸地是,很多新的起源于Level 3的模塊,進一步促進了”CSS3″這個流行語的普及。然而,很多新模塊(比如Variables),是起源于Level 1的。

從歷史上來看,”CSS3″被用來描述在CSS2.1 之后出現(xiàn)的不管是什么級別的任何模塊或者明確是Level 3的模塊。這兩種定義都有他們的問題。如果它是用來描述出現(xiàn)才CSS2.1之后的任何模塊,那么如何區(qū)分CSS3 和 CSS4?如果它是用來描述明確屬于Level 3的模塊,那么它就毫無理由地排除了很多新的CSS模塊。

7. “W3C 測試集是用來測試標準的一致性的”

這是測試的一個很有用的功能,但是從推進W3C Recommendation的角度來說,測試只是為了確保標準中特性的可實現(xiàn)性,這意味著當瀏覽器無法正確實現(xiàn)某個特性時,可能并不是這個瀏覽器的錯。原因可能是這個標準寫得不好,或者這個特性很難實現(xiàn)如它描述的那樣,或者implementers對這個標準沒有足夠興趣。通常,當有至少兩個瀏覽器通過測試以后,該標準就能繼續(xù)推行。

8. “W3C = CSS WG + 一些小的重要的WGs”

完全不是這樣。當W3C在1994年創(chuàng)建的時候,CSS根本就不存在。除了CSS,很多其他重要的web技術都是由W3C創(chuàng)建的,要么是由它獨立創(chuàng)建,要么是和其他標準組織進行了合作:

HTML DOM API Selectors API XMLHttpRequest XML SVG MathML The PNG file format SOAP

還包括很多其他重要的web技術。進一步說, CSS WG甚至不是大的 WG。例如,WebApps WG有146個成員.

文章標題:WEB標準化進程
地址分享:http://www.muchs.cn/news16/326016.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供品牌網站設計、虛擬主機、小程序開發(fā)、電子商務面包屑導航、網站改版

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網站優(yōu)化排名