8000 Add conformance section. Drop issues on size/precision limits since A… · xfq/csswg-drafts@3ab7c35 · GitHub
Skip to content

Commit 3ab7c35

Browse files
committed
Add conformance section. Drop issues on size/precision limits since Arron never provided them.
1 parent b254d61 commit 3ab7c35

2 files changed

Lines changed: 382 additions & 23 deletions

File tree

css3-values/Overview.html

Lines changed: 213 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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>&rsquo; 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 &lsquo;<a
613630
href="#string-value"><code class=css>&lt;string&gt;</code></a>&rsquo; type</h3>
614631

@@ -650,10 +667,6 @@ <h3 id=strings><span class=secno>3.3. </span> Quoted Strings: the &lsquo;<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 &lsquo;<a
658671
href="#url-value"><code class=css>&lt;url&gt;</code></a>&rsquo; type</h3>
659672

@@ -726,10 +739,6 @@ <h3 id=urls><span class=secno>3.4. </span> Resource Locators: the &lsquo;<a
726739
document containing the <code>&lt;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 &lsquo;<a
@@ -819,9 +828,6 @@ <h2 id=lengths><span class=secno>5. </span> Distance Units: the &lsquo;<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&ouml;rn H&ouml;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>&lt;resolution>, <a href="#resolution-value"
20092201
title="&lt;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>&lt;string&gt;</code></a>, <a
20172209
href="#string-value" title="&lt;string&gt;"><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>&lt;time&gt;, <a href="#time-value"
20202218
title="&lt;time&gt;"><strong>6.2.</strong></a>
20212219

0 commit comments

Comments
 (0)