csswg/css3-text Overview.html,1.76,1.77 Overview.src.html,1.174,1.175

Update of /sources/public/csswg/css3-text
In directory hutz:/tmp/cvs-serv14608

Modified Files:
	Overview.html Overview.src.html 
Log Message:
Address feedback from F2F <http://lists.w3.org/Archives/Public/www-style/2011Mar/0307.html>:
  - Remove 'unrestricted' value of 'text-wrap'
  - Mark 'all' value of 'hyphens' at-risk
  - Mark all other hyphenation properties at-risk
  - Make control characters invisible
  - Rename 'white-space-collapsing' to 'bikeshedding'
  - Remove 'keep-words' value of 'word-break'
  - Remove second <string> value of 'hyphenate-character'
  - Merge various hyphenation limits into one property
  - Allow zero tab-size
  - Add 'hyphenate' value to 'word-wrap'
  - Change 'no-' values of text decoration to 'cancel-'
  - Allow combination of 'cancel-' values with other values
  - Rename 'wave' to 'wavy' for text-decoration-style
  - Remove 'all' value of 'text-decoration-skip'
  - s/Draw/Display/ for text-emphasis
  - Note that CSS may in the future define controls to handle ruby/emphasis conflicts
  - Mark a bunch of properties optional for conformance due to their localized non-critical impact
  - Make a table indicating cultural target audience of various features
  - Start an explicit list of scripts for script categories

Additional editorial:
  - Rename Script Groups to Script Categorizations
  - Clarify some hyphenation/line-breaking interactions.
  - Rename full-size-kana to fullsize-kana to be consistent with fullwidth



Index: Overview.html
===================================================================
RCS file: /sources/public/csswg/css3-text/Overview.html,v
retrieving revision 1.76
retrieving revision 1.77
diff -u -d -r1.76 -r1.77
--- Overview.html	15 Mar 2011 22:43:44 -0000	1.76
+++ Overview.html	19 Mar 2011 07:41:25 -0000	1.77
@@ -83,14 +83,14 @@
 
    <h1>CSS Text Level 3</h1>
 
-   <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 15 March 2011</h2>
+   <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 19 March 2011</h2>
 
    <dl>
     <dt>This version:
 
     <dd><a href="http://dev.w3.org/csswg/css3-text/Overview.html">$Date:
-     2011/03/10 06:56:59 $ (CVS $Revision$)</a> <!--
[...1597 lines suppressed...]
@@ -6807,9 +7013,6 @@
    <li>word-break:keep-all, <a href="#keep-all"
     title="word-break:keep-all"><strong>5.2.</strong></a>
 
-   <li>word-break:keep-words, <a href="#keep-words"
-    title="word-break:keep-words"><strong>5.2.</strong></a>
-
    <li>word-break:normal, <a href="#normal1"
     title="word-break:normal"><strong>5.2.</strong></a>
 
@@ -6822,6 +7025,9 @@
    <li>word-wrap:break-word, <a href="#break-word"
     title="word-wrap:break-word"><strong>7.2.</strong></a>
 
+   <li>word-wrap:hyphenate, <a href="#hyphenate"
+    title="word-wrap:hyphenate"><strong>7.2.</strong></a>
+
    <li>word-wrap:normal, <a href="#normal3"
     title="word-wrap:normal"><strong>7.2.</strong></a>
   </ul>

Index: Overview.src.html
===================================================================
RCS file: /sources/public/csswg/css3-text/Overview.src.html,v
retrieving revision 1.174
retrieving revision 1.175
diff -u -d -r1.174 -r1.175
--- Overview.src.html	15 Mar 2011 22:43:44 -0000	1.174
+++ Overview.src.html	19 Mar 2011 07:41:26 -0000	1.175
@@ -174,9 +174,11 @@
   <p>The following features are at risk and may be cut from the spec during
     its CR period:</p>
     <ul>
-      <li>the 'text-outline' property
-      <li>the ''unrestricted'' value of 'text-wrap'
       <li>the 'hanging-punctuation' property
+      <li>the ''all'' value of the 'hyphens' property
+      <li>the 'hyphenate-limit-*' properties
+      <li>the 'hyphenate-resource' property / ''@hyphenate-resource'' at-rule
+      <li>the 'text-outline' property
       <li>the 'text-trim' property
       <li><span class="issue">audit draft and add more here</span>
     </ul>
@@ -198,11 +200,11 @@
     the <em>legacy grapheme cluster</em> definition). The UA may further
     tailor the definition as allowed by Unicode.
 
-  <h3 id="script-groups">Script Groups</h3>
+  <h3 id="script-groups">Script Categorization</h3>
 
     <p>Typographic behavior varies somewhat by language, but varies drastically
       by writing system. For convenience, CSS3 Text defines the following
-      script groups, which combine typographically-similar scripts together.
+      script categories, which combine typographically-similar scripts together.
 
     <dl>
       <dt id="block-scripts"><dfn>block scripts</dfn></dt>
@@ -222,7 +224,7 @@
       <dt id="connected-scripts"><dfn>connected scripts</dfn></dt>
         <dd>Devanagari, Ogham, and other scripts that use spaces between
           words and baseline connectors within words.
-          By extension this group also includes Gurmukhi, Tamil and any
+          By extension this category also includes Gurmukhi, Tamil and any
           other Indic scripts whose typographic behavior is similar to
           Devanagari.</dd>
     </dl>
@@ -314,7 +316,7 @@
         <tr>
           <th>Value:</th>
           <td>none |
-            [ [ capitalize | uppercase | lowercase ] || fullwidth || full-size-kana ]
+            [ [ capitalize | uppercase | lowercase ] || fullwidth || fullsize-kana ]
           </td>
         </tr>
         <tr>
@@ -363,7 +365,7 @@
           it is left as is.
           This value is typically used to typeset Latin characters and digits
           like ideographic characters.
-      <dt><dfn title="text-transform:full-size-kana"><code>full-size-kana</code></dfn></dt>
+      <dt><dfn title="text-transform:fullsize-kana"><code>fullsize-kana</code></dfn></dt>
         <dd>Converts all small Kana characters to normal Kana.
           This value is typically used for ruby annotation text,
           where all small Kana should be drawn as large Kana.
@@ -446,13 +448,15 @@
     behavior specified below can be affected by these limitations and
     may be user agent dependent.</p>
 
-  <p>Control characters other than U+0009 (tab), U+000A (line feed),
-    U+0020 (space), and U+202x (bidi formatting characters) are treated
-    as characters to render in the same way as any normal character.
-    <span class="issue">Copied from CSS2.1 but this has got to be wrong.</span>
+  <p>Control characters (Unicode class Cc) other than tab (U+0009), line feed
+    (U+000A), space (U+0020), and the bidi formatting characters (U+202<var>x</var>)
+    should be rendered as invisible zero-width characters. UAs may instead treat
+    them as visible characters. (Note, however, that this will usually result in
+    them being rendered as missing glyphs.)
+    <span class="issue">What's the line-breaking behavior? Assign to alphabetic class?</span>
 
   <h3 id="white-space-collapsing">
-    White Space Collapsing: the 'white-space-collapsing' property</h3>
+    White Space Collapsing: the 'bikeshedding' property</h3>
 
     <p class="issue">This section is still under discussion and may change in future drafts.</p>
 
@@ -460,7 +464,7 @@
       <tbody>
         <tr>
           <th>Name:</th>
-          <td><dfn>white-space-collapsing</dfn></td>
+          <td><dfn>bikeshedding</dfn></td>
         </tr>
         <tr>
           <th>Value:</th>
@@ -493,7 +497,7 @@
       </tbody>
     </table>
 
-    <p class="issue">Rename to white-space-trim or white-space-adjust? white-space-collapsing has an 'ing' and is confusing with XSL</p>
+    <p class="issue">Need a property name</p>
 
     <p>This property declares whether and how
       <a href="#white-space-processing">white space</a> inside the element is
@@ -502,29 +506,29 @@
       rules</a>:</p>
 
     <dl>
-      <dt><dfn title="white-space-collapsing:collapse"><code>collapse</code></dfn></dt>
+      <dt><dfn title="white-space:collapse"><code>collapse</code></dfn></dt>
       <dd>This value directs user agents to collapse sequences of white space
         into a single character (or <a href="#line-break-transform">in some
         cases</a>, no character).</dd>
-      <dt><dfn title="white-space-collapsing:preserve"><code>preserve</code></dfn></dt>
+      <dt><dfn title="white-space:preserve"><code>preserve</code></dfn></dt>
       <dd>This value prevents user agents from collapsing sequences
       of white space. Line feeds are preserved as forced line breaks.</dd>
-      <dt><dfn title="white-space-collapsing:preserve-breaks"><code>preserve-breaks</code></dfn></dt>
+      <dt><dfn title="white-space:preserve-breaks"><code>preserve-breaks</code></dfn></dt>
       <dd>This value collapses white space as for ''collapse'', but preserves
         line feeds as forced line breaks.</dd>
-      <dt><dfn title="white-space-collapsing:discard"><code>discard</code></dfn></dt>
+      <dt><dfn title="white-space:discard"><code>discard</code></dfn></dt>
       <dd>This value directs user agents to "discard" all white space in the
         element.
-      <dt><dfn title="white-space-collapsing:trim-inner"><code>trim-inner</code></dfn></dt>
+      <dt><dfn title="white-space:trim-inner"><code>trim-inner</code></dfn></dt>
       <dd>This value directs UAs to discard all whitespace at the beginning of
         a block up to and including the last line feed before the first
         non-white-space character in the block as well as to discard all white
         space at the end of a block starting with the first line feed after
         the last non-white-space character in the block.</dd>
-      <dt><dfn title="white-space-collapsing:consume-before"><code>consume-before</code></dfn></dt>
+      <dt><dfn title="white-space:consume-before"><code>consume-before</code></dfn></dt>
       <dd>This value directs the UA to collapse all collapsible whitespace
         immediately before the start of the element.
-      <dt><dfn title="white-space-collapsing:consume-after"><code>consume-after</code></dfn></dt>
+      <dt><dfn title="white-space:consume-after"><code>consume-after</code></dfn></dt>
       <dd>This value directs the UA to collapse all collapsible whitespace
         immediately after the end of the element.
     </dl>
@@ -570,8 +574,10 @@
     </table>
 
     <p>This property determines the width of the tab character (U+0009),
-      in space characters (U+0020), when rendered. Only positive integers
-      are allowed.
+      in space characters (U+0020), when rendered. Negative integers are
+      not allowed.
+    <!-- BradK suggests allowing <length> values. Someone else suggested
+         spaces be given a unit, e.g. 8sp -->
 
   <h3 id="white-space-rules">
     The White Space Processing Rules</h3>
@@ -581,15 +587,15 @@
       ignoring bidi formatting characters as if they were not there:</p>
 
     <ul>
-    <li id="collapse"><p>If <span class="property">'white-space-collapsing'</span>
-      is set to 'collapse' or 'preserve-breaks', white space characters
+    <li id="collapse"><p>If 'bikeshedding'
+      is set to ''collapse'' or ''preserve-breaks'', white space characters
       are considered <dfn>collapsible</dfn> and are processed by
       performing the following steps:</p>
       <ol>
         <li>All spaces and tabs immediately preceding or following a line
           feed character are removed.</li>
-        <li>If <span class="property">'white-space-collapsing'</span> is not
-          'preserve-breaks', line feed characters are transformed for
+        <li>If 'bikeshedding' is not
+          ''preserve-breaks'', line feed characters are transformed for
           rendering according to the <a href="#line-break-transform">line
           break transformation rules</a>.
         </li>
@@ -605,12 +611,12 @@
           ''consume-after'' is removed.
       </ol>
     </li>
-    <li><p>If <span class="property">'white-space-collapsing'</span> is set to
-      'preserve', any sequence of spaces (U+0020) unbroken by an element
+    <li><p>If 'bikeshedding' is set to
+      ''preserve'', any sequence of spaces (U+0020) unbroken by an element
       boundary is treated as a sequence of non-breaking spaces. However,
       a line breaking opportunity exists at the end of the sequence.</p></li>
-    <li><p>If <span class="property">'white-space-collapsing'</span> is set to
-      'discard', the first white space character in every white space
+    <li><p>If 'bikeshedding' is set to
+      ''discard'', the first white space character in every white space
       sequence is converted to a zero width non-joiner (U+200C) and
       the rest of the sequence is removed.</p>
     </ul>
@@ -647,8 +653,8 @@
 
       <p>where the <code>&lt;ltr&gt;</code> element represents a left-to-right
         embedding and the <code>&lt;rtl&gt;</code> element represents a
-        right-to-left embedding. If the 'white-space-collapsing' property is set
-        to 'collapse', the above processing model would result in the
+        right-to-left embedding. If the 'bikeshedding' property is set
+        to ''collapse'', the above processing model would result in the
         following:</p>
 
       <ul style="line-height:1.3">
@@ -758,27 +764,26 @@
     </table>
 
     <p>The 'white-space' property is a shorthand for the
-      <a href="#white-space-collapsing">'white-space-collapsing'</a>
-      and <a href="#text-wrap">'text-wrap'</a> properties.
+      'bikeshedding' and 'text-wrap' properties.
       Not all combinations are represented.
       Values have the following meanings:</p>
 
     <dl>
       <dt><dfn title="white-space:normal"><code>normal</code></dfn></dt>
-      <dd>Sets 'white-space-collapsing' to 'collapse' and
-        'text-wrap' to 'normal'</dd>
+      <dd>Sets 'bikeshedding' to ''collapse'' and
+        'text-wrap' to ''normal''</dd>
       <dt><dfn title="white-space:pre"><code>pre</code></dfn></dt>
-      <dd>Sets 'white-space-collapsing' to 'preserve' and
-        'text-wrap' to 'none'</dd>
+      <dd>Sets 'bikeshedding' to ''preserve'' and
+        'text-wrap' to ''none''</dd>
       <dt><dfn title="white-space:nowrap"><code>nowrap</code></dfn></dt>
-      <dd>Sets 'white-space-collapsing' to 'collapse' and
-        'text-wrap' to 'none'</dd>
+      <dd>Sets 'bikeshedding' to ''collapse'' and
+        'text-wrap' to ''none''</dd>
       <dt><dfn title="white-space:pre-wrap"><code>pre-wrap</code></dfn></dt>
-      <dd>Sets 'white-space-collapsing' to 'preserve' and
-        'text-wrap' to 'normal'</dd>
+      <dd>Sets 'bikeshedding' to ''preserve'' and
+        'text-wrap' to ''normal''</dd>
       <dt><dfn title="white-space:pre-line"><code>pre-line</code></dfn></dt>
-      <dd>Sets 'white-space-collapsing' to 'preserve-breaks' and
-        'text-wrap' to 'normal'</dd>
+      <dd>Sets 'bikeshedding' to ''preserve-breaks'' and
+        'text-wrap' to ''normal''</dd>
     </dl>
 
     <p>The following informative table summarizes the behavior of various
@@ -962,6 +967,10 @@
         </ul>
     </ul>
 
+    <p>Support for this property is <em>optional</em>. It is recommended
+      for UAs that wish to support CJK typography and strongly recommended
+      for UAs in the Japanese market.</p>
+
   <h3 id="word-break">
     Word Breaking Rules: the 'word-break' property</h3>
 
@@ -1019,14 +1028,6 @@
         ''normal''.
         This option is mostly used where the presence of word separator
         characters still creates line-breaking opportunities, as in Korean.</dd>
-      <dt><dfn title="word-break:keep-words"><code>keep-words</code></dfn></dt>
-      <dd>Lines may not break within words, even in
-        <a href="#block-scripts">block scripts</a> (which would require the use
-        of a dictionary in languages such as Chinese and Japanese). This option
-        is sometimes used in combination with start-aligned (unjustified) text.
-        <span class="issue">This value is likely to be dropped before CR unless
-        there is interest from implementers.</span>
-        </dd>
     </dl>
 
     <p>When shaping scripts such as Arabic are allowed to break within words
@@ -1042,6 +1043,26 @@
 
     <p>Whether hyphenation is applied can controlled with the 'hyphens' property.
 
+    <p>The following author controls are not required to be supported for
+      the UA to claim conformance to CSS Text Level 3:
+    <ul>
+      <li>'hyphenate-limit-zone'
+      <li>'hyphenate-limit-chars'
+      <li>'hyphenate-limit-lines'
+      <li>'hyphenate-resources'
+      <li>''@hyphenate-resource''
+    </ul>
+
+    <p>Nonetheless, UAs are strongly encouraged to optimize their line-breaking
+      implementation to choose good break points and appropriate hyphenation
+      points.
+
+    <p class="note">These controls are optional because for a low-end
+      implementation of hyphenation, they are not critical enough; and for
+      a high-end implementation of paragraph breaking (such as in
+      T<span style="font-variant: small-caps">e</span>&chi;) they are not
+      considered especially useful.</p>
+
   <h3 id="hyphens">Hyphenation Control: the 'hyphens' property</h3>
 
     <table class=propdef>
@@ -1130,7 +1151,7 @@
           <td><dfn>hyphenate-character</dfn>
         <tr>
           <th>Value:
-          <td>auto | &lt;string> &lt;string>?
+          <td>auto | &lt;string>
         <tr>
           <th>Initial:
           <td>auto
@@ -1153,12 +1174,8 @@
 
     <p>This property specifies strings that are shown between parts of
       hyphenated words. The 'auto' value means that the user agent should
-      find an appropriate value. If one string is specified, it appears at
-      the end of lines. If two strings are specified, the second string
-      appears at the beginning of lines.
-
-    <p class=issue>Is the use of hyphenate characters at the beginning of
-      lines common enough for this to be part of the specification?
+      find an appropriate value. If a string is specified, it appears at
+      the end of the line before a hyphenation break. 
 
     <div class="example">
       <p>In Latin scripts, the hyphen character (U+2010) is often used to
@@ -1167,6 +1184,8 @@
       <pre>article { hyphenate-character: "\2010" }</pre>
     </div>
 
+    <p class="issue">Can we to CLDR for hyphenation character data?</p>
+
   <h3 id="hyphenate-char-limits">
     Hyphenation Size Limit: the 'hyphenate-limit-zone' property</h3>
 
@@ -1204,21 +1223,16 @@
       triggered to pull part of a word from the next line back up into the
       current line.
 
-    <p class="issue">Should percentages be relative to the line box or the
-      block? (Difference occurs in presence of floats. Making it relative
-      to the line box means the hyphenation zone adapts to how much space
-      there is on the line.)</span>
-
   <h3 id="hyphenate-char-limits">
-    Hyphenation Character Limits: the 'hyphenate-limit-before' and 'hyphenate-limit-after' properties</h3>
+    Hyphenation Character Limits: the 'hyphenate-limit-word' property</h3>
 
     <table class=propdef>
       <tr>
         <th>Name:
-        <td><dfn>hyphenate-limit-before</dfn>
+        <td><dfn>hyphenate-limit-chars</dfn>
       <tr>
         <th>Value:
-        <td>&lt;integer> | auto
+        <td>auto | &lt;integer&gt;{1,3}
       <tr>
         <th>Initial:
         <td>auto
@@ -1240,45 +1254,32 @@
     </table>
 
     <p>This property specifies the minimum number of characters in a
-      hyphenated word before the hyphenation character. The ''auto'' value
-      means that the UA chooses a value that adapts to the current layout.
-
-    <p class="note">Unless the UA is able to calculate a better value, it
-      is suggested that ''auto'' means 2.
-
-    <table class=propdef>
-      <tr>
-        <th>Name:
-        <td><dfn>hyphenate-limit-after</dfn>
-      <tr>
-        <th>Value:
-        <td>&lt;integer> | auto
-      <tr>
-        <th>Initial:
-        <td>auto
-      <tr>
-        <th>Applies to:
-        <td>all elements
-      <tr>
-        <th>Inherited:
-        <td>yes
-      <tr>
-        <th>Percentages:
-        <td>N/A
-      <tr>
-        <th>Media:
-        <td>visual
-      <tr>
-        <th>Computed&nbsp;value:
-        <td>specified value
-    </table>
+      hyphenated word. If the word does not meet the required minimum
+      number of characters in the word / before the hyphen / after the
+      hyphen, then the word must not be hyphenated. Nonspacing combining
+      marks (<span class="issue">Unicode class</span>) and intra-word
+      punctuation (Unicode classes P*) do not count towards the minimum.
 
-    <p>This property specifies the minimum number of characters in a
-      hyphenated word after the hyphenation character. The ''auto'' value
-      means that the UA chooses a value that adapts to the current layout.
+    <p>If three values are specified, the first value is the required
+      minimum for the total characters in a word, the second value is
+      the minimum for characters before the hyphenation point, and
+      the third value is the minimum for characters after the hyphenation
+      point. If the third value is missing, it is the same as the second.
+      If the second value is missing, then it is ''auto''. The ''auto''
+      value means that the UA chooses a value that adapts to the current
+      layout.
 
     <p class="note">Unless the UA is able to calculate a better value, it
-      is suggested that ''auto'' means 2.
+      is suggested that ''auto'' means 2 for before and after, and 5 for
+      the word total.
+
+    <div class="example">
+      <p>In the example below, the minimum size of a hyphenated word is
+        left to the UA (which means it may vary depending on the language,
+        the length of the line, or other factors), but the minimum number
+        of characters before and after the hyphenation point is set to 3.
+      <pre>p { hyphenate-limit-chars: auto 3; }
+    </div>
 
   <h3 id="hyphenate-line-limits">
     Hyphenation Line Limits: the 'hyphenate-limit-lines' and 'hyphenate-limit-last' properties</h3>
@@ -1311,9 +1312,11 @@
     </table>
 
     <p>This property indicates the maximum number of successive hyphenated
-      lines in an element. In some cases, user agents may not be able to
-      honor the specified value. The ''no-limit'' value means that there
-      is no limit.
+      lines in an element. The ''no-limit'' value means that there is no limit.
+
+    <p>In some cases, user agents may not be able to  honor the specified value.
+      (See 'word-wrap'.) It is not defined whether hyphenation introduced by
+      such emergency breaking influences nearby hyphenation points.
 
     <table class=propdef>
       <tr>
@@ -1547,7 +1550,7 @@
         </tr>
         <tr>
           <th>Value:</th>
-          <td>normal | unrestricted | none | avoid</td>
+          <td>normal | none | avoid</td>
         </tr>
         <tr>
           <th>Initial:</th>
@@ -1587,12 +1590,6 @@
     <dt><dfn title="text-wrap:none"><code>none</code></dfn></dt>
     <dd>Lines may not break; text that does not fit within the block container
       overflows it.</dd>
-    <dt><dfn title="text-wrap:unrestricted"><code>unrestricted</code></dfn></dt>
-    <dd>Lines may break between any two grapheme clusters. Line-breaking
-      restrictions have no effect and hyphenation does not take place.
-      Character shaping is performed on each side of the break as if
-      the break had not occurred. <span class="issue">This value is
-      for terminal-style dumb line breaking. But has no use cases.</span></dd>
     <dt><dfn title="text-wrap:avoid"><code>avoid</code></dfn></dt>
     <dd>Line breaking is suppressed within the element: the UA may only break
       within the element if there are no other valid break points in the
@@ -1665,7 +1662,7 @@
         </tr>
         <tr>
           <th>Value:</th>
-          <td>normal | break-word</td>
+          <td>normal | [ break-word || hyphenate ]</td>
         </tr>
         <tr>
           <th>Initial:</th>
@@ -1706,19 +1703,23 @@
       ''word-break: normal'' and the various hyphenation limit properties
       may be ignored if there are no otherwise-acceptable break points in
       the line.</dd>
+    <dt><dfn title="word-wrap:hyphenate"><code>hyphenate</code></dfn></dt>
+    <dd>An unbreakable "word" may be hyphenated if there are no
+      otherwise-acceptable break points in the line even if hyphenation is
+      turned off. Hyphenation controls may influence where the word breaks,
+      but cannot forbid the word from hyphenating to prevent overflow.
     <dt><dfn title="word-wrap:break-word"><code>break-word</code></dfn></dt>
     <dd>An unbreakable "word" may be broken at an arbitrary point if
       there are no otherwise-acceptable break points in the line.
       Shaping characters are still shaped as if the word were not
-      broken, and grapheme clusters must together stay as one unit.</dd>
+      broken, and grapheme clusters must together stay as one unit.
+      If specified together with ''hyphenate'', valid hyphenation
+      takes precedence over ''break-word'' breaking.</dd>
     </dl>
 
-    <p class="issue">Should there be a ''hyphenate'' value, that turns
-      on hyphenation only for emergency breaking? (This would give better
-      results than ''break-word''.)
-
-    <p class="issue">Should there be a ''none'' value, that prevents
-      the relaxation of 'word-break' and hyphenation limit restrictions?</p>
+    <p class="note">This property should have been called 'emergency-wrap',
+      however due to historical reasons it could not be given a less
+      confusing name.</p>
 
 <h2 id="justification">
   Alignment and Justification</h2>
@@ -2048,7 +2049,7 @@
       <dt><dfn title="text-justify:distribute"><code>distribute</code></dfn></dt>
         <dd>Justification primarily changes spacing both at word separators
           and at grapheme cluster boundaries in all scripts except those in
-          the connected and cursive groups.
+          the connected and cursive categories.
           This value is sometimes used in e.g. Japanese.</dd>
       <dt><a name="kashida-prop"></a><a name="text-kashida-space"></a>
         <dfn title="text-justify:kashida"><code>kashida</code></dfn></dt>
@@ -2092,7 +2093,7 @@
       group, but may vary within a line due to changes in the font or
       letter-spacing and word-spacing values. Since justification behavior
       varies by writing system, expansion opportunities are organized by
-      <a href="#script-groups">script group</a>. The different types of
+      <a href="#script-groups">script categories</a>. The different types of
       expansion opportunities are defined as follows:</p>
 
     <dl>
@@ -2105,7 +2106,7 @@
       <dt>discrete</dt>
          <dd>An expansion opportunity exists between two
            <a href="#grapheme-cluster">grapheme clusters</a> when at least
-           one of them belongs to the affected script group and the spacing
+           one of them belongs to the affected script category and the spacing
            that point has not already been altered at a higher priority.
          </dd>
       <dt>cursive</dt>
@@ -2830,6 +2831,9 @@
         standard convention is often not followed.</p>
     </div>
 
+    <p>Support for this property is <em>optional</em>. It is strongly
+      recommended for UAs that wish to support CJK typography.</p>
+
   <h3 id="text-autospace-prop">
     Adding space: the 'text-autospace' property</h3>
 
@@ -2966,6 +2970,10 @@
       </dd>
     </dl>
 
+    <p>Support for this property is <em>optional</em>. It is recommended
+      for UAs that wish to support CJK typography.</p>
+
+
 <h2 id="edge-effects">
   Edge Effects</h2>
 
@@ -3151,6 +3159,10 @@
     <p class="note">Note that if there is not sufficient padding on the
       block container, hanging punctuation may trigger overflow.</p>
 
+    <p>Support for this property is <em>optional</em>. It is recommended
+      for UAs that wish to support CJK typography, particularly those in
+      the Japanese market.</p>
+
 <h2 id="decoration">
   <a name="text-decoration">Text Decoration</a></h2>
 
@@ -3257,7 +3269,8 @@
           </tr>
           <tr>
             <th>Value:</th>
-            <td>none | [ underline | no-underline ] || [ overline | no-overline ] || [ line-through | no-line-through ]
+            <td>none | underline || overline || line-through ||
+                [ cancel-underline || cancel-overline || cancel-line-through | cancel-all ]
             </td>
           </tr>
           <tr>
@@ -3294,26 +3307,25 @@
         <dt><dfn title="text-decoration-line:none">none</dfn>
           <dd>Neither produces nor inhibits text decoration.
         <dt>underline</dfn>
-          <dd>Each line of text is underlined. Inhibits propagated underlines.
-        <dt><dfn>no-underline</dfn>
+          <dd>Each line of text is underlined.
+        <dt><dfn>cancel-underline</dfn>
           <dd>Inhibits propagated underlines.
         <dt><dfn>overline</dfn>
           <dd>Each line of text has a line above it (i.e. on the opposite
-          side from an underline). Inhibits propagated overlines.
-        <dt><dfn>no-overline</dfn>
+          side from an underline).
+        <dt><dfn>cancel-overline</dfn>
           <dd>Inhibits propagated overlines.
         <dt><dfn>line-through</dfn>
           <dd>Each line of text has a line through the middle.
-          Inhibits propagated line-throughs.
-        <dt><dfn>no-line-through</dfn>
+        <dt><dfn>cancel-line-through</dfn>
           <dd>Inhibits propagated line-throughs.
+        <dt><dfn>cancel-all</dfn>
+          <dd>Inhibits propagated text decorations.
       </dl>
 
-      <p>A piece of text can have at most one underline, one overline, and one
-        line-through applied to it: if an element adds a new line, it inhibits
-        any lines of the same type that would otherwise be propagated to it.</p>
-      <p class="issue">This behavior is incompatible with CSS2.1, which says
-        that all ancestors' lines are painted along with the new one (if any).</p>
+    <p class="issue">The use of "cancel-" instead of "no-" is incompatible
+      with XSL. It was motivated by the desire to make
+        <code>text-decoration: underline no-underline</code> less nonsensical.
 
     <h4 id="text-decoration-color">
       Text Decoration Color: the 'text-decoration-color' property</h4>
@@ -3371,7 +3383,7 @@
           </tr>
           <tr>
             <th>Value:</th>
-            <td>solid | double | dotted | dashed | wave
+            <td>solid | double | dotted | dashed | wavy
             </td>
           </tr>
           <tr>
@@ -3405,7 +3417,7 @@
         text decoration specified on the element. Values have the
         same meaning as for the
         <a href="http://www.w3.org/TR/css3-background/#the-border-style">border-style
-        properties</a> [[!CSS3BG]].</p>
+        properties</a> [[!CSS3BG]]. ''wavy'' indicates a wavy line.</p>
 
     <h4 id="text-decoration">
       Text Decoration Shorthand: the 'text-decoration' property</h4>
@@ -3488,7 +3500,7 @@
           </tr>
           <tr>
             <th>Value:</th>
-            <td>none | [ objects || spaces || ink || all ]
+            <td>none | [ objects || spaces || ink ]
             </td>
           </tr>
           <tr>
@@ -3542,21 +3554,13 @@
           line to let text show through where the text decoration would
           otherwise cross over a glyph. The UA may also skip a small
           distance to either side of the glyph outline.</dd>
-        <dt><dfn title="text-decoration-skip:all">all</dfn></dt>
-        <dd>Skip over all content in this element.</dd>
       </dl>
 
       <p class="issue">Do we need a value that <em>doesn't</em> skip
         margins and padding?</p>
 
-      <p>Note that this property inherits and that descendant elements
-        can have a different setting. Therefore a child of an element
-        with <code>text-decoration-skip: all</code> can cause its
-        grandparent's underline to be drawn by specifying
-        <code>text-decoration-skip: none</code>.</p>
-
-      <p class="issue">Is the ''all'' value needed now that 'text-decoration-line'
-        has line-inhibiting values from XSL?</p>
+      <p class="note">Note that this property inherits and that descendant
+        elements can have a different setting.</p>
 
     <h4 id="text-underline-position">
       Text Underline Position: the 'text-underline-position' property</h4>
@@ -3724,22 +3728,22 @@
       <dt><dfn title="text-emphasis:open"><code>open</code></dfn></dt>
         <dd>The shape is hollow.</dd>
       <dt><dfn title="text-emphasis:dot"><code>dot</code></dfn></dt>
-        <dd>Draw small circles as marks.
+        <dd>Display small circles as marks.
           The filled dot is U+2022 '&#x2022;', and the open dot is U+25E6 '&#x25e6;'.</dd>
       <dt><dfn title="text-emphasis:circle"><code>circle</code></dfn></dt>
-        <dd>Draw large circles as marks.
+        <dd>Display large circles as marks.
           The filled circle is U+25CF '&#x25cf;', and the open circle is U+25CB '&#x25cb;'.</dd>
       <dt><dfn title="text-emphasis:double-circle"><code>double-circle</code></dfn></dt>
-        <dd>Draw double circles as marks.
+        <dd>Display double circles as marks.
           The filled double-circle is U+25C9 '&#x25c9;', and the open double-circle is U+25CE '&#x25ce;'.</dd>
       <dt><dfn title="text-emphasis:triangle"><code>triangle</code></dfn></dt>
-        <dd>Draw triangles as marks.
+        <dd>Display triangles as marks.
           The filled triangle is U+25B2 '&#x25b2;', and the open triangle is U+25B3 '&#x25b3;'.</dd>
       <dt><dfn title="text-emphasis:sesame"><code>sesame</code></dfn></dt>
-        <dd>Draw sesames as marks.
+        <dd>Display sesames as marks.
           The filled sesame is U+FE45 '&#xfe45;', and the open sesame is U+FE46 '&#xfe46;'.</dd>
       <dt><dfn title="text-emphasis:sesame"><code><var>&lt;string&gt;</var></code></dfn></dt>
-        <dd>Draw the given string as marks.
+        <dd>Display the given string as marks.
           Authors should not specify more than one grapheme cluster in &lt;string&gt;.
           The UA may truncate or ignore strings consisting of more than one grapheme cluster.</dd>
     </dl>
@@ -3792,6 +3796,9 @@
       <p class="caption">Emphasis marks applied to 4 characters, and ruby to 2 of them</p>
     </div>
 
+    <p class="note">A future level of CSS may define controls to specify
+      what to do when emphasis marks and ruby text coincide.</p>
+
     <h4 id="text-emphasis-color">
       Emphasis Mark Color: the 'text-emphasis-color' property</h4>
 
@@ -4190,7 +4197,7 @@
   </ul>
 
 <h2 class="no-num" id="acknowledgements">
-  Acknowledgements</h2>
+  Appendix A: Acknowledgements</h2>
 
   <p>This specification would not have been possible without the help from:
     Ayman Aldahleh, Bert Bos, Tantek Çelik, Stephen Deach, Martin Dürst,
@@ -4202,7 +4209,7 @@
     Frank Tang, Chris Thrasher, Etan Wexler, Chris Wilson, Masafumi Yabe
     and Steve Zilles.</p>
 
-<h2 class="no-num">Appendix A: References</h2>
+<h2 class="no-num">Appendix B: References</h2>
 
 <h3 class="no-num" id="normative-ref">Normative references</h3>
 <!--normative-->
@@ -4210,12 +4217,78 @@
 <h3 class="no-num" id="informative-ref">Informative references</h3>
 <!--informative-->
 
-<h2 class="no-num"> Appendix B: Property index</h2>
-<!-- properties -->
+<h2 class="no-num" id="optional">Appendix C: Cultural Correlations</h2>
 
-<h2 class="no-num" id="default-stylesheet">Appendix C: Default UA Stylesheet</h2>
+  <p><em>This section is non-normative.</em></p>
 
-    <p>This section is informative, and is to help UA developers to implement
+  <p>Some features are more important in some typographic traditions
+    than in others. This table summarizes which typographic traditions
+    these features were designed for. Parentheses indicates traditions for
+    which the feature is particularly significant. This table should be
+    considered incomplete and non-exhaustive.
+
+  <table>
+    <thead>
+      <tr><th>Feature
+          <th>Typographic Tradition
+    </thead>
+    <tbody>
+      <tr><td>'hanging-punctuation'
+          <td>CJK
+      <tr><td>'hyphens'
+          <td>Western, South Asian
+      <tr><td>'hyphenate-character'
+          <td>Western, South Asian
+      <tr><td>'hyphenate-limit-chars'
+          <td>Western, South Asian
+      <tr><td>'hyphenate-limit-last'
+          <td>Western, South Asian
+      <tr><td>'hyphenate-limit-lines'
+          <td>Western, South Asian
+      <tr><td>'hyphenate-limit-zone'
+          <td>Western, South Asian
+      <tr><td>'hyphenate-resource'/''@hyphenate-resource''
+          <td>Western, South Asian
+      <tr><td>'line-break'
+          <td>CJK (Japanese)
+      <tr><td>'text-autospace'
+          <td>CJK
+      <tr><td>'text-autospace': ''punctuation''
+          <td>European (French)
+      <tr><td>'text-justify': ''inter-cluster''
+          <td>Southeast Asian
+      <tr><td>'text-justify': ''inter-ideograph'', ''distribute''
+          <td>CJK
+      <tr><td>'text-justify': ''inter-word''
+          <td>Western, African, Middle-Eastern, Indic
+      <tr><td>'text-justify': ''kashida''
+          <td>Arabic
+      <tr><td>'text-emphasis-style'
+          <td>CJK
+      <tr><td>'text-emphasis-color'
+          <td>CJK
+      <tr><td>'text-emphasis-position'
+          <td>CJK
+      <tr><td>'text-transform': ''capitalize'', ''uppercase'', ''lowercase''
+          <td>Western
+      <tr><td>'text-transform': ''fullwidth'', ''fullsize-kana''
+          <td>CJK
+      <tr><td>'text-trim'
+          <td>CJK
+      <tr><td>'text-underline-position': ''auto''
+          <td>CJK
+      <tr><td>'word-break'
+          <td>CJK (Korean)
+      <tr><td>'word-spacing'
+          <td>Western, African, Middle-Eastern, Indic
+    </tbody>
+  </table>
+
+  <p class="issue">Additional information / corrections on this table are welcome.</p>
+
+<h2 class="no-num" id="default-stylesheet">Appendix D: Default UA Stylesheet</h2>
+
+    <p>This appendix is informative, and is to help UA developers to implement
       default stylesheet, but UA developers are free to ignore or change.</p>
 
     <div class="example">
@@ -4226,7 +4299,7 @@
 <!-- -->  emphasis marks should only apply to base text */
 <!-- -->rt { text-emphasis: none; }
 <!-- -->
-<!-- -->:root:lang(zh) {
+<!-- -->:root:lang(zh), [lang|=zh] {
 <!-- -->/* default emphasis mark position is 'under' for Chinese */
 <!-- -->  text-emphasis-position: under;
 <!-- -->}
@@ -4237,7 +4310,82 @@
       please send the information to <a href="mailto:www-style@w3.org">www-style@w3.org</a>
       with <kbd>[css3-text]</kbd> in the subject line.</p>
 
-<h2 class="no-num" id="index">Index</h2>
+<h2 class="no-num">Appendix E: Categorization of Scripts</h2>
+
+<p><em>This appendix is informative (non-normative).</em></p>
+
+<p>This appendix categorizes some common scripts in Unicode 6.0 according
+to the <a href="#script-groups">categorization given above</a>.
+
+<dl>
+  <dt>block scripts</dt>
+    <dd>
+      Bopomofo,
+      Han,
+      Hangul,
+      Hiragana,
+      Katakana,
+      Yi
+  <dt>clustered scripts</dt>
+    <dd>
+      Khmer,
+      Lao,
+      Myanmar,
+      Thai
+      <span class="issue">This list is likely incomplete. What else fits here?</span>
+  <dt>connected scripts</dt>
+    <dd>
+      Bengali,
+      Brahmi,
+      Devanagari,
+      Gujarati,
+      Gurmukhi,
+      Kannada,
+      Malayalam,
+      Oriya?,
+      Ogham,
+      Tamil,
+      Telugu
+  <dt>cursive scripts</dt>
+    <dd>
+      Arabic,
+      Mongolian,
+      N'Ko?,
+      Phags Pa?,
+      Syriac
+  <dt>discrete scripts</dt>
+    <dd>
+      Armenian,
+      Bamum?,
+      Braille,
+      Canadian Aboriginal,
+      Cherokee,
+      Coptic,
+      Cyrillic,
+      Deseret,
+      Ethiopic
+      Greek,
+      Hebrew,
+      Kharoshthi,
+      Latin,
+      Lisu,
+      Osmanya,
+      Shavian,
+      Tifinagh,
+      Vai?
+</dl>
+
+<p>UAs should treat unrecognized scripts as <i>discrete</i>.
+
+<p class="issue">This listing should ideally be exhaustive wrt Unicode.
+Please <a href="#status">send</a> suggestions and corrections to the CSS
+Working Group. (As described <a href="#script-groups">above</a>, the
+grouping is primarily based on justification behavior.)</p>
+
+<h2 class="no-num">Appendix F: Full Property Index</h2>
+<!-- properties -->
+
+<h2 class="no-num" id="index">Appendix I: Index</h2>
 <!--index-->
 
 </body>

Received on Saturday, 19 March 2011 07:41:32 UTC