csswg/css3-lists Overview.src.html,1.17,1.18

Update of /sources/public/csswg/css3-lists
In directory hutz:/tmp/cvs-serv9528

Modified Files:
	Overview.src.html 
Log Message:
Tiny bit of syntax cleanup in the first part.
Rewrote list-style-type, added the exception counter styles.


Index: Overview.src.html
===================================================================
RCS file: /sources/public/csswg/css3-lists/Overview.src.html,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- Overview.src.html	31 Jan 2011 21:57:33 -0000	1.17
+++ Overview.src.html	3 Feb 2011 00:13:48 -0000	1.18
@@ -130,25 +130,22 @@
 
 <h2>Declaring a List Item</h2>
 
-<p>To declare a list item, the <span class="property">'display'</span>
-property should be set to 'list-item'. This, in addition to generating
-a <span class="css">::marker</span> pseudo-element and enabling the
+<p>To declare a list item, the 'display'
+property should be set to ''list-item''. This, in addition to generating
+a ''::marker'' pseudo-element and enabling the
 properties described below for that element, causes that element to
-increment the list item counter <span class="css">list-item</span>.
+increment the list item counter ''list-item''.
 (This does not affect the specified or computed values of the counter
 properties.)</p>
 
-<p>The <span class="css">list-item</span> counter is a real counter,
-and can be directly affected using the <span
-class="property">'counter-increment'</span> and <span
-class="property">'counter-reset'</span> properties. It can also be
-used in the counter() and counters() function forms.</p>
+<p>The ''list-item'' counter is a real counter,
+and can be directly affected using the 'counter-increment' and ''counter-reset' 
+properties. It can also be used in the ''counter()'' and ''counters()'' functions.</p>
 
-<p class="issue">The CSS3 box module may define other <span
-class="property">'display'</span> values which generate a list
-marker. These should also affect the 'list-item' counter.</p>
+<p class="issue">The CSS3 box module may define other 'display' values which generate a list
+marker. These should also affect the ''list-item'' counter.</p>
 
-<p>Note that this new model makes the <span class="css">marker</span>
+<p>Note that this new model makes the ''marker''
 display type redundant. That display type is therefore obsolete in the
 CSS3 Lists model.</p>
 
@@ -162,10 +159,7 @@
 		<td><dfn>list-style-type</dfn>
 	<tr>
 		<th>Value:
-		<td><b>&lt;glyph></b> | <b>&lt;algorithmic></b> |
-		<b>&lt;numeric></b> | <b>&lt;alphabetic></b> |
-		<b>&lt;symbolic></b> | <b>&lt;non-repeating></b> |
-		normal | none
+		<td><b>&lt;string></b> | <b>&lt;counter-style></b> | none
 	<tr>
 		<th>Initial:
 		<td>disc
@@ -183,135 +177,476 @@
 		<td>specified value
 </table>
 
-<p>This property specifies the default appearance of the list item
+<p>This property specifies the default contents of the list item
 marker if 'list-style-image' has the
 value 'none' or if the image pointed to by the URI cannot be
-displayed. The value 'none' specifies no marker, otherwise there are
-six types of marker: glyphs, algorithmic systems, numeric systems,
-alphabetic systems, symbolic systems, and non-repeating systems. </p>
+displayed. The value 'none' specifies no marker, and a string value uses the 
+given string; otherwise, the value specifies a <b>&lt;counter-style></b> which 
+is used to format the value of the ''list-item'' counter.</p>
 
-<p>Glyphs are single characters, whereas algorithmic, numeric,
-alphabetic, symbolic and non-repeating systems are designed so that
-each item in that style gets a deterministicly different marker. This
-makes lists easier to navigate.</p>
+<dl>
+	<dt><dfn>&lt;string></dfn></dt>
+	<dd>The ''::marker'' pseudoelement must use the provided string as its default
+	contents.</dd>
 
-<p>Most numbering systems have a suffix defined. It is used when
-generating the default content for the marker.</p>
+	<dt><dfn>none</dfn></dt>
+	<dd>The ''::marker'' pseudoelement must have no default contents.  This will 
+	suppress the creation of a marker unless the ''::marker'' has its contents 
+	specified directly through the 'content' property.</dd>
 
-<dl>
-	<dt><dfn>normal</dfn></dt>
-	<dd>Causes the list-style-type of the counter to be used, as declared by the 
-	appropriate ''@counter'' rule. In the context of an ''@counter'' rule, 
-	equivalent to <b>decimal</b>.</dd>
+	<dt>&lt;counter-style></dt>
+	<dd>
+		<p>The ''::marker'' pseudoelement's default contents must be the value of 
+		the ''list-item'' counter, formatted according to the given counter style.  
+		Algorithms for formatting a value according to a counter style are given 
+		later in this spec.</p>
+		<p>The <b>UA style sheet</b> given later in this spec provides a large list
+		of counter style definitions, and authors or users may define their own
+		counter styles as well.</p>
+	</dd>
 </dl>
 
-<p>Other values are defined in the following sections. User agents should follow these algorithms
-unless a more normative source is found.</p>
-
 <!-- ====================================================================== -->
 
-<h3>Glyphs</h3>
+<h2 id=predefined-counters>Predefined Counter Styles</h2>
 
-<p>All markers with the same glyph style should use the same glyph. To
-obtain other glyphs, authors should use the <span
-class="property">'content'</span> property of the <span
-class="css">::marker</span> pseudo-element.</p>
+<p>While authors may define their own counter styles using the ''@counter-style''
+rule defined in this spec, there are many counter styles that CSS already defined
+in previous levels, and many more that can be usefully predefined.  Appendix A
+contains a required UA stylesheet which defines a large number of counter styles 
+using the ''@counter-style'' rule.  A few styles require special handling beyond
+what can be expressed in a stylesheet, though.  Those counter styles are described
+in this section.
 
- <!-- Their exact rendering depends on the user agent. -->
 
-<dl>
-	<dt><dfn>&lt;glyph&gt;</dfn></dt>
-	<dd>box | check | circle | diamond | disc | hyphen | square</dd>
-	<!-- these definitions are stupid. circle and square should both have the same fill type, disc and
-	box should have the opposite fill type. I hate having to be backwards compatible. -->
 
-	<dt><dfn>box</dfn></dt>
-	<dd>A hollow square. (like &#x25A1; U+25A1 WHITE SQUARE, &#x25FB; U+25FB WHITE
-	MEDIUM SQUARE, or &#x25FD; U+25FD WHITE MEDIUM SMALL SQUARE)</dd> <!-- in MacIE (?) -->
+<h3 id=decimal-counters>The ''decimal'' counter style</h3>
 
-	<dt><dfn>check</dfn></dt>
-	<dd>A check mark. On interactive media, it is suggested that the same glyph which is used on the
-	platform to render a checked menu item be used for 'check'. (like &#x2713; U+2713 CHECK MARK)</dd>
-	<!-- UI module -->
+<p>The ''decimal'' counter style is the default fallback counter style for the
+''@counter-style'' rule, and is also used in extraordinary situations like fallback
+loop.  As such, it has to be well-defined at all times, so that a counter can 
+always be formatted regardless of the validity of the defined counter styles.</p>
 
-	<dt><dfn>circle</dfn></dt>
-	<dd>A hollow circle. (like &#x25E6; U+25E6 WHITE BULLET)</dd> <!-- in Mozilla, WinIE, Opera, HTML4 -->
+<p>UAs must not allow the definition of the ''decimal'' counter style given in 
+Appendix A to be overridden.</p>
 
-	<dt><dfn>diamond</dfn></dt>
-	<dd>A filled diamond. On interactive media, it is suggested that the same glyph which is used on
-	the platform next to a selected menu item be used for 'diamond'. On some platforms, this is similar
-	to 'disc'. (like &#x25C6; U+25C6 BLACK DIAMOND or &#x2666; U+2666 BLACK DIAMOND SUIT)</dd> <!-- UI
-	module -->
 
-	<dt><dfn>disc</dfn></dt>
-	<dd>A filled circle. (like &#x2022; U+2022 BULLET)</dd> <!-- in Mozilla, WinIE, Opera, HTML4 -->
 
-	<dt><dfn>hyphen</dfn></dt>
-	<dd>A hyphen bullet. (like &#x2043; U+2043 HYPHEN BULLET or &#x2013; U+2013 EN DASH)</dd>
+<h3 id=glyph-counters>Glyphs</h3>
 
-	<dt><dfn>square</dfn></dt>
-	<dd>A filled square. (like &#x25A0; U+25A0 BLACK SQUARE, &#x25FC; U+25FC BLACK 
-	MEDIUM SQUARE, or &#x25FE; U+25FE BLACK MEDIUM SMALL SQUARE)</dd> 
-	<!-- in Mozilla, WinIE. A hollow square in Opera, HTML4. -->
+<p>CSS 2.1 defined three single-glyph counter styles (''circle'', ''disc'', and 
+''square''), but didn't define precisely how to render them, instead opting to
+describe generally how they should look and leaving it up to the UA to decide how
+to render the markers.</p>
+
+<p>Appendix A gives normative definitions for these styles, but UAs may instead 
+default to rendering these styles using a browser-generated image matching the
+description below.  If the styles are overridden, the new style must be honored; 
+this relaxation of the rendering requirements applies only to the default value 
+of each counter style.</p>
+
+<p>If the UA chooses to use an image for the default rendering of these counter 
+styles, the image must be scalable and designed to attractively fill a box 1em
+wide and 1em tall.</p>
+
+<dl>
+	<dt>circle</dt>
+	<dd>A hollow circle, similar to ◦ U+25E6 WHITE BULLET.</dd>
+
+	<dt>disc</dt>
+	<dd>A filled circle, similar to • U+2022 BULLET.</dd>
+
+	<dt>square</dt>
+	<dd>A filled square, similar to ■ U+25A0 BLACK SQUARE.</dd>
 </dl>
 
-<div class="issue">
-	<p>The definitions above may be removed and made UA-dependent if it is found that
-	there are discrepancies in the existing implementations.</p>
 
-	<p>We could add more values, there are certainly plenty to choose from
-	in UNICODE. How about a star? Or a triangle? Note that the stylesheet
-	of this document uses triangular bullets for notes, and yet that can
-	only be described using a pseudo-element, content property, and
-	unicode escape. Is that too much effort for a simple triangle?</p>
 
-	<p>A future level of CSS may provide a way to specify different bullet types at
-	arbitrary nesting levels. The Working Group considered adding an <span class="css">auto</span> value
-	with the following definition, but decided not to include it in this release: "The <dfn>auto</dfn>
-	value is intended to cause the UA to use a list numbering style different from that of the nearest
-	ancestor <span class="css">list-item</span> element. The exact rendering depends on the user
-	agent."</p>
-</div>
+<h3 id=complex-counters>Complex counter styles</h3>
 
-<p>Glyphs have no suffix.</p>
+<p>Some real-life counter styles are unfortunately too complex to be accurately
+described using the ''@counter-style'' rule.  The following styles must be supported
+as default counter styles as if they were defined by theoretical 
+''@counter-style'' rules placed at the end of the UA stylesheet defined in Appendix 
+A, using the given name as the counter style name and the given algorithm to format
+counter values.  They must be overrideable like any other predefined counter style.</p>
 
+<dl>
+	<dt>hebrew</dt>
+	<dd>
+		<p>This is a simple additive system defined for the range 1 to 999999.
+		The digits are split into two groups of three. Within each group,
+		appropriate digits are picked from the following list (at most one per
+		column) and written in descending order by value (hundreds first). If
+		there is more than one group, the first group is followed by U+05F3 HEBREW
+		PUNCTUATION GERESH.</p>
 
-<h3>Unsupported list styles</h3>
+		<table>
+			<caption>Hebrew numbering system</caption>
+			<thead>
+				<tr>
+					<th colspan="3">Hundreds
+					<th colspan="3">Tens
+					<th colspan="3">Units
+				<tr>
+					<th>Values
+					<th colspan="2">Codepoints
+					<th>Values
+					<th colspan="2">Codepoints
+					<th>Values
+					<th colspan="2">Codepoints
+			<tbody>
+				<tr>
+					<td>100
+					<td>ק
+					<td>U+05E7
+					<td>10
+					<td>י
+					<td>U+05D9
+					<td>1
+					<td>א
+					<td>U+05D0
+				<tr>
+					<td>200
+					<td>ר
+					<td>U+05E8
+					<td>20
+					<td>כ
+					<td>U+05DB
+					<td>2
+					<td>ב
+					<td>U+05D1
+				<tr>
+					<td>300
+					<td>ש
+					<td>U+05E9
+					<td>30
+					<td>ל
+					<td>U+05DC
+					<td>3
+					<td>ג
+					<td>U+05D2
+				<tr>
+					<td>400
+					<td>ת
+					<td>U+05EA
+					<td>40
+					<td>מ
+					<td>U+05DE
+					<td>4
+					<td>ד
+					<td>U+05D3
+				<tr>
+					<td>500
+					<td>תק
+					<td>U+05EA U+05E7
+					<td>50
+					<td>נ
+					<td>U+05E0
+					<td>5
+					<td>ה
+					<td>U+05D4
+				<tr>
+					<td>600
+					<td>תר
+					<td>U+05EA U+05E8
+					<td>60
+					<td>ס
+					<td>U+05E1
+					<td>6
+					<td>ו
+					<td>U+05D5
+				<tr>
+					<td>700
+					<td>תש
+					<td>U+05EA U+05E9
+					<td>70
+					<td>ע
+					<td>U+05E2
+					<td>7
+					<td>ז
+					<td>U+05D6
+				<tr>
+					<td>800
+					<td>תת
+					<td>U+05EA U+05EA
+					<td>80
+					<td>פ
+					<td>U+05E4
+					<td>8
+					<td>ח
+					<td>U+05D7
+				<tr>
+					<td>900
+					<td>תתק
+					<td>U+05EA U+05EA U+05E7
+					<td>90
+					<td>צ
+					<td>U+05E6
+					<td>9
+					<td>ט
+					<td>U+05D8
+		</table>
 
-<p>A user agent that does not recognize a numbering system should ignore the declaration in which
-the numbering system is used.</p>
+		<p>If the last two digits of a group (when represented in decimal) are 15
+		or 16, they should be expressed not as יה U+05D9 U+05D4
+		(10+5) and יו U+05D9 U+05D5 (10+6), but as
+		טו U+05D8 U+05D5 (9+6) and טז U+05D8 U+05D6
+		(9+7). This is done to avoid a close resemblance to the Tetragrammaton
+		(four-letter name of God) יהוה U+05D9 U+05D4
+		U+05D5 U+05D4. Although this convention is originally derived from
+		religious practice, it is universally used even in completely secular
+		contexts.</p>
 
-<div class="html-example"><p>For example, the following HTML document:</p>
-<pre>
-&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"&gt;
-&lt;HTML&gt;
- &lt;HEAD&gt;
-  &lt;TITLE&gt;Lowercase latin numbering&lt;/TITLE&gt;
-  &lt;STYLE type="text/css"&gt;
-   OL { list-style-type: lower-roman; list-style-type: ethiopic-halehame-om-et; }
-  &lt;/STYLE&gt;
- &lt;/HEAD&gt;
- &lt;BODY&gt;
-  &lt;OL&gt;
-   &lt;LI&gt; This is the first item.
-   &lt;LI&gt; This is the second item.
-   &lt;LI&gt; This is the third item.
-  &lt;/OL&gt;
- &lt;/BODY&gt;
-&lt;/HTML&gt;
-</pre>
+		<p>The numerical value of each letter is fixed and not determined by
+		position, so reordering a number group will not change its value. This
+		may be done when a number spells out a word with negative connotations.
+		For instance, 298, רצח U+05E8 U+05E6 U+05D7
+		(200+90+8), is the Hebrew for "murder", so it is sometimes written as
+		רחצ U+05E8 U+05D7 U+05E6 (200+8+90). Words are
+		sometimes similarly rearranged when a reordered form has especially
+		positive connotations, for example 18, יח U+05D9 U+05D7
+		(10+8) is often written as חי U+05D7 U+05D9 (8+10), the
+		Hebrew for "alive". Unlike the exception for 15 and 16, using the
+		regular form in these cases is not considered an error.</p>
 
-<p>might produce something like this in a user agent that does not support the
-ethiopic-halehame-om-et list style type:</p>
+		<p>The suffix for the hebrew numbering system is a dot (. U+002E
+		FULL STOP).</p>
 
-<pre>
-   i. This is the first item.
-  ii. This is the second item.
- iii. This is the third item.
-</pre>
+		<p>Numbers outside the range of the Hebrew system are rendered using the
+		''decimal'' counter style.</p>
 
-<p>Note that the list marker alignment (here, right justified) depends on the user agent style
-sheet's rules for the <span class="css">::marker</span> pseudo-element.</p> </div>
+		<div class="example">
+			<p>This table shows the decimal number in the first cell, and the
+			equivalent hebrew number in the second.</p>
+
+			<table class="hebrew-example">
+				<thead>
+					<tr>
+						<th>Decimal
+						<th>Hebrew
+				<tbody>
+					<tr>
+						<td>-3
+						<td>-3
+					<tr>
+						<td>-2
+						<td>-2
+					<tr>
+						<td>-1
+						<td>-1
+					<tr>
+						<td>0
+						<td>0
+					<tr>
+						<td>1
+						<td>א
+					<tr>
+						<td>2
+						<td>ב
+					<tr>
+						<td>3
+						<td>ג
+					<tr>
+						<td>4
+						<td>ד
+					<tr>
+						<td>5
+						<td>ה
+				<tbody>
+					<tr>
+						<td>97
+						<td>צז
+					<tr>
+						<td>98
+						<td>צח
+					<tr>
+						<td>99
+						<td>צט
+					<tr>
+						<td>100
+						<td>ק
+					<tr>
+						<td>101
+						<td>קא
+					<tr>
+						<td>944
+						<td>תתקמד
+					<tr>
+						<td>945
+						<td>תתקמה
+					<tr>
+						<td>946
+						<td>תתקמו
+					<tr>
+						<td>999
+						<td>תתקצט
+				<tbody>
+					<tr>
+						<td>1000
+						<td>א׳
+					<tr>
+						<td>1001
+						<td>א׳א
+					<tr>
+						<td>1998
+						<td>א׳תתקצח
+					<tr>
+						<td>1999
+						<td>א׳תתקצט
+					<tr>
+						<td>2000
+						<td>ב׳
+					<tr>
+						<td>2001
+						<td>ב׳א
+					<tr>
+						<td>2003
+						<td>ב׳ג
+					<tr>
+						<td>2748
+						<td>ב׳תשמח
+					<tr>
+						<td>2750
+						<td>ב׳תשנ
+			</table>
+
+			<p>This example (like all other examples) is non-normative. If one of
+			the numbers above is inconsistent with the rules described above, then
+			the example should be disregarded.</p>
+		</div>
+   </dd>
+
+	<dt>ethiopic-numeric</dt>
+	<dd>
+		<p>The Ethiopian numbering system is defined for all positive non-zero numbers.
+		The following algorithm converts decimal digits to ethiopic numbers.</p>
+
+		<ol>
+			<li>Split the number into groups of two digits, starting with the least
+			significant decimal digit.</li>
+
+			<li>Index each group sequentially, starting from the least significant
+			as group number zero.</li>
+
+			<li>If the group has an odd index (as given in the previous step) and
+			has the value 1, or if the group is the most significant one and has
+			the value 1, or if the group has the value zero, then remove the digit
+			(but leave the group, so it still has a separator appended below).</li>
+
+			<li>For each remaining digit, substitute the relevant ethiopic character
+			from the list below.
+				<table>
+					<caption>Ethiopic numbering system</caption>
+					<thead>
+						<tr>
+							<th colspan="3">Tens
+							<th colspan="3">Units
+						<tr>
+							<th>Values
+							<th colspan="2">Codepoints
+							<th>Values
+							<th colspan="2">Codepoints
+					<tbody>
+						<tr>
+							<td>10
+							<td>፲
+							<td>U+1372
+							<td>1
+							<td>፩
+							<td>U+1369
+						<tr>
+							<td>20
+							<td>፳
+							<td>U+1373
+							<td>2
+							<td>፪
+							<td>U+136A
+						<tr>
+							<td>30
+							<td>፴
+							<td>U+1374
+							<td>3
+							<td>፫
+							<td>U+136B
+						<tr>
+							<td>40
+							<td>፵
+							<td>U+1375
+							<td>4
+							<td>፬
+							<td>U+136C
+						<tr>
+							<td>50
+							<td>፶
+							<td>U+1376
+							<td>5
+							<td>፭
+							<td>U+136D
+						<tr>
+							<td>60
+							<td>፷
+							<td>U+1377
+							<td>6
+							<td>፮
+							<td>U+136E
+						<tr>
+							<td>70
+							<td>፸
+							<td>U+1378
+							<td>7
+							<td>፯
+							<td>U+136F
+						<tr>
+							<td>80
+							<td>፹
+							<td>U+1379
+							<td>8
+							<td>፰
+							<td>U+1370
+						<tr>
+							<td>90
+							<td>፺
+							<td>U+137A
+							<td>9
+							<td>፱
+							<td>U+1371
+				</table>
+			</li>
+
+			<li>For each group with an odd index (as given in the second step),
+			append ፻ U+137B.</li>
+
+			<li>For each group with an even index (as given in the second step),
+			except the group with number 0, append ፼ U+137C.</li>
+
+			<li>Concatenate the groups into one string.</li>
+		</ol>
+
+		<p>This system is defined for all numbers greater than zero. For zero and
+		negative numbers, the decimal system is used instead.</p>
+
+		<p>The suffix for the ethiopic-numeric numbering systems is a dot
+		(. U+002E FULL STOP). <span class="issue">Is there a better suffix
+		to use? <strong>The alphabetic ethiopic systems use a different
+		suffix.</strong></span></p>
+
+		<div class="example">
+			<p>The decimal number 100, in ethiopic, is ፻ U+137B <!-- odd --></p>
+
+			<p> The decimal number 78010092, in ethiopic, is
+			፸፰፻፩፼፻፺፪ U+1378
+			U+1370 U+137B <!-- 70 8 odd --> U+1369 U+137C <!-- 1 even --> U+137B
+			<!-- odd --> U+137A U+136A. <!-- 90 2 --></p>
+
+			<p> The decimal number 780000001092, in ethiopic, is
+			፸፰፻፩፼፻፼፻፺፪
+			U+1378 U+1370 U+137B <!-- 70 8 odd --> U+1369 U+137C <!-- 1 even -->
+			U+137B <!-- odd --> U+137C <!-- even --> U+137B <!-- odd --> U+137A
+			U+136A. <!-- 90 2 --></p>
+		</div>
+	</dd>
+</dl>
 
 <!-- ====================================================================== -->
 

Received on Thursday, 3 February 2011 00:13:52 UTC