@@ -295,6 +295,27 @@ <h2 class="no-num no-toc" id=contents>Table of contents</h2>
295295
296296 < li class =no-num > < a href ="#acknowledgments "> Acknowledgments</ a >
297297
298+ < li > < a href ="#conformance "> < span class =secno > 9. </ span > Conformance</ a >
299+ < ul class =toc >
300+ < li > < a href ="#conventions "> < span class =secno > 9.1. </ span > Document
301+ conventions</ a >
302+
303+ < li > < a href ="#conformance-classes "> < span class =secno > 9.2. </ span >
304+ Conformance classes</ a >
305+
306+ < li > < a href ="#partial "> < span class =secno > 9.3. </ span > Partial
307+ implementations</ a >
308+
309+ < li > < a href ="#experimental "> < span class =secno > 9.4. </ span > Experimental
310+ implementations</ a >
311+
312+ < li > < a href ="#testing "> < span class =secno > 9.5. </ span > Non-experimental
313+ implementations</ a >
314+
315+ < li > < a href ="#cr-exit-criteria "> < span class =secno > 9.6. </ span > CR exit
316+ criteria</ a >
317+ </ ul >
318+
298319 < li class =no-num > < a href ="#references "> References</ a >
299320 < ul class =toc >
300321 < li class =no-num > < a href ="#normative-references "> Normative
@@ -605,10 +626,6 @@ <h3 id=identifiers><span class=secno>3.2. </span> User-defined Identifiers:
605626 class =css >EXAMPLE</ code > ’ are two different, unrelated user-defined
606627 identifiers).
607628
608- < p class =issue > What should be the minimum required size for identifiers?
609- (This depends on the encoding, which means a character may take up to 6
610- bytes in utf-8.)
611-
612629 < h3 id =strings > < span class =secno > 3.3. </ span > Quoted Strings: the ‘< a
613630 href ="#string-value "> < code class =css > <string></ code > </ a > ’ type</ h3 >
614631
@@ -650,10 +667,6 @@ <h3 id=strings><span class=secno>3.3. </span> Quoted Strings: the ‘<a
650667 character in Unicode (U+000A), but represents the generic notion of
651668 "newline" in CSS.)
652669
653- < p class =issue > What should be the minimum required size for strings? (This
654- depends on the encoding, which means a character may take up to 6 bytes in
655- utf-8.)
656-
657670 < h3 id =urls > < span class =secno > 3.4. </ span > Resource Locators: the ‘< a
658671 href ="#url-value "> < code class =css > <url></ code > </ a > ’ type</ h3 >
659672
@@ -726,10 +739,6 @@ <h3 id=urls><span class=secno>3.4. </span> Resource Locators: the ‘<a
726739 document containing the < code > <body> </ code > .
727740 </ div >
728741
729- < p class =issue > What should be the minimum required size for urls? (This
730- depends on the encoding, which means a character may take up to 6 bytes in
731- utf-8.)
732-
733742 < h2 id =numeric-types > < span class =secno > 4. </ span > Numeric Data Types</ h2 >
734743
735744 < h3 id =integers > < span class =secno > 4.1. </ span > Integers: the ‘< a
@@ -819,9 +828,6 @@ <h2 id=lengths><span class=secno>5. </span> Distance Units: the ‘<a
819828 < a href ="#CSS21 " rel =biblioentry > [CSS21]<!--{{!CSS21}}--> </ a > Like
820829 keywords, unit identifiers are case-insensitive within the ASCII range.
821830
822- < p class =issue > We need a minimum required range/precision for dimensions as
823- well. What should it be?
824-
825831 < p > Properties may restrict the length value to some range. If the value is
826832 outside the allowed range, the declaration is invalid and must be < a
827833 href ="http://www.w3.org/TR/CSS21/conform.html#ignore "> ignored</ a > .
@@ -1802,6 +1808,177 @@ <h2 class=no-num id=acknowledgments>Acknowledgments</h2>
18021808 Boris Zbarsky, Björn Höhrmann and Michael Day improved this
18031809 module.
18041810
1811+ < h2 id =conformance > < span class =secno > 9. </ span > Conformance</ h2 >
1812+
1813+ < h3 id =conventions > < span class =secno > 9.1. </ span > Document conventions</ h3 >
1814+
1815+ < p > Conformance requirements are expressed with a combination of descriptive
1816+ assertions and RFC 2119 terminology. The key words “MUST”, “MUST
1817+ NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”,
1818+ “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in the
1819+ normative parts of this document are to be interpreted as described in RFC
1820+ 2119. However, for readability, these words do not appear in all uppercase
1821+ letters in this specification.
1822+
1823+ < p > All of the text of this specification is normative except sections
1824+ explicitly marked as non-normative, examples, and notes. < a
1825+ href ="#RFC2119 " rel =biblioentry > [RFC2119]<!--{{!RFC2119}}--> </ a >
1826+
1827+ < p > Examples in this specification are introduced with the words “for
1828+ example” or are set apart from the normative text with
1829+ < code > class="example"</ code > , like this:
1830+
1831+ < div class =example >
1832+ < p > This is an example of an informative example.</ p >
1833+ </ div >
1834+
1835+ < p > Informative notes begin with the word “Note” and are set apart from
1836+ the normative text with < code > class="note"</ code > , like this:
1837+
1838+ < p class =note > Note, this is an informative note.
1839+
1840+ < h3 id =conformance-classes > < span class =secno > 9.2. </ span > Conformance
1841+ classes</ h3 >
1842+
1843+ < p > Conformance to CSS Values and Units Level 3 is defined for three
1844+ conformance classes:
1845+
1846+ < dl >
1847+ < dt > < dfn id =style-sheet title ="style sheet!!as conformance class "> style
1848+ sheet</ dfn >
1849+
1850+ < dd > A < a href ="http://www.w3.org/TR/CSS21/conform.html#style-sheet "> CSS
1851+ style sheet</ a > .
1852+
1853+ < dt > < dfn id =renderer > renderer</ dfn >
1854+
1855+ < dd > A < a href ="http://www.w3.org/TR/CSS21/conform.html#user-agent "> UA</ a >
1856+ that interprets the semantics of a style sheet and renders documents that
1857+ use them.
1858+
1859+ < dt > < dfn id =authoring-tool > authoring tool</ dfn >
1860+
1861+ < dd > A < a href ="http://www.w3.org/TR/CSS21/conform.html#user-agent "> UA</ a >
1862+ that writes a style sheet.
1863+ </ dl >
1864+
1865+ < p > A style sheet is conformant to CSS Values and Units Level 3 if all of
1866+ its statements that use syntax defined in this module are valid according
1867+ to the generic CSS grammar and the individual grammars of each feature
1868+ defined in this module.
1869+
1870+ < p > A renderer is conformant to CSS Values and Units Level 3 if, in addition
1871+ to interpreting the style sheet as defined by the appropriate
1872+ specifications, it supports all the features defined CSS Values and Units
1873+ Level 3 by parsing them correctly and rendering the document accordingly.
1874+ However, the inability of a UA to correctly render a document due to
1875+ limitations of the device does not make the UA non-conformant. (For
1876+ example, a UA is not required to render color on a monochrome monitor.)
1877+
1878+ < p > An authoring tool is conformant to CSS Values and Units Level 3 if it
1879+ writes style sheets that are syntactically correct according to the
1880+ generic CSS grammar and the individual grammars of each feature in this
1881+ module, and meet all other conformance requirements of style sheets as
1882+ described in this module.
1883+
1884+ < h3 id =partial > < span class =secno > 9.3. </ span > Partial implementations</ h3 >
1885+
1886+ < p > So that authors can exploit the forward-compatible parsing rules to
1887+ assign fallback values, CSS renderers < strong > must</ strong > treat as
1888+ invalid (and < a
1889+ href ="http://www.w3.org/TR/CSS21/conform.html#ignore "> ignore as
1890+ appropriate</ a > ) any at-rules, properties, property values, keywords, and
1891+ other syntactic constructs for which they have no usable level of support.
1892+ In particular, user agents < strong > must not</ strong > selectively ignore
1893+ unsupported component values and honor supported values in a single
1894+ multi-value property declaration: if any value is considered invalid (as
1895+ unsupported values must be), CSS requires that the entire declaration be
1896+ ignored.
1897+
1898+ < h3 id =experimental > < span class =secno > 9.4. </ span > Experimental
1899+ implementations</ h3 >
1900+
1901+ < p > To avoid clashes with future CSS features, the CSS2.1 specification
1902+ reserves a < a
1903+ href ="http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords "> prefixed
1904+ syntax</ a > for proprietary and experimental extensions to CSS.
1905+
1906+ < p > Prior to a specification reaching the Candidate Recommendation stage in
1907+ the W3C process, all implementations of a CSS feature are considered
1908+ experimental. The CSS Working Group recommends that implementations use a
1909+ vendor-prefixed syntax for such features, including those in W3C Working
1910+ Drafts. This avoids incompatibilities with future changes in the draft.
1911+
1912+ < h3 id =testing > < span class =secno > 9.5. </ span > Non-experimental
1913+ implementations</ h3 >
1914+
1915+ < p > Once a specification reaches the Candidate Recommendation stage,
1916+ non-experimental implementations are possible, and implementors should
1917+ release an unprefixed implementation of any CR-level feature they can
1918+ demonstrate to be correctly implemented according to spec.
1919+
1920+ < p > To establish and maintain the interoperability of CSS across
1921+ implementations, the CSS Working Group requests that non-experimental CSS
1922+ renderers submit an implementation report (and, if necessary, the
1923+ testcases used for that implementation report) to the W3C before releasing
1924+ an unprefixed implementation of any CSS features. Testcases submitted to
1925+ W3C are subject to review and correction by the CSS Working Group.
1926+
1927+ < p > Further information on submitting testcases and implementation reports
1928+ can be found from on the CSS Working Group's website at < a
1929+ href ="http://www.w3.org/Style/CSS/Test/ "> http://www.w3.org/Style/CSS/Test/</ a > .
1930+ Questions should be directed to the < a
1931+ href ="http://lists.w3.org/Archives/Public/public-css-testsuite "> public-css-testsuite@w3.org</ a >
1932+ mailing list.
1933+
1934+ < h3 id =cr-exit-criteria > < span class =secno > 9.6. </ span > CR exit criteria</ h3 >
1935+
1936+ < p > For this specification to be advanced to Proposed Recommendation, there
1937+ must be at least two independent, interoperable implementations of each
1938+ feature. Each feature may be implemented by a different set of products,
1939+ there is no requirement that all features be implemented by a single
1940+ product. For the purposes of this criterion, we define the following
1941+ terms:
1942+
1943+ < dl >
1944+ < dt > independent
1945+
8D6D
1946+ < dd > each implementation must be developed by a different party and cannot
1947+ share, reuse, or derive from code used by another qualifying
1948+ implementation. Sections of code that have no bearing on the
1949+ implementation of this specification are exempt from this requirement.
1950+
1951+ < dt > interoperable
1952+
1953+ < dd > passing the respective test case(s) in the official CSS test suite,
1954+ or, if the implementation is not a Web browser, an equivalent test. Every
1955+ relevant test in the test suite should have an equivalent test created if
1956+ such a user agent (UA) is to be used to claim interoperability. In
1957+ addition if such a UA is to be used to claim interoperability, then there
1958+ must one or more additional UAs which can also pass those equivalent
1959+ tests in the same way for the purpose of interoperability. The equivalent
1960+ tests must be made publicly available for the purposes of peer review.
1961+
1962+ < dt > implementation
1963+
1964+ < dd > a user agent which:
1965+ < ol class =inline >
1966+ < li > implements the specification.
1967+
1968+ < li > is available to the general public. The implementation may be a
1969+ shipping product or other publicly available version (i.e., beta
1970+ version, preview release, or “nightly build”). Non-shipping product
1971+ releases must have implemented the feature(s) for a period of at least
1972+ one month in order to demonstrate stability.
1973+
1974+ < li > is not experimental (i.e., a version specifically designed to pass
1975+ the test suite and is not intended for normal usage going forward).
1976+ </ ol >
1977+ </ dl >
1978+
1979+ < p > The specification will remain Candidate Recommendation for at least six
1980+ months.
1981+
18051982 < h2 class =no-num id =references > References</ h2 >
18061983
18071984 < h3 class =no-num id =normative-references > Normative references</ h3 >
@@ -1860,6 +2037,15 @@ <h3 class=no-num id=normative-references>Normative references</h3>
18602037 href ="http://www.w3.org/TR/2011/REC-css3-namespace-20110929/ "> http://www.w3.org/TR/2011/REC-css3-namespace-20110929/</ a >
18612038 </ dd >
18622039 <!---->
2040+
2041+ < dt id =RFC2119 > [RFC2119]
2042<
23C
code class="diff-text syntax-highlighted-line addition">+
2043+ < dd > S. Bradner. < a href ="http://www.ietf.org/rfc/rfc2119.txt "> < cite > Key
2044+ words for use in RFCs to Indicate Requirement Levels.</ cite > </ a > Internet
2045+ RFC 2119. URL: < a
2046+ href ="http://www.ietf.org/rfc/rfc2119.txt "> http://www.ietf.org/rfc/rfc2119.txt</ a >
2047+ </ dd >
2048+ <!---->
18632049 </ dl >
18642050 <!--end-normative-->
18652051
@@ -1916,6 +2102,9 @@ <h2 class=no-num id=index>Index</h2>
19162102 < li > attr(), < a href ="#attr-value " title ="attr() "> < strong > 8.3.</ strong > </ a >
19172103
19182104
2105+ < li > authoring tool, < a href ="#authoring-tool "
2106+ title ="authoring tool "> < strong > 9.2.</ strong > </ a >
2107+
19192108 < li > calc(), < a href ="#calc0 " title ="calc() "> < strong > 8.1.</ strong > </ a >
19202109
19212110 < li > ch, < a href ="#ch-unit " title =ch > < strong > 5.1.1.</ strong > </ a >
@@ -2005,6 +2194,9 @@ <h2 class=no-num id=index>Index</h2>
20052194
20062195 < li > rem, < a href ="#rem-unit " title =rem > < strong > 5.1.1.</ strong > </ a >
20072196
2197+ < li > renderer, < a href ="#renderer " title =renderer > < strong > 9.2.</ strong > </ a >
2198+
2199+
20082200 < li > <resolution> , < a href ="#resolution-value "
20092201 title ="<resolution> "> < strong > 6.4.</ strong > </ a >
20102202
@@ -2016,6 +2208,12 @@ <h2 class=no-num id=index>Index</h2>
20162208 < li > < a href ="#string-value "> < code > <string></ code > </ a > , < a
20172209 href ="#string-value " title ="<string> "> < strong > 3.3.</ strong > </ a >
20182210
2211+ < li > style sheet
2212+ < ul >
2213+ < li > as conformance class, < a href ="#style-sheet "
2214+ title ="style sheet, as conformance class "> < strong > 9.2.</ strong > </ a >
2215+ </ ul >
2216+
20192217 < li > <time>, < a href ="#time-value "
20202218 title ="<time> "> < strong > 6.2.</ strong > </ a >
20212219
0 commit comments