csswg/css3-text Overview.html,1.144,1.145 Overview.src.html,1.242,1.243

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

Modified Files:
	Overview.html Overview.src.html 
Log Message:
Clarifications to text-justify per F2F notes, first pass

Index: Overview.html
===================================================================
RCS file: /sources/public/csswg/css3-text/Overview.html,v
retrieving revision 1.144
retrieving revision 1.145
diff -u -d -r1.144 -r1.145
--- Overview.html	23 Jun 2011 18:01:51 -0000	1.144
+++ Overview.html	28 Jun 2011 22:45:26 -0000	1.145
@@ -84,14 +84,14 @@
 
    <h1>CSS Text Level 3</h1>
 
-   <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 23 June 2011</h2>
+   <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 28 June 2011</h2>
 
    <dl>
     <dt>This version:
 
     <dd><a href="http://dev.w3.org/csswg/css3-text/Overview.html">$Date:
-     2011/06/17 14:19:47 $ (CVS $Revision$)</a> <!--
-      <dd><a href="http://www.w3.org/TR/2011/WD-css3-text-20110623/">http://www.w3.org/TR/2011/WD-css3-text-20110623/</a></dd>
+     2011/06/23 18:01:52 $ (CVS $Revision$)</a> <!--
+      <dd><a href="http://www.w3.org/TR/2011/WD-css3-text-20110628/">http://www.w3.org/TR/2011/WD-css3-text-20110628/</a></dd>
     -->
      
 
@@ -607,8 +607,8 @@
     <tr>
      <th>Value:
 
-     <td>none | [ [ capitalize | uppercase | lowercase ] || fullwidth ||
-      fullsize-kana ]
+     <td>none | [ [ capitalize | uppercase | lowercase ] || full-width ||
+      full-size-kana ]
 
     <tr>
      <th>Initial:
@@ -665,15 +665,15 @@
 
    <dd>Puts all characters in lowercase.
 
-   <dt><dfn id=fullwidth
-    title="text-transform:fullwidth"><code>fullwidth</code></dfn>
+   <dt><dfn id=full-width
+    title="text-transform:full-width"><code>full-width</code></dfn>
 
    <dd>Puts all characters in fullwidth form. If the character does not have
     a corresponding fullwidth form, it is left as is. This value is typically
     used to typeset Latin characters and digits like ideographic characters.
 
-   <dt><dfn id=fullsize-kana
-    title="text-transform:fullsize-kana"><code>fullsize-kana</code></dfn>
+   <dt><dfn id=full-size-kana
+    title="text-transform:full-size-kana"><code>full-size-kana</code></dfn>
 
    <dd>Converts all small Kana characters to normal Kana. This value is
     typically used for ruby annotation text, where all small Kana should be
@@ -737,7 +737,7 @@
 
   <p>Text transformation happens after <a href="#white-space-rules">white
    space processing</a>. (This only matters when &lsquo;<code
-   class=css>fullwidth</code>&rsquo; transforms U+0020 space characters to
+   class=css>full-width</code>&rsquo; transforms U+0020 space characters to
    U+3000.) <span class=issue>This requirement may need to be relaxed during
    CR, so mark at-risk.</span>
 
@@ -2923,17 +2923,18 @@
    id=expansion-opportunities>expansion opportunities</dfn> as points where
    the justification algorithm may alter spacing within the text. These
    expansion opportunities fall into priority levels as defined by the
-   justification method. Within a line, higher priority expansion
-   opportunities should be expanded or compressed to their limits before
-   lower priority expansion opportunities are adjusted. (Expansion and
-   compression limits are given by the <a
-   href="#letter-spacing">letter-spacing</a> and <a
-   href="#word-spacing">word-spacing</a> properties.)
+   justification method. Within a line, expansion and compression should
+   primarily target the first-priority expansion opportunities; lower
+   priority expansion opportunities are adjusted at a lower priority as
+   needed.
 
-  <p>How any remaining space is distributed once all expansion opportunities
-   reach their limits is up to the UA. If the inline contents of a line
-   cannot be stretched to the full width of the line box, then they must be
-   aligned as specified by the &lsquo;<a href="#text-align-last0"><code
+  <p>Expansion and compression limits are given by the <a
+   href="#letter-spacing">letter-spacing</a> and <a
+   href="#word-spacing">word-spacing</a> properties. How any remaining space
+   is distributed once all expansion opportunities reach their limits is up
+   to the UA. If the inline contents of a line cannot be stretched to the
+   full width of the line box, then they must be aligned as specified by the
+   &lsquo;<a href="#text-align-last0"><code
    class=property>text-align-last</code></a>&rsquo; property. (If &lsquo;<a
    href="#text-align-last0"><code
    class=property>text-align-last</code></a>&rsquo; is &lsquo;<code
@@ -2945,333 +2946,189 @@
 
   <p>The expansion opportunity priorities for values of &lsquo;<a
    href="#text-justify0"><code class=property>text-justify</code></a>&rsquo;
-   are given in the table below. Space must be distributed evenly among all
-   types of expansion opportunities in a given prioritization 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 categories</a>. In the table below, An
-   expansion opportunity exists between two <a
-   href="#grapheme-cluster">grapheme clusters</a> when at least one of them
-   belongs to the affected script category and the spacing that point has not
-   already been altered at a higher priority.
+   are given in the table below. Since justification behavior varies by
+   writing system, expansion opportunities are organized by <a
+   href="#script-groups">script categories</a>. Word separators (spaces) and
+   punctuation are treated specially.
 
   <table class=data>
    <caption>Prioritization of Expansion Points</caption>
 
-   <colgroup></colgroup>
-
-   <colgroup span=2></colgroup>
-
-   <colgroup span=2></colgroup>
-
-   <colgroup span=2></colgroup>
-
-   <colgroup span=2></colgroup>
-
-   <colgroup span=3></colgroup>
-
-   <colgroup span=3></colgroup>
-
-   <colgroup span=1></colgroup>
-
    <thead>
     <tr>
-     <th scope=row>method:
-
-     <th colspan=2>inter-word
-
-     <th colspan=2>inter-ideograph
-
-     <th colspan=2>distribute
-
-     <th colspan=2>inter-cluster
-
-     <th colspan=3>kashida
-
-     <th colspan=2>auto
-
-    <tr>
-     <th scope=row>priority:
-
-     <th>1st
-
-     <th>2nd
-
-     <th>1st
-
-     <th>2nd
-
-     <th>1st
-
-     <th>2nd
-
-     <th>1st
+     <th scope=row>
 
-     <th>2nd
+     <th>&lsquo;<code class=css>inter-word</code>&rsquo;
 
-     <th>1st
+     <th>&lsquo;<code class=css>inter-ideograph</code>&rsquo;
 
-     <th>2nd
+     <th>&lsquo;<code class=css>distribute</code>&rsquo;
 
-     <th>3rd
+     <th>&lsquo;<code class=css>inter-cluster</code>&rsquo;
 
-     <th>1st
+     <th>&lsquo;<code class=css>kashida</code>&rsquo;
 
-     <th>2nd
+     <th>&lsquo;<code class=css>auto</code>&rsquo;
 
    <tbody>
     <tr>
      <th scope=row>spaces
 
-     <td>&#8226;
-
-     <td>
-
-     <td>&#8226;
-
-     <td>
-
-     <td>&#8226;
-
-     <td>
-
-     <td>&#8226;
-
-     <td>
+     <td><strong>1</strong>
 
-     <td>
+     <td><strong>1</strong>
 
-     <td>&#8226;
+     <td><strong>1</strong>
 
-     <td>
+     <td><strong>1</strong>
 
-     <td>¿?
+     <td>2
 
-     <td>
+     <td><strong>1</strong>*
 
     <tr>
-     <th scope=row><a href=block-scripts>block</a>
-
-     <td>
-
-     <td>&#8226;
-
-     <td>&#8226;
-
-     <td>
-
-     <td>&#8226;
-
-     <td>
-
-     <td>
+     <th scope=row><a href="#block-scripts">block</a>
 
-     <td>&#8226;
+     <td>2
 
-     <td>
+     <td><strong>1</strong>
 
-     <td>
+     <td>2
 
-     <td>&#8226;
+     <td>2
 
-     <td>¿?
+     <td>3
 
-     <td>
+     <td><strong>1</strong>*
 
     <tr>
-     <th scope=row><a href=clustered-scripts>clustered</a>
-
-     <td>
-
-     <td>&#8226;
-
-     <td>
-
-     <td>&#8226;
-
-     <td>&#8226;
-
-     <td>
-
-     <td>&#8226;
+     <th scope=row><a href="#clustered-scripts">clustered</a>
 
-     <td>
+     <td>2
 
-     <td>
+     <td>2
 
-     <td>
+     <td><strong>1</strong>
 
-     <td>&#8226;
+     <td><strong>1</strong>
 
-     <td>¿?
+     <td>3
 
-     <td>
+     <td><strong>1</strong>*
 
     <tr>
-     <th scope=row><a href=cursive-scripts>cursive</a>
-
-     <td>
-
-     <td>&#8226;
-
-     <td>
-
-     <td>&#8226;
-
-     <td>
-
-     <td>&#8226;
-
-     <td>
+     <th scope=row><a href="#cursive-scripts">cursive</a>
 
-     <td>&#8226;
+     <td>2
 
-     <td>&#8226;
+     <td>2
 
-     <td>
+     <td>2
 
-     <td>
+     <td>2
 
-     <td>
+     <td><strong>1</strong>
 
-     <td>¿?
+     <td>2*
 
     <tr>
-     <th scope=row>discrete
-
-     <td>
-
-     <td>&#8226;
-
-     <td>
-
-     <td>&#8226;
-
-     <td>&#8226;
-
-     <td>
-
-     <td>
+     <th scope=row><a href="#discrete-scripts">discrete</a>
 
-     <td>&#8226;
+     <td>2
 
-     <td>
+     <td>2
 
-     <td>
+     <td><strong>1</strong>
 
-     <td>&#8226;
+     <td>2
 
-     <td>
+     <td>3
 
-     <td>¿?
+     <td>2*
 
     <tr>
      <th scope=row><a href=connected-scripts>connected</a>
 
-     <td>
-
-     <td>
-
-     <td>
-
-     <td>
-
-     <td>
-
-     <td>
-
-     <td>
-
-     <td>
+     <td>never
 
-     <td>
+     <td>never
 
-     <td>
+     <td>never
 
-     <td>
+     <td>never
 
-     <td>
+     <td>never
 
-     <td>
+     <td>never
 
     <tr>
      <th scope=row>punctuation
 
-     <td>
-
-     <td>&#8226;
-
-     <td>&#8226;
-
-     <td>
-
-     <td>&#8226;
+     <td>2
 
-     <td>
+     <td><strong>1</strong>
 
-     <td><span class=issue>???</span>
+     <td><strong>1</strong>
 
      <td><span class=issue>???</span>
 
-     <td>
-
-     <td>
-
-     <td>&#8226;
-
-     <td>¿?
+     <td>3
 
-     <td>¿?
+     <td>*
   </table>
 
-  <p class=note>The &lsquo;<code class=css>auto</code>&rsquo; column defined
-   above is informative.
-
-  <p>For the expansion opportunities in the <i>cursive</i> category, words
-   may be expanded through kashida elongation or other cursive expansion
-   processes. Kashida may be applied in discrete units or continuously, and
-   the prioritization of kashida points is UA-dependent: for example, the UA
-   may apply more at the end of the line. The UA should not apply kashida to
-   fonts for which it is inappropriate. It may instead rely on other
-   justification methods that lengthen or shorten Arabic segments (e.g. by
-   substituting in swash forms or optional ligatures). Because elongation
-   rules depend on the typeface style, the UA should rely on on the font
-   whenever possible rather than inserting kashida based on a
-   font-independent ruleset. The UA should limit elongation so that, e.g. in
-   multi-script lines a short stretch of Arabic will not be forced to soak up
-   too much of the extra space by itself. If the UA does not support cursive
-   elongation, then no expansion points exist between grapheme clusters of
-   these scripts.
+  <p id=auto-justify>* The &lsquo;<code class=css>auto</code>&rsquo; column
+   defined above is informative; it suggests a prioritization that presents a
+   universal compromise among justification methods.
 
-  <p class=note> No expansion opportunities occur between pairs of connected
-   script grapheme clusters. <span class=issue>Is this correct?</span>
+  <p>An expansion opportunity between two <a
+   href="#grapheme-cluster">grapheme clusters</a> is assigned to a priority
+   level when at least one of them belongs to a script category at that level
+   and the other does not belong to a higher priority level.
 
-  <p>The <dfn id=spaces title=spaces-category>spaces</dfn> category defines
-   an expansion opportunity at spaces and other <a
+  <p>The <dfn id=spaces title=spaces-category>spaces</dfn> category
+   represents expansion opportunities at spaces and other <a
    href="#word-separator">word separators</a>. (See <a
    href="#word-spacing">&lsquo;<code
    class=property>word-spacing</code>&rsquo;</a>.)
 
-  <p>The <dfn id=punctuation-symbols>punctuation</dfn> category defines the
-   expansion opportunities existing between any pair of characters from the
-   Unicode symbols (S*) and punctuation (P*) classes and at enabled <a
-   href="#text-autospace">autospace</a> points. <span class=issue>the
+  <p>The <dfn id=punctuation-symbols>punctuation</dfn> category represents
+   the expansion opportunities existing at or between any pair of characters
+   from the Unicode symbols (S*) and punctuation (P*) classes and at enabled
+   <a href="#text-autospace">autospace</a> points. <span class=issue>the
    relationship of expansion opportunity and &lsquo;<a
    href="#text-spacing"><code class=property>text-spacing</code></a>&rsquo;
-   needs more review</span> The default justification priority of these
-   points depends on the justification method as defined above; however there
-   may be additional rules controlling their justification behavior due to
+   needs more review</span>
+
+  <p>In general justification priority of points in the spaces and
+   punctuation categories is as defined above; however there may be
+   additional rules controlling their justification behavior due to
    typographic tradition. For example, there are traditionally no expansion
    opportunities between consecutive EM DASH U+2014, HORIZONTAL BAR U+2015,
    HORIZONTAL ELLIPSIS U+2026, or TWO DOT LEADER U+2025 characters <a
    href="#JLREQ" rel=biblioentry>[JLREQ]<!--{{JLREQ}}--></a>. The UA may
    introduce additional levels of prioritization to handle expansion
-   opportunities involving punctuation.
+   opportunities involving word separators and punctuation.
+
+  <p>For <i>cursive</i> expansion, words may be expanded through kashida
+   elongation or other cursive expansion processes. Kashida may be applied in
+   discrete units or continuously, and the prioritization of kashida points
+   is UA-dependent: for example, the UA may apply more at the end of the
+   line. The UA should not apply kashida to fonts for which it is
+   inappropriate. It may instead rely on other justification methods that
+   lengthen or shorten Arabic segments (e.g. by substituting in swash forms
+   or optional ligatures). Because elongation rules depend on the typeface
+   style, the UA should rely on on the font whenever possible rather than
+   inserting kashida based on a font-independent ruleset. The UA should limit
+   elongation so that, e.g. in multi-script lines a short stretch of Arabic
+   will not be forced to soak up too much of the extra space by itself. If
+   the UA does not support cursive elongation, then, as with connected
+   scripts, no expansion points exist between grapheme clusters of these
+   scripts.
 
   <p>The UA may enable or break optional ligatures or use other font features
-   such as alternate glyphs to help justify the text under any method. This
-   behavior is not defined by CSS.
+   such as alternate glyphs or glyph compression to help justify the text
+   under any method. This behavior is not controlled by this level of CSS.
 
   <div class=example>
    <p>3.8 Line Adjustment in <a href="#JLREQ"
@@ -5673,13 +5530,14 @@
   <h2 class=no-num id=acknowledgements> 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,
-   Laurie Anna Edlund, Ben Errez, Yaniv Feinberg, Arye Gittelman, Ian
-   Hickson, Martin Heijdra, Richard Ishida, Koji Ishii, Masayasu Ishikawa,
+   Ayman Aldahleh, Bert Bos, Tantek Çelik, Stephen Deach, John Daggett,
+   Martin Dürst, Laurie Anna Edlund, Ben Errez, Yaniv Feinberg, Arye
+   Gittelman, Ian Hickson, Martin Heijdra, Richard Ishida, Masayasu Ishikawa,
    Michael Jochimsen, Eric LeVine, Ambrose Li, Håkon Wium Lie, Chris Lilley,
-   Ken Lunde, Shinyu Murakami, Paul Nelson, Chris Pratley, Marcin Sawicki,
-   Arnold Schrijver, Rahul Sonnad, Michel Suignard, Takao Suzuki, Frank Tang,
-   Chris Thrasher, Etan Wexler, Chris Wilson, Masafumi Yabe and Steve Zilles.
+   Ken Lunde, Nat McCully, Shinyu Murakami, Paul Nelson, Chris Pratley,
+   Marcin Sawicki, Arnold Schrijver, Rahul Sonnad, Michel Suignard, Takao
+   Suzuki, Frank Tang, Chris Thrasher, Etan Wexler, Chris Wilson, Masafumi
+   Yabe and Steve Zilles.
 
   <h2 class=no-num id=appendix-b-references>Appendix B: References</h2>
 
@@ -6768,8 +6626,8 @@
     <tr>
      <td><a class=property href="#text-transform0">text-transform</a>
 
-     <td>none | [ [ capitalize | uppercase | lowercase ] || fullwidth ||
-      fullsize-kana ]
+     <td>none | [ [ capitalize | uppercase | lowercase ] || full-width ||
+      full-size-kana ]
 
      <td>none
 
@@ -7283,11 +7141,11 @@
    <li>text-transform:capitalize, <a href="#capitalize"
     title="text-transform:capitalize"><strong>3.1.</strong></a>
 
-   <li>text-transform:fullsize-kana, <a href="#fullsize-kana"
-    title="text-transform:fullsize-kana"><strong>3.1.</strong></a>
+   <li>text-transform:full-size-kana, <a href="#full-size-kana"
+    title="text-transform:full-size-kana"><strong>3.1.</strong></a>
 
-   <li>text-transform:fullwidth, <a href="#fullwidth"
-    title="text-transform:fullwidth"><strong>3.1.</strong></a>
+   <li>text-transform:full-width, <a href="#full-width"
+    title="text-transform:full-width"><strong>3.1.</strong></a>
 
    <li>text-transform:lowercase, <a href="#lowercase"
     title="text-transform:lowercase"><strong>3.1.</strong></a>

Index: Overview.src.html
===================================================================
RCS file: /sources/public/csswg/css3-text/Overview.src.html,v
retrieving revision 1.242
retrieving revision 1.243
diff -u -d -r1.242 -r1.243
--- Overview.src.html	23 Jun 2011 18:01:52 -0000	1.242
+++ Overview.src.html	28 Jun 2011 22:45:27 -0000	1.243
@@ -290,7 +290,7 @@
         <tr>
           <th>Value:</th>
           <td>none |
-            [ [ capitalize | uppercase | lowercase ] || fullwidth || fullsize-kana ]
+            [ [ capitalize | uppercase | lowercase ] || full-width || full-size-kana ]
           </td>
         </tr>
         <tr>
@@ -333,13 +333,13 @@
         <dd>Puts all characters in uppercase.</dd>
       <dt><dfn title="text-transform:lowercase"><code>lowercase</code></dfn></dt>
         <dd>Puts all characters in lowercase.</dd>
-      <dt><dfn title="text-transform:fullwidth"><code>fullwidth</code></dfn></dt>
+      <dt><dfn title="text-transform:full-width"><code>full-width</code></dfn></dt>
         <dd>Puts all characters in fullwidth form.
           If the character does not have a corresponding fullwidth form,
           it is left as is.
           This value is typically used to typeset Latin characters and digits
           like ideographic characters.
-      <dt><dfn title="text-transform:fullsize-kana"><code>fullsize-kana</code></dfn></dt>
+      <dt><dfn title="text-transform:full-size-kana"><code>full-size-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.
@@ -388,7 +388,7 @@
     </ol>
 
     <p>Text transformation happens after <a href="#white-space-rules">white
-      space processing</a>. (This only matters when ''fullwidth'' transforms
+      space processing</a>. (This only matters when ''full-width'' transforms
       U+0020 space characters to U+3000.) <span class="issue">This requirement
       may need to be relaxed during CR, so mark at-risk.</span>
 
@@ -2081,14 +2081,15 @@
     <p id="expansion-opportunity">CSS defines <dfn>expansion opportunities</dfn>
       as points where the justification algorithm may alter spacing within
       the text. These expansion opportunities fall into priority
-      levels as defined by the justification method.
-      Within a line, higher priority expansion opportunities should be
-      expanded or compressed to their limits before lower priority
-      expansion opportunities are adjusted. (Expansion and compression
-      limits are given by the <a href="#letter-spacing">letter-spacing</a>
-      and <a href="#word-spacing">word-spacing</a> properties.)</p>
+      levels as defined by the justification method. Within a line, expansion
+      and compression should primarily target the first-priority expansion
+      opportunities; lower priority expansion opportunities are adjusted at a
+      lower priority as needed.
 
-    <p>How any remaining space is distributed once all expansion opportunities
+      <p>Expansion and compression limits are given by the
+      <a href="#letter-spacing">letter-spacing</a>
+      and <a href="#word-spacing">word-spacing</a> properties.
+      How any remaining space is distributed once all expansion opportunities
       reach their limits is up to the UA. If the inline contents of a line
       cannot be stretched to the full width of the line box, then they must be
       aligned as specified by the 'text-align-last' property. (If
@@ -2097,220 +2098,125 @@
       otherwise.)</p>
 
     <p>The expansion opportunity priorities for values of 'text-justify'
-      are given in the table below. Space must be distributed evenly
-      among all types of expansion opportunities in a given prioritization
-      group, but may vary within a line due to changes in the font or
-      letter-spacing and word-spacing values. Since justification behavior
+      are given in the table below. Since justification behavior
       varies by writing system, expansion opportunities are organized by
-      <a href="#script-groups">script categories</a>. In the table below,
-      An expansion opportunity exists between two
-      <a href="#grapheme-cluster">grapheme clusters</a> when at least
-      one of them belongs to the affected script category and the spacing
-      that point has not already been altered at a higher priority.
+      <a href="#script-groups">script categories</a>. Word separators
+      (spaces) and punctuation are treated specially.
 
     <table class="data">
       <caption>Prioritization of Expansion Points</caption>
-      <colgroup></colgroup>
-      <colgroup span=2></colgroup>
-      <colgroup span=2></colgroup>
-      <colgroup span=2></colgroup>
-      <colgroup span=2></colgroup>
-      <colgroup span=3></colgroup>
-      <colgroup span=3></colgroup>
-      <colgroup span=1></colgroup>
       <thead>
         <tr>
-          <th scope="row">method:</th>
-          <th colspan="2">inter-word</th>
-          <th colspan="2">inter-ideograph</th>
-          <th colspan="2">distribute</th>
-          <th colspan="2">inter-cluster</th>
-          <th colspan="3">kashida</th>
-          <th colspan="2">auto</th>
-        </tr>
-        <tr>
-          <th scope="row">priority:</th>
-
-          <th>1st</th>
-          <th>2nd</th>
-
-          <th>1st</th>
-          <th>2nd</th>
-
-          <th>1st</th>
-          <th>2nd</th>
-
-          <th>1st</th>
-          <th>2nd</th>
-
-          <th>1st</th>
-          <th>2nd</th>
-          <th>3rd</th>
-
-          <th>1st</th>
-          <th>2nd</th>
+          <th scope="row"></th>
+          <th>''inter-word''</th>
+          <th>''inter-ideograph''</th>
+          <th>''distribute''</th>
+          <th>''inter-cluster''</th>
+          <th>''kashida''</th>
+          <th>''auto''</th>
         </tr>
       </thead>
       <tbody>
         <tr>
           <th scope="row">spaces</th>
-          <td>&#8226;</td>
-          <td></td>
-
-          <td>&#8226;</td>
-          <td></td>
-
-          <td>&#8226;</td>
-          <td></td>
-
-          <td>&#8226;</td>
-          <td></td>
-
-          <td></td>
-          <td>&#8226;</td>
-          <td></td>
-
-          <td>¿?</td>
-          <td></td>
+          <td><strong>1</strong></td>
+          <td><strong>1</strong></td>
+          <td><strong>1</strong></td>
+          <td><strong>1</strong></td>
+          <td>2</td>
+          <td><strong>1</strong>*</td>
         </tr>
 
         <tr>
-          <th scope="row"><a href="block-scripts">block</a></th>
-          <td></td>
-          <td>&#8226;</td>
-
-          <td>&#8226;</td>
-          <td></td>
-
-          <td>&#8226;</td>
-          <td></td>
-
-          <td></td>
-          <td>&#8226;</td>
-
-          <td></td>
-          <td></td>
-          <td>&#8226;</td>
-
-          <td>¿?</td>
-          <td></td>
+          <th scope="row"><a href="#block-scripts">block</a></th>
+          <td>2</td>
+          <td><strong>1</strong></td>
+          <td>2</td>
+          <td>2</td>
+          <td>3</td>
+          <td><strong>1</strong>*</td>
         </tr>
 
         <tr>
-          <th scope="row"><a href="clustered-scripts">clustered</a></th>
-          <td></td>
-          <td>&#8226;</td>
-
-          <td></td>
-          <td>&#8226;</td>
-
-          <td>&#8226;</td>
-          <td></td>
-
-          <td>&#8226;</td>
-          <td></td>
-
-          <td></td>
-          <td></td>
-          <td>&#8226;</td>
-
-          <td>¿?</td>
-          <td></td>
+          <th scope="row"><a href="#clustered-scripts">clustered</a></th>
+          <td>2</td>
+          <td>2</td>
+          <td><strong>1</strong></td>
+          <td><strong>1</strong></td>
+          <td>3</td>
+          <td><strong>1</strong>*</td>
         </tr>
 
         <tr>
-          <th scope="row"><a href="cursive-scripts">cursive</a></th>
-          <td></td>
-          <td>&#8226;</td>
-
-          <td></td>
-          <td>&#8226;</td>
-
-          <td></td>
-          <td>&#8226;</td>
-
-          <td></td>
-          <td>&#8226;</td>
-
-          <td>&#8226;</td>
-          <td></td>
-          <td></td>
-
-          <td></td>
-          <td>¿?</td>
+          <th scope="row"><a href="#cursive-scripts">cursive</a></th>
+          <td>2</td>
+          <td>2</td>
+          <td>2</td>
+          <td>2</td>
+          <td><strong>1</strong></td>
+          <td>2*</td>
         </tr>
 
         <tr>
-          <th scope="row">discrete</th>
-          <td></td>
-          <td>&#8226;</td>
-
-          <td></td>
-          <td>&#8226;</td>
-
-          <td>&#8226;</td>
-          <td></td>
-
-          <td></td>
-          <td>&#8226;</td>
-
-          <td></td>
-          <td></td>
-          <td>&#8226;</td>
-
-          <td></td>
-          <td>¿?</td>
+          <th scope="row"><a href="#discrete-scripts">discrete</a></th>
+          <td>2</td>
+          <td>2</td>
+          <td><strong>1</strong></td>
+          <td>2</td>
+          <td>3</td>
+          <td>2*</td>
         </tr>
 
         <tr>
           <th scope="row"><a href="connected-scripts">connected</a></th>
-          <td></td>
-          <td></td>
-
-          <td></td>
-          <td></td>
-
-          <td></td>
-          <td></td>
-
-          <td></td>
-          <td></td>
-
-          <td></td>
-          <td></td>
-          <td></td>
-
-          <td></td>
-          <td></td>
+          <td>never</td>
+          <td>never</td>
+          <td>never</td>
+          <td>never</td>
+          <td>never</td>
+          <td>never</td>
         </tr>
         <tr>
           <th scope="row">punctuation</th>
-
-          <td></td>
-          <td>&#8226;</td>
-
-          <td>&#8226;</td>
-          <td></td>
-
-          <td>&#8226;</td>
-          <td></td>
-
-          <td><span class="issue">???</span></td>
+          <td>2</td>
+          <td><strong>1</strong></td>
+          <td><strong>1</strong></td>
           <td><span class="issue">???</span></td>
-
-          <td></td>
-          <td></td>
-          <td>&#8226;</td>
-
-          <td>¿?</td>
-          <td>¿?</td>
+          <td>3</td>
+          <td>*</td>
         </tr>
       </tbody>
     </table>
 
-    <p class="note">The ''auto'' column defined above is informative.</p>
+    <p id="auto-justify">* The ''auto'' column defined above is informative; it
+      suggests a prioritization that presents a universal compromise among
+      justification methods.</p>
+    <p>An expansion opportunity between two
+      <a href="#grapheme-cluster">grapheme clusters</a> is assigned to a
+      priority level when at least one of them belongs to a script
+      category at that level and the other does not belong to a higher
+      priority level.
+    <p>The <dfn title="spaces-category">spaces</dfn> category represents
+      expansion opportunities at spaces and other
+      <a href="#word-separator">word separators</a>. (See
+      <a href="#word-spacing">'word-spacing'</a>.)
+    <p>The <dfn id="punctuation-symbols">punctuation</dfn> category represents
+      the expansion opportunities existing at or between any pair of characters
+      from the Unicode symbols (S*) and punctuation (P*) classes and
+      at enabled <a href="#text-autospace">autospace</a> points.
+          <span class="issue">the relationship of expansion opportunity
+            and 'text-spacing' needs more review</span>
+    <p>In general justification priority of points in the spaces and punctuation
+      categories is as defined above; however there may be
+      additional rules controlling their justification behavior due to
+      typographic tradition.
+      For example, there are traditionally no expansion opportunities
+      between consecutive EM DASH U+2014, HORIZONTAL BAR U+2015, HORIZONTAL
+      ELLIPSIS U+2026, or TWO DOT LEADER U+2025 characters [[JLREQ]].
+      The UA may introduce additional levels of prioritization to handle
+      expansion opportunities involving word separators and punctuation.</p>
 
-    <p>For the expansion opportunities in the <i>cursive</i> category,
+    <p>For <i>cursive</i> expansion,
       words may be expanded through kashida elongation or other cursive
       expansion processes. Kashida may be applied in discrete units or
       continuously, and the prioritization of kashida points is UA-dependent:
@@ -2324,36 +2230,13 @@
       should limit elongation so that, e.g. in multi-script lines a short
       stretch of Arabic will not be forced to soak up too much of the
       extra space by itself. If the UA does not support cursive elongation,
-      then no expansion points exist between grapheme clusters of these
-      scripts.
-
-    <p class="note">
-      No expansion opportunities occur between pairs of connected script
-      grapheme clusters. <span class="issue">Is this correct?</span>
-
-    <p>The <dfn title="spaces-category">spaces</dfn> category defines an
-      expansion opportunity at spaces and other
-      <a href="#word-separator">word separators</a>. (See
-      <a href="#word-spacing">'word-spacing'</a>.)
-    <p>The <dfn id="punctuation-symbols">punctuation</dfn> category defines
-      the expansion opportunities existing between any pair of characters
-      from the Unicode symbols (S*) and punctuation (P*) classes and
-      at enabled <a href="#text-autospace">autospace</a> points.
-          <span class="issue">the relationship of expansion opportunity
-            and 'text-spacing' needs more review</span>
-      The default justification priority of these points depends on the
-      justification method as defined above; however there may be
-      additional rules controlling their justification behavior due to
-      typographic tradition.
-      For example, there are traditionally no expansion opportunities
-      between consecutive EM DASH U+2014, HORIZONTAL BAR U+2015, HORIZONTAL
-      ELLIPSIS U+2026, or TWO DOT LEADER U+2025 characters [[JLREQ]].
-      The UA may introduce additional levels of prioritization to handle
-      expansion opportunities involving punctuation.</p>
+      then, as with connected scripts, no expansion points exist between
+      grapheme clusters of these scripts.
 
     <p>The UA may enable or break optional ligatures or use other font
-      features such as alternate glyphs to help justify the text under
-      any method. This behavior is not defined by CSS.</p>
+      features such as alternate glyphs or glyph compression to help
+      justify the text under any method. This behavior is not controlled by
+      this level of CSS.</p>
 
     <div class="example">
       <p>3.8 Line Adjustment in [[JLREQ]] gives an example of a set of rules for
@@ -4332,11 +4215,12 @@
   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,
+    Ayman Aldahleh, Bert Bos, Tantek Çelik, Stephen Deach, John Daggett,
+    Martin Dürst,
     Laurie Anna Edlund, Ben Errez, Yaniv Feinberg, Arye Gittelman, Ian
-    Hickson, Martin Heijdra, Richard Ishida, Koji Ishii, Masayasu Ishikawa,
+    Hickson, Martin Heijdra, Richard Ishida, Masayasu Ishikawa,
     Michael Jochimsen, Eric LeVine, Ambrose Li, Håkon Wium Lie, Chris Lilley,
-    Ken Lunde, Shinyu Murakami, Paul Nelson, Chris Pratley, Marcin Sawicki,
+    Ken Lunde, Nat McCully, Shinyu Murakami, Paul Nelson, Chris Pratley, Marcin Sawicki,
     Arnold Schrijver, Rahul Sonnad, Michel Suignard, Takao Suzuki,
     Frank Tang, Chris Thrasher, Etan Wexler, Chris Wilson, Masafumi Yabe
     and Steve Zilles.</p>

Received on Tuesday, 28 June 2011 22:45:31 UTC