Mon, 06 Aug 2012 18:06:02 -0700
Add another example.
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5 <title>CSS Region Styling Module Level 3</title>
6 <link rel=contents href="#contents">
7 <link rel=index href="#index">
8 <link rel="stylesheet" type="text/css" href="../default.css">
9 <link rel="stylesheet" type="text/css"
10 href="http://www.w3.org/StyleSheets/TR/W3C-[STATUS].css">
11 <style>
12 table.source-demo-pair {
13 width: 100%;
14 }
15 .in-cards-demo {
16 width: 13em;
17 height: 8em;
19 padding: 4px;
20 border: medium solid blue;
21 margin: 6px;
23 font: medium/1.3 Times New Roman, Times, serif;
24 white-space: nowrap;
25 }
26 .bouncy-columns-demo {
27 width: 6em;
28 height: 10em;
29 float: left;
30 margin: 1em;
31 font: medium/1.25 Times New Roman, Times, serif;
32 white-space: nowrap;
33 }
34 .bouncy-columns-demo.one {
35 background: aqua; color: black;
36 transform: rotate(-3deg);
37 }
38 .bouncy-columns-demo.two {
39 background: yellow; color: black;
40 transform: rotate(3deg);
41 }
42 </style>
43 </head>
45 <div class="head">
46 <!--logo-->
48 <h1>CSS Region Styling Module Level 3</h1>
50 <h2 class="no-num no-toc">[LONGSTATUS] [DATE]</h2>
51 <dl>
52 <dt>This version:
53 <dd><a href="[VERSION]">http://www.w3.org/TR/[YEAR]/ED-css3-region-styling-[CDATE]/</a>
55 <dt>Latest version:
56 <dd><a href="http://www.w3.org/TR/[SHORTNAME]/">http://www.w3.org/TR/[SHORTNAME]/</a>
58 <dt>Editor's draft:
59 <dd><a href="http://dev.w3.org/csswg/[SHORTNAME]/">http://dev.w3.org/csswg/[SHORTNAME]/</a>
61 <!--
62 <dt>Previous version:
63 <dd><a href="http://www.w3.org/PreviousVersionURI">
64 http://www.w3.org/PreviousVersionURI</a>
65 -->
67 <dt>Issue Tracking:</dt>
68 <dd>Maintained in document (only editor's draft is current)
70 <dt>Feedback:</dt>
71 <dd><a href="http://lists.w3.org/Archives/Public/www-style/">www-style@w3.org</a> with subject line “<kbd>[[SHORTNAME]] <var>… message topic …</var></kbd>”
73 <dt>Editors:
74 <dd class="h-card vcard">
75 <a class="p-name fn u-url url" rel="author"
76 href="http://dbaron.org/">L. David Baron</a>,
77 <a class="p-org org" href="http://www.mozilla.org/">Mozilla</a>
78 </dl>
80 <!--copyright-->
82 <hr title="Separator for header">
83 </div>
85 <h2 class="no-num no-toc" id="abstract">Abstract</h2>
87 <p>
88 <a href="http://www.w3.org/TR/CSS/">CSS</a> is
89 a language for describing
90 the rendering of structured documents (such as HTML and XML)
91 on screen, on paper, in speech, etc.
92 This module contains the features of CSS
93 relating to new mechanisms of overflow handling in visual media (e.g., screen or paper).
94 In interactive media,
95 it describes features that allow the overflow
96 from a fixed size container
97 to be handled by pagination (displaying one page at a time).
98 It also describes features, applying to all visual media,
99 that allow the contents of an element
100 to be spread across multiple containers,
101 allowing the contents to flow across multiple regions of a page
102 or to have different styles for different parts.
103 </p>
105 <h2 class="no-num no-toc" id="status">Status of this document</h2>
107 <!--status-->
109 <p>The following features are at risk: …
111 <h2 class="no-num no-toc" id="contents">
112 Table of contents</h2>
114 <!--toc-->
116 <h2 id="intro">
117 Introduction</h2>
119 <p>
120 In CSS Level 1 [[CSS1]], placing more content than would fit
121 inside an element with a specified size
122 was generally an authoring error.
123 Doing so caused the content to extend
124 outside the bounds of the element,
125 which would likely cause
126 that content to overlap with other elements.
127 </p>
129 <p>
130 CSS Level 2 [[CSS21]] introduced the 'overflow' property,
131 which allows authors to have overflow be handled by scrolling,
132 which means it is no longer an authoring error.
133 It also allows authors to specify
134 that overflow is handled by clipping,
135 which makes sense when the author's intent
136 is that the content not be shown.
137 </p>
139 <p>
140 However, scrolling is not the only way
141 to present large amounts of content,
142 and may even not be the optimal way.
143 After all, the codex replaced the scroll
144 as the common format for large written works
145 because of its advantages.
146 </p>
148 <p>
149 This specification introduces
150 a mechanism for Web pages to specify
151 that a region of a page should handle overflow
152 through pagination rather than through scrolling.
153 </p>
155 <p>
156 This specification also extends the concept of overflow
157 in another direction.
158 Instead of requiring that authors specify a single region
159 into which the content of an element must flow,
160 this specification allows authors to specify multiple regions,
161 each with their own dimensions and styles,
162 so that the content of the element can flow from one to the next,
163 using as many as needed to place the content without overflowing.
164 </p>
166 <p>
167 In both of these cases, implementations must
168 break the content in the block-progression dimension.
169 Implementations must do this is described
170 in the CSS Fragmentation Module [[!CSS3-BREAK]].
171 </p>
174 <h2 id="paginated-overflow">Paginated overflow</h2>
176 <p class="issue">overflow:paginate or overflow:pages (or paged-x, paged-y, paged-x-controls, paged-y-controls as css3-gcpm has?)</p>
178 <p class="issue">Ability to display N pages at once
179 rather than just one page at once?</p>
181 <h2 id="region-overflow">Region overflow</h2>
183 <p>
184 This section introduces and defines the meaning of
185 the new ''regions'' (<span class="issue">or ''repeat''?</span>)
186 value of the 'overflow' property.
187 </p>
189 <p>
190 When the computed value of 'overflow' for an element is ''regions'',
191 and implementations would otherwise have created a box for the element,
192 then implementations must create at least one box for that element.
193 Each box created for the element is called a <dfn>region box</dfn>
194 for that element.
195 (If an element with ''overflow: regions'' generates only one box,
196 that box is a <i>region box</i>.
197 However, if an element's computed 'overflow' is not ''regions'',
198 then its box is not a <i>region box</i>.)
199 Every <i>region box</i> is a fragmentation container,
200 and for each <i>region box</i> which ends with a fragmentation break,
201 (which could happen
202 because breakable content overflows in the block dimension
203 or because of a forced break),
204 there must be another <i>region box</i> created as a next sibling
205 of the previous one.
206 <span class="issue">Or is it as though it's a next sibling of
207 the element? Need to figure out exactly how this interacts with
208 other box-level fixup.</span>
209 (Breakable content might overflow in the box dimension either
210 because of a specified size on the region box
211 or because the region box is within a fragmentation context
212 in which it is being broken.
213 In other words, a single region box is never broken
214 across columns or pages;
215 the pieces that are in separate columns or pages
216 are always distinct region boxes.)
217 </p>
219 <p class="issue">
220 We also want ''::nth-region()'' pseudo-elements
221 to be able to apply to the pieces of an element
222 split within a fragmentation context.
223 Should we require that authors who want to use
224 ''::nth-region()'' in this way specify ''overflow:regions''
225 (even if they don't specify a constrained height),
226 or should it work automatically for all elements
227 even if they don't have ''overflow: regions''?
228 </p>
230 <div class="example">
231 <table class="source-demo-pair"><tr><td><pre><!DOCTYPE HTML>
232 <title>Breaking content into
233 equal-sized cards</title>
234 <style>
235 .in-cards {
236 overflow: regions;
238 width: 13em;
239 height: 8em;
241 padding: 4px;
242 border: medium solid blue;
243 margin: 6px;
245 font: medium/1.3 Times New
246 Roman, Times, serif;
247 }
248 </style>
249 <div class="in-cards">
250 In this example, the text in the div
251 is broken into a series of cards.
252 These cards all have the same style.
253 The presence of enough content to
254 overflow one of the cards causes
255 another one to be created. The second
256 card is created just like it's the
257 next sibling of the first.
258 </div></pre></td><td>
259 <div class="in-cards-demo">In this example, the text in the<br>div is broken into a series of<br>cards. These cards all have the<br>same style. The presence of<br>enough content to overflow<br>one of the cards causes another</div>
260 <div class="in-cards-demo">one to be created. The second<br>card is created just like it's the<br>next sibling of the first.</div>
261 </td></tr></table>
262 </div>
264 <h3 id="region-styling">Region styling</h3>
266 <h4 id="region-pseudo-element">The ::nth-region() pseudo-element</h4>
268 <p>
269 The ::nth-region() pseudo-element is a pseudo-element
270 that describes some of the region boxes generated by an element.
271 The argument to the pseudo-element takes the same syntax
272 as the argument to the :nth-child() pseudo-class
273 defined in [[!SELECT]], and has the same meaning
274 except that the number is relative to
275 <i>region boxes</i> generated by the element
276 instead of siblings of the element.
277 </p>
279 <p class="issue">
280 If we go with a name for the 'overflow' value other than
281 ''overflow: regions'',
282 then we should probably rename this pseudo-element,
283 perhaps to ::nth-piece(), ::nth-part(), or ::nth-instance().
284 </p>
286 <p class="note">
287 Selectors that allow addressing regions
288 by counting from the end rather than the start
289 are intentionally not provided.
290 Such selectors would interfere with determining
291 the number of regions.
292 </p>
294 <h4 id="style-of-regions">Styling of regions</h4>
296 <p class="issue">
297 Should this apply to region overflow only,
298 or also to paginated overflow?
299 (If it applies,
300 then stricter property restrictions would be needed
301 for paginated overflow.)
302 </p>
304 <p>
305 In the absence of rules with ''::nth-region()'' pseudo-elements,
306 the computed style for each <i>region box</i>
307 is the computed style for the element
308 for which the <i>region box</i> was created.
309 However, the style for a <i>region box</i> is also influenced
310 by rules whose selector's <i>subject</i> [[!SELECT]]
311 has an ''::nth-region()'' pseudo-element,
312 if the 1-based number of the region box matches
313 that ''::nth-region()'' pseudo-element
314 and the selector (excluding the ''::nth-region()'' pseudo-element)
315 matches the element generating the regions.
316 </p>
318 <div class="example">
319 <table class="source-demo-pair"><tr><td><pre><!DOCTYPE HTML>
320 <style>
321 .bouncy-columns {
322 overflow: regions;
323 width: 6em;
324 height: 10em;
325 float: left;
326 margin: 1em;
327 font: medium/1.25 Times New
328 Roman, Times, serif;
329 }
330 .bouncy-columns::nth-region(1) {
331 background: aqua; color: black;
332 transform: rotate(-3deg);
333 }
334 .bouncy-columns::nth-region(2) {
335 background: yellow; color: black;
336 transform: rotate(3deg);
337 }
338 </style>
339 <div class="bouncy-columns">
340 <i>...</i>
341 </div></pre></td><td>
342 <div class="bouncy-columns-demo one">In this<br>example, the<br>text in the div<br>is broken into<br>a series of<br>columns. The<br>author<br>probably</div>
343 <div class="bouncy-columns-demo two">intended the<br>text to fill two<br>columns. But<br>if it happens to<br>fill three<br>columns, the<br>third column is<br>still created. It</div>
344 <div class="bouncy-columns-demo">just doesn't<br>have any<br>region-specific<br>styling because<br>the author<br>didn't give it<br>any.</div>
345 </td></tr></table>
346 </div>
348 <p>
349 Styling an ''::nth-region()'' pseudo-element with the 'overflow'
350 property has no effect;
351 the computed value of 'overflow' for the region box
352 remains the same as the computed value of overflow for the element.
353 </p>
355 <p>
356 Specifying ''display: none'' for a region box causes
357 the region box with that index not to be generated.
358 However, in terms of the indices
359 used for matching ''::nth-region()'' pseudo-elements
360 of later region boxes,
361 it still counts as though it was generated.
362 However, since it is not generated, it does not contain any content.
363 </p>
365 <p class="issue">
366 Would it make more sense to forbid ''display:none''?
367 Or perhaps to forbid 'display', 'position', 'float',
368 and similar (in addition to 'overflow')?
369 </p>
371 <p>
372 To match the model for other pseudo-elements
373 where the pseudo-elements live inside their corresponding element,
374 declarations in ''::nth-region()'' pseudo-elements override
375 declarations in rules without the pseudo-element.
376 The relative priority within such declarations is determined
377 by normal cascading order (see [[!CSS21]]).
378 </p>
380 <p>
381 Styles specified on ''::nth-region()'' pseudo-elements
382 do affect inheritance to content within the <i>region box</i>.
383 In other words, the content within the <i>region box</i> must
384 inherit from the region box's style (i.e., the pseudo-element style)
385 rather than directly from the element.
386 This means that elements split between region boxes may
387 have different styles for different parts of the element.
388 </p>
390 <p class="issue">
391 This inheritance rule allows specifying styles indirectly
392 (by using explicit ''inherit'' or using default inheritance
393 on properties that don't apply to '':first-letter'')
394 that can't be specified directly
395 (based on the rules in the next section).
396 This is a problem.
397 The restrictions that apply to styling inside regions
398 should also apply to inheritance from regions.
399 </p>
401 <h4 id="style-in-regions">Styling inside regions</h4>
403 <p class="issue">
404 Should this apply to region overflow only,
405 or also to paginated overflow,
406 or even to pagination across pages?
407 </p>
409 <p>
410 The ''::nth-region()'' pseudo-element
411 can also be used to style
412 content inside of a <i>region box</i>.
413 Unlike the ''::first-line'' and ''::first-letter'' pseudo-elements,
414 the ''::nth-region()'' pseudo-element can be applied
415 to parts of the selector other than the subject:
416 in particular, it can match ancestors of the subject.
417 However, the only CSS properties applied
418 by rules with such selectors
419 are those that apply
420 to the ''::first-letter'' pseudo-element.
421 </p>
423 <p>
424 To be more precise,
425 when a rule's selector has ''::nth-region()'' pseudo-elements
426 attached to parts of the selector other than the subject,
427 the declarations in that rule apply to
428 a fragment (or pseudo-element thereof) when:
429 </p>
430 <ol>
431 <li>
432 the declarations are for properties that apply to the
433 ''::first-letter'' pseudo-element,
434 </li>
435 <li>
436 the declarations would apply to
437 that fragment (or pseudo-element thereof)
438 had those ''::nth-region()'' pseudo-elements been removed,
439 with a particular association between
440 each sequence of simple selectors and the element it matched,
441 and
442 </li>
443 <li>
444 for each removed ''::nth-region()'' pseudo-element,
445 the fragment lives within a <i>region box</i>
446 of the element associated in that association
447 with the selector that the pseudo-element was attached to,
448 and whose index matches the pseudo-element.
449 </li>
450 </ol>
452 <h3 id="max-lines">The 'max-lines' property</h3>
454 <p>
455 Authors may wish to style the opening lines of an element
456 with different styles
457 by putting those opening lines in a separate region.
458 However, since it may be difficult to predict the exact height
459 occupied by those lines
460 in order to restrict the first region to that height,
461 this specification introduces a 'max-lines' property
462 that forces a region to break
463 after a specified number of lines.
464 This forces a break after the given number of lines
465 contained within the element or its descendants,
466 as long as those lines are in the same block formatting context.
467 </p>
469 <table class=propdef>
470 <tr>
471 <th>Name:
472 <td><dfn>max-lines</dfn>
473 <tr>
474 <th><a href="#values">Value</a>:
475 <td>none | <integer>
476 <tr>
477 <th>Initial:
478 <td>none
479 <tr>
480 <th>Applies to:
481 <td>region boxes
482 <tr>
483 <th>Inherited:
484 <td>no
485 <tr>
486 <th>Percentages:
487 <td>N/A
488 <tr>
489 <th>Media:
490 <td>visual
491 <tr>
492 <th>Computed value:
493 <td>specified value
494 <tr>
495 <th>Animatable:
496 <td>as <a href="http://www.w3.org/TR/css3-transitions/#animatable-types">integer</a>
497 <tr>
498 <th>Canonical order:
499 <td><abbr title="follows order of property value definition">per grammar</abbr>
500 </table>
502 <dl>
503 <dt>none
504 <dd>
505 <p>
506 Breaks occur only as specified elsewhere.
507 </p>
508 </dd>
510 <dt><integer>
511 <dd>
512 <p>
513 In addition to any breaks specified elsewhere,
514 a break is forced before any line that would exceed
515 the given number of lines
516 being placed inside the element
517 (excluding lines that are in
518 a different block formatting context from
519 the block formatting context to which
520 an unstyled child of the element would belong).
521 </p>
523 <p class="issue">
524 If there are multiple boundaries between this line
525 and the previous, where exactly (in terms of element
526 boundaries) is the break forced?
527 </p>
529 <p>
530 Only positive integers are accepted.
531 Zero or negative integers are a parse error.
532 </p>
533 </dd>
534 </dl>
536 <p class="issue">Should this apply to regions overflow only, or also
537 to pagination?</p>
539 <h2 id="conformance">
540 Conformance</h2>
542 <h3 id="placement">
543 Module interactions</h3>
545 <p>This module extends the 'overflow'
546 feature defined in [[CSS21]] section 11.1.1. It defines additional
547 overflow handling mechanisms that implementations must implement as
548 described in this module in order to conform to this module.</p>
550 <p>No properties in this module apply to the <code>::first-line</code> or
551 <code>::first-letter</code> pseudo-elements.</p>
553 <h3 id="values">
554 Values</h3>
556 <p>This specification follows the
557 <a href="http://www.w3.org/TR/CSS21/about.html#property-defs">CSS property
558 definition conventions</a> from [[!CSS21]]. Value types not defined in
559 this specification are defined in CSS Level 2 Revision 1 [[!CSS21]].
560 Other CSS modules may expand the definitions of these value types: for
561 example [[CSS3COLOR]], when combined with this module, expands the
562 definition of the <color> value type as used in this specification.</p>
564 <p>In addition to the property-specific values listed in their definitions,
565 all properties defined in this specification also accept the
566 <a href="http://www.w3.org/TR/CSS21/cascade.html#value-def-inherit">inherit</a>
567 keyword as their property value. For readability it has not been repeated
568 explicitly.
571 <h3 id="conventions">
572 Document conventions</h3>
574 <p>Conformance requirements are expressed with a combination of
575 descriptive assertions and RFC 2119 terminology. The key words “MUST”,
576 “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”,
577 “RECOMMENDED”, “MAY”, and “OPTIONAL” in the normative parts of this
578 document are to be interpreted as described in RFC 2119.
579 However, for readability, these words do not appear in all uppercase
580 letters in this specification.
582 <p>All of the text of this specification is normative except sections
583 explicitly marked as non-normative, examples, and notes. [[!RFC2119]]</p>
585 <p>Examples in this specification are introduced with the words “for example”
586 or are set apart from the normative text with <code>class="example"</code>,
587 like this:
589 <div class="example">
590 <p>This is an example of an informative example.</p>
591 </div>
593 <p>Informative notes begin with the word “Note” and are set apart from the
594 normative text with <code>class="note"</code>, like this:
596 <p class="note">Note, this is an informative note.</p>
598 <h3 id="conformance-classes">
599 Conformance classes</h3>
601 <p>Conformance to CSS Region Styling Module Level 3
602 is defined for three conformance classes:
603 <dl>
604 <dt><dfn title="style sheet!!as conformance class">style sheet</dfn>
605 <dd>A <a href="http://www.w3.org/TR/CSS21/conform.html#style-sheet">CSS
606 style sheet</a>.
607 <dt><dfn>renderer</dfn></dt>
608 <dd>A <a href="http://www.w3.org/TR/CSS21/conform.html#user-agent">UA</a>
609 that interprets the semantics of a style sheet and renders
610 documents that use them.
611 <dt><dfn id="authoring-tool">authoring tool</dfn></dt>
612 <dd>A <a href="http://www.w3.org/TR/CSS21/conform.html#user-agent">UA</a>
613 that writes a style sheet.
614 </dl>
616 <p>A style sheet is conformant to CSS Region Styling Module Level 3
617 if all of its statements that use syntax defined in this module are valid
618 according to the generic CSS grammar and the individual grammars of each
619 feature defined in this module.
621 <p>A renderer is conformant to CSS Region Styling Module Level 3
622 if, in addition to interpreting the style sheet as defined by the
623 appropriate specifications, it supports all the features defined
624 by CSS Region Styling Module Level 3 by parsing them correctly
625 and rendering the document accordingly. However, the inability of a
626 UA to correctly render a document due to limitations of the device
627 does not make the UA non-conformant. (For example, a UA is not
628 required to render color on a monochrome monitor.)
630 <p>An authoring tool is conformant to CSS Region Styling Module Level 3
631 if it writes style sheets that are syntactically correct according to the
632 generic CSS grammar and the individual grammars of each feature in
633 this module, and meet all other conformance requirements of style sheets
634 as described in this module.
636 <h3 id="partial">
637 Partial implementations</h3>
639 <p>So that authors can exploit the forward-compatible parsing rules to
640 assign fallback values, CSS renderers <strong>must</strong>
641 treat as invalid (and <a href="http://www.w3.org/TR/CSS21/conform.html#ignore">ignore
642 as appropriate</a>) any at-rules, properties, property values, keywords,
643 and other syntactic constructs for which they have no usable level of
644 support. In particular, user agents <strong>must not</strong> selectively
645 ignore unsupported component values and honor supported values in a single
646 multi-value property declaration: if any value is considered invalid
647 (as unsupported values must be), CSS requires that the entire declaration
648 be ignored.</p>
650 <h3 id="experimental">
651 Experimental implementations</h3>
653 <p>To avoid clashes with future CSS features, the CSS2.1 specification
654 reserves a <a href="http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords">prefixed
655 syntax</a> for proprietary and experimental extensions to CSS.
657 <p>Prior to a specification reaching the Candidate Recommendation stage
658 in the W3C process, all implementations of a CSS feature are considered
659 experimental. The CSS Working Group recommends that implementations
660 use a vendor-prefixed syntax for such features, including those in
661 W3C Working Drafts. This avoids incompatibilities with future changes
662 in the draft.
663 </p>
665 <h3 id="testing">
666 Non-experimental implementations</h3>
668 <p>Once a specification reaches the Candidate Recommendation stage,
669 non-experimental implementations are possible, and implementors should
670 release an unprefixed implementation of any CR-level feature they
671 can demonstrate to be correctly implemented according to spec.
673 <p>To establish and maintain the interoperability of CSS across
674 implementations, the CSS Working Group requests that non-experimental
675 CSS renderers submit an implementation report (and, if necessary, the
676 testcases used for that implementation report) to the W3C before
677 releasing an unprefixed implementation of any CSS features. Testcases
678 submitted to W3C are subject to review and correction by the CSS
679 Working Group.
681 <p>Further information on submitting testcases and implementation reports
682 can be found from on the CSS Working Group's website at
683 <a href="http://www.w3.org/Style/CSS/Test/">http://www.w3.org/Style/CSS/Test/</a>.
684 Questions should be directed to the
685 <a href="http://lists.w3.org/Archives/Public/public-css-testsuite">public-css-testsuite@w3.org</a>
686 mailing list.
688 <h3 id="cr-exit-criteria">
689 CR exit criteria</h3>
691 <p class=issue>[Change or remove the following CR exit criteria if
692 the spec is not a module, but, e.g., a Note or a profile. This text was <a
693 href="http://www.w3.org/Style/CSS/Tracker/actions/44"> decided on 2008-06-04.</a>]</p>
695 <p>
696 For this specification to be advanced to Proposed Recommendation,
697 there must be at least two independent, interoperable implementations
698 of each feature. Each feature may be implemented by a different set of
699 products, there is no requirement that all features be implemented by
700 a single product. For the purposes of this criterion, we define the
701 following terms:
703 <dl>
704 <dt>independent <dd>each implementation must be developed by a
705 different party and cannot share, reuse, or derive from code
706 used by another qualifying implementation. Sections of code that
707 have no bearing on the implementation of this specification are
708 exempt from this requirement.
710 <dt>interoperable <dd>passing the respective test case(s) in the
711 official CSS test suite, or, if the implementation is not a Web
712 browser, an equivalent test. Every relevant test in the test
713 suite should have an equivalent test created if such a user
714 agent (UA) is to be used to claim interoperability. In addition
715 if such a UA is to be used to claim interoperability, then there
716 must one or more additional UAs which can also pass those
717 equivalent tests in the same way for the purpose of
718 interoperability. The equivalent tests must be made publicly
719 available for the purposes of peer review.
721 <dt>implementation <dd>a user agent which:
723 <ol class=inline>
724 <li>implements the specification.
726 <li>is available to the general public. The implementation may
727 be a shipping product or other publicly available version
728 (i.e., beta version, preview release, or “nightly build”).
729 Non-shipping product releases must have implemented the
730 feature(s) for a period of at least one month in order to
731 demonstrate stability.
733 <li>is not experimental (i.e., a version specifically designed
734 to pass the test suite and is not intended for normal usage
735 going forward).
736 </ol>
737 </dl>
739 <p>The specification will remain Candidate Recommendation for at least
740 six months.
742 <h2 class=no-num id="acknowledgments">
743 Acknowledgments</h2>
745 <p>
746 Thanks especially to the feedback from
747 Håkon Wium Lie,
748 Florian Rivoal,
749 Alan Stearns,
750 and all the rest of the
751 <a href="http://lists.w3.org/Archives/Public/www-style/">www-style</a> community.
752 </p>
754 <h2 class=no-num id="references">
755 References</h2>
757 <h3 class="no-num" id="normative-references">
758 Normative references</h3>
759 <!--normative-->
761 <h3 class="no-num" id="other-references">
762 Other references</h3>
763 <!--informative-->
765 <h2 class="no-num" id="index">
766 Index</h2>
767 <!--index-->
769 <h2 class="no-num" id="property-index">
770 Property index</h2>
771 <!-- properties -->
773 </body>
774 </html>
775 <!-- Keep this comment at the end of the file
776 Local variables:
777 mode: sgml
778 sgml-declaration:"~/SGML/HTML4.decl"
779 sgml-default-doctype-name:"html"
780 sgml-minimize-attributes:t
781 sgml-nofill-elements:("pre" "style" "br")
782 sgml-live-element-indicator:t
783 sgml-omittag:nil
784 sgml-shorttag:nil
785 sgml-namecase-general:t
786 sgml-general-insert-case:lower
787 sgml-always-quote-attributes:t
788 sgml-indent-step:nil
789 sgml-indent-data:t
790 sgml-parent-document:nil
791 sgml-exposed-tags:nil
792 sgml-local-catalogs:nil
793 sgml-local-ecat-files:nil
794 End:
795 -->