[css3-text] Remove inter-ideograph, inter-cluster, kashida values of text-justify per WG resolution. Clarify auto with more examples.

Wed, 06 Feb 2013 23:24:18 -0800

author
fantasai <fantasai.cvs@inkedblade.net>
date
Wed, 06 Feb 2013 23:24:18 -0800
changeset 7380
790a542ad0d1
parent 7379
48fbc5e00d1f
child 7381
06244e910e27

[css3-text] Remove inter-ideograph, inter-cluster, kashida values of text-justify per WG resolution. Clarify auto with more examples.

css3-text/Overview.html file | annotate | diff | comparison | revisions
css3-text/Overview.src.html file | annotate | diff | comparison | revisions
     1.1 --- a/css3-text/Overview.html	Wed Feb 06 21:45:19 2013 -0800
     1.2 +++ b/css3-text/Overview.html	Wed Feb 06 23:24:18 2013 -0800
     1.3 @@ -177,8 +177,7 @@
     1.4      class=property>text-align</code></a>’
     1.5  
     1.6     <li>the ‘<a href="#text-justify0"><code
     1.7 -    class=property>text-justify</code></a>’ property, particularly its
     1.8 -    ‘<code class=css>kashida</code>’ value
     1.9 +    class=property>text-justify</code></a>’ property
    1.10  
    1.11     <li>the percentage values of ‘<a href="#word-spacing0"><code
    1.12      class=property>word-spacing</code></a>’
    1.13 @@ -333,8 +332,8 @@
    1.14  
    1.15     <li class=no-num><a href="#changes">Appendix C: Changes</a>
    1.16      <ul class=toc>
    1.17 -     <li class=no-num><a href="#recent-changes"> Changes from the August 2012
    1.18 -      CSS3 Text <abbr title="Working Draft">WD</abbr></a>
    1.19 +     <li class=no-num><a href="#recent-changes"> Changes from the November
    1.20 +      2012 CSS3 Text <abbr title="Working Draft">WD</abbr></a>
    1.21      </ul>
    1.22  
    1.23     <li class=no-num><a href="#default-stylesheet"> Appendix D: Default UA
    1.24 @@ -2088,8 +2087,7 @@
    1.25      <tr>
    1.26       <th><a href="#values">Value</a>:
    1.27  
    1.28 -     <td>auto | none | inter-word | inter-ideograph | inter-cluster |
    1.29 -      distribute | kashida
    1.30 +     <td>auto | none | inter-word | distribute
    1.31  
    1.32      <tr>
    1.33       <th>Initial:
    1.34 @@ -2124,33 +2122,9 @@
    1.35  
    1.36    <p>This property selects the justification method used when a line's
    1.37     alignment is set to ‘<code class=css>justify</code>’ (see ‘<a
    1.38 -   href="#text-align0"><code class=property>text-align</code></a>’),
    1.39 -   primarily by controlling which scripts' characters are adjusted together
    1.40 -   or separately. The property applies to block containers, but the UA may
    1.41 -   (but is not required to) also support it on inline elements. It takes the
    1.42 -   following values:
    1.43 -
    1.44 -  <div class=figure id=fig-text-justify>
    1.45 -   <p> <img
    1.46 -    alt="Examples of text-justify values commonly used in East Asian scripts"
    1.47 -    class=example height=376 src=text-justify-east-asia.png width=491>
    1.48 -
    1.49 -   <p class=caption>Values of ‘<a href="#text-justify0"><code
    1.50 -    class=property>text-justify</code></a>’: ‘<code
    1.51 -    class=css>inter-word</code>’, ‘<code
    1.52 -    class=css>inter-cluster</code>’, ‘<code
    1.53 -    class=css>inter-ideograph</code>’, and ‘<code
    1.54 -    class=css>distribute</code>’
    1.55 -  </div>
    1.56 -
    1.57 -  <div class=figure id=fig-text-justify-kashida>
    1.58 -   <p> <img alt="One possible example of rendering for text-justify: kashida"
    1.59 -    class=example height=73 src=text-justify-kashida.png width=325>
    1.60 -
    1.61 -   <p class=caption>One possible example of rendering for ‘<a
    1.62 -    href="#text-justify0"><code class=property>text-justify</code></a>’:
    1.63 -    ‘<code class=css>kashida</code>’
    1.64 -  </div>
    1.65 +   href="#text-align0"><code class=property>text-align</code></a>’). The
    1.66 +   property applies to block containers, but the UA may (but is not required
    1.67 +   to) also support it on inline elements. It takes the following values:
    1.68  
    1.69    <dl>
    1.70     <dt><dfn id=auto2 title="text-justify:auto">‘<code
    1.71 @@ -2158,14 +2132,15 @@
    1.72  
    1.73     <dd>The UA determines the justification algorithm to follow, based on a
    1.74      balance between performance and adequate presentation quality.
    1.75 -    <p class=note>One possible algorithm is to determine the behavior based
    1.76 -     on the language of the paragraph: the UA can then choose appropriate
    1.77 -     value for the language, like ‘<code
    1.78 -     class=css>inter-ideograph</code>’ for CJK, or ‘<code
    1.79 -     class=css>inter-word</code>’ for English. Another possibility is to
    1.80 -     use a justification method that is a universal compromise for all
    1.81 -     scripts, e.g. the ‘<code class=css>inter-cluster</code>’ method with
    1.82 -     block scripts raised to first priority.
    1.83 +    <p class=note>One possible algorithm is to choose the appropriate
    1.84 +     justification behavior based on the language of the paragraph e.g.
    1.85 +     following <a href="#JLREQ" rel=biblioentry>[JLREQ]<!--{{JLREQ}}--></a>
    1.86 +     for Japanese, using cursive elongation for Arabic, using ‘<code
    1.87 +     class=css>inter-word</code>’ for English, etc. Another possibility is
    1.88 +     to use a justification method that is a simple universal compromise for
    1.89 +     all writing systems, such as primarily expanding <i>word separators</i>
    1.90 +     along with expanding between CJK and Southeast Asian <a
    1.91 +     href="#letter0"><i>letters</i></a>.
    1.92  
    1.93     <dt><dfn id=none1 title="text-justify:none">‘<code
    1.94      class=css>none</code>’</dfn>
    1.95 @@ -2177,44 +2152,57 @@
    1.96     <dt><dfn id=inter-word title="text-justify:inter-word">‘<code
    1.97      class=css>inter-word</code>’</dfn>
    1.98  
    1.99 -   <dd>Justification primarily changes spacing at word separators. This value
   1.100 -    is typically used for languages that separate words using spaces, like
   1.101 -    English or Korean.
   1.102 -
   1.103 -   <dt><dfn id=inter-ideograph
   1.104 -    title="text-justify:inter-ideographic">‘<code
   1.105 -    class=css>inter-ideograph</code>’</dfn>
   1.106 -
   1.107 -   <dd>Justification primarily changes spacing at word separators and between
   1.108 -    characters in <a href="#block-scripts">block scripts</a>. This value is
   1.109 -    typically used for <abbr title="Chinese/Japanese/Korean">CJK</abbr>
   1.110 -    languages.
   1.111 -
   1.112 -   <dt><dfn id=inter-cluster title="text-justify:inter-cluster">‘<code
   1.113 -    class=css>inter-cluster</code>’</dfn>
   1.114 -
   1.115 -   <dd>Justification primarily changes spacing at word separators and between
   1.116 -    characters in <a href="#clustered-scripts">clustered scripts</a>. This
   1.117 -    value is typically used for Southeast Asian scripts such as Thai.
   1.118 +   <dd>Justification primarily varies the used ‘<a
   1.119 +    href="#word-spacing0"><code class=property>word-spacing</code></a>’.
   1.120 +    This behavior is typical for languages that separate words using spaces,
   1.121 +    like English or Korean. <!--
   1.122 +      <dt><dfn title="text-justify:inter-ideographic">''inter-ideograph''</dfn></dt>
   1.123 +        <dd>Justification primarily changes spacing at word separators and
   1.124 +          between characters in <a href="#block-scripts">block scripts</a>.
   1.125 +          This value is typically used for <abbr title="Chinese/Japanese/Korean">CJK</abbr>
   1.126 +          languages.</dd>
   1.127 +      <dt><dfn title="text-justify:inter-cluster">''inter-cluster''</dfn></dt>
   1.128 +        <dd>Justification primarily changes spacing at word separators and
   1.129 +          between characters in <a href="#clustered-scripts">clustered
   1.130 +          scripts</a>.
   1.131 +          This value is typically used for Southeast Asian scripts such as Thai.</dd>
   1.132 +-->
   1.133  
   1.134     <dt><dfn id=distribute title="text-justify:distribute">‘<code
   1.135      class=css>distribute</code>’</dfn>
   1.136  
   1.137 -   <dd>Justification primarily changes spacing both at word separators and
   1.138 -    between characters in all scripts equally (except those in the connected
   1.139 -    and cursive categories). This value is sometimes used in e.g. Japanese.
   1.140 -
   1.141 -   <dt><a name=kashida-prop></a><a name=text-kashida-space></a> <dfn
   1.142 -    id=kashida title="text-justify:kashida">‘<code
   1.143 -    class=css>kashida</code>’</dfn>
   1.144 -
   1.145 -   <dd>Justification primarily stretches <a href="#cursive-scripts">cursive
   1.146 -    scripts</a> through the use of kashida or other calligraphic elongation.
   1.147 -    This value is <em>optional</em> for conformance to CSS3 Text. (UAs that
   1.148 -    do not support cursive elongation must <a
   1.149 -    href="http://www.w3.org/TR/css-2010/#partial">treat the value as
   1.150 -    invalid</a>.)
   1.151 +   <dd>Justification primarily varies the used ‘<a
   1.152 +    href="#letter-spacing0"><code class=property>letter-spacing</code></a>’
   1.153 +    (excepting between <a href="#letter0"><i>letters</i></a> in <a
   1.154 +    href="#cursive-scripts"><i>cursive scripts</i></a> such as Arabic). This
   1.155 +    value is sometimes used in e.g. Japanese.</dd>
   1.156 +   <!--
   1.157 +      <dt><a name="kashida-prop"></a><a name="text-kashida-space"></a>
   1.158 +        <dfn title="text-justify:kashida">''kashida''</dfn></dt>
   1.159 +        <dd>Justification primarily stretches
   1.160 +          <a href="#cursive-scripts">cursive scripts</a> through the use of
   1.161 +          kashida or other calligraphic elongation.
   1.162 +          This value is <em>optional</em> for conformance to CSS3 Text.
   1.163 +          (UAs that do not support cursive elongation must
   1.164 +          <a href="http://www.w3.org/TR/css-2010/#partial">treat the value
   1.165 +          as invalid</a>.)
   1.166 +-->
   1.167    </dl>
   1.168 +  <!--
   1.169 +      <div class="figure" id="fig-text-justify">
   1.170 +        <p>
   1.171 +          <img alt="Examples of text-justify values commonly used in East Asian scripts"
   1.172 +               class="example" src="text-justify-east-asia.png" height="376" width="491"></p>
   1.173 +        <p class="caption">Values of 'text-justify': ''inter-word'', ''auto'', and ''distribute''</p>
   1.174 +      </div>
   1.175 +
   1.176 +      <div class="figure" id="fig-text-justify-kashida">
   1.177 +        <p>
   1.178 +          <img alt="One possible example of rendering for Arabic justification"
   1.179 +               class="example" src="text-justify-arabic.png" height="73" width="325"></p>
   1.180 +        <p class="caption">One possible example of rendering for 'text-justify': ''auto''</p>
   1.181 +      </div>
   1.182 +-->
   1.183  
   1.184    <p>When justifying text, the user agent takes the remaining space between
   1.185     the ends of a line's contents and the edges of its line box, and
   1.186 @@ -2226,7 +2214,7 @@
   1.187     space, putting more content on the line than would otherwise fit under
   1.188     normal spacing conditions. The exact justification algorithm is
   1.189     UA-dependent; however, CSS provides some general guidelines which should
   1.190 -   be followed when any justification method other than ‘<a
   1.191 +   be followed when a justification method other than ‘<a
   1.192     href="#auto1"><code class=property>auto</code></a>’ is specified.
   1.193  
   1.194    <div class=note>
   1.195 @@ -2234,12 +2222,11 @@
   1.196      justification algorithm. They are merely a minimum set of requirements
   1.197      that a complete algorithm should meet. Limiting the set of requirements
   1.198      gives UAs some latitude in choosing a justification algorithm that meets
   1.199 -    their needs.
   1.200 +    their needs and desired balance of quality, speed, and complexity.
   1.201  
   1.202     <p>For instance, a basic but fast ‘<code class=css>inter-word</code>’
   1.203      justification algorithm might use a simple greedy method for determining
   1.204 -    line breaks, then distribute leftover space using the <a
   1.205 -    href="#spacing">spacing limits provided</a>. This algorithm could follow
   1.206 +    line breaks, then distribute leftover space. This algorithm could follow
   1.207      the guidelines by expanding word spaces first, expanding between letters
   1.208      only if ‘<a href="#word-spacing0"><code
   1.209      class=property>word-spacing</code></a>’ hit a limit.
   1.210 @@ -2249,7 +2236,7 @@
   1.211      href="#expansion-opportunity"><i>expansion opportunities</i></a> and
   1.212      limits were assigned weights and assessed with other line breaking
   1.213      considerations. This algorithm could follow the guidelines by giving more
   1.214 -    weight to word spaces than letter spacing.
   1.215 +    weight to <i>word separators</i> than letter spacing.
   1.216    </div>
   1.217  
   1.218    <p>CSS defines <dfn id=expansion-opportunity
   1.219 @@ -2257,9 +2244,9 @@
   1.220     where the justification algorithm may alter spacing within the text. These
   1.221     <a href="#expansion-opportunity"><i>expansion opportunities</i></a> fall
   1.222     into priority levels as defined by the justification method. Within a
   1.223 -   line, expansion and compression should primarily target the first-priority
   1.224 -   expansion opportunities; lower priority expansion opportunities are
   1.225 -   adjusted at a lower priority as needed.
   1.226 +   line, expansion and compression primarily target the first-priority
   1.227 +   expansion opportunities; secondary expansion opportunities may be adjusted
   1.228 +   at a lower priority.
   1.229  
   1.230    <p>Expansion and compression limits are given by the <a
   1.231     href="#letter-spacing">letter-spacing</a> and <a
   1.232 @@ -2276,213 +2263,166 @@
   1.233     class=css>center</code>’ if ‘<a href="#text-justify0"><code
   1.234     class=property>text-justify</code></a>’ is ‘<code
   1.235     class=css>distribute</code>’ and as ‘<code class=css>start</code>’
   1.236 -   otherwise.)
   1.237 -
   1.238 -  <p>The <a href="#expansion-opportunity"><i>expansion opportunity</i></a>
   1.239 -   priorities for values of ‘<a href="#text-justify0"><code
   1.240 -   class=property>text-justify</code></a>’ are given in the table below.
   1.241 -   Since justification behavior varies by writing system, <a
   1.242 -   href="#expansion-opportunity"><i>expansion opportunities</i></a> are
   1.243 -   organized by <a href="#script-groups">script categories</a>. An <a
   1.244 -   href="#expansion-opportunity"><i>expansion opportunity</i></a> exists
   1.245 -   between two <a href="#letter0"><i>letters</i></a> at a priority level when
   1.246 -   at least one of them belongs to a script category at that level and the
   1.247 -   other does not belong to a higher priority level. All scripts in the same
   1.248 -   priority level must be treated exactly the same. Word separators (spaces)
   1.249 -   and other symbols and punctuation are treated specially, see below.
   1.250 -
   1.251 -  <table class=data>
   1.252 -   <caption>Prioritization of Expansion Points</caption>
   1.253 -
   1.254 -   <colgroup class=header></colgroup>
   1.255 -
   1.256 -   <colgroup span=6></colgroup>
   1.257 -
   1.258 -   <thead>
   1.259 -    <tr>
   1.260 -     <td>
   1.261 -
   1.262 -     <th>‘<code class=css>inter-word</code>’
   1.263 -
   1.264 -     <th>‘<code class=css>inter-ideograph</code>’
   1.265 -
   1.266 -     <th>‘<code class=css>distribute</code>’
   1.267 -
   1.268 -     <th>‘<code class=css>inter-cluster</code>’
   1.269 -
   1.270 -     <th>‘<code class=css>kashida</code>’
   1.271 -
   1.272 -     <th>‘<a href="#auto1"><code class=css>auto</code></a>’
   1.273 -
   1.274 -   <tbody>
   1.275 -    <tr>
   1.276 -     <th scope=row><a href="#block-scripts">block</a>
   1.277 -
   1.278 -     <td>2
   1.279 -
   1.280 -     <td><strong>1</strong>
   1.281 -
   1.282 -     <td><strong>1</strong>
   1.283 -
   1.284 -     <td>3
   1.285 -
   1.286 -     <td>3
   1.287 -
   1.288 -     <td><strong>2</strong>*
   1.289 -
   1.290 -    <tr>
   1.291 -     <th scope=row><a href="#clustered-scripts">clustered</a>
   1.292 -
   1.293 -     <td>2
   1.294 -
   1.295 -     <td>2
   1.296 -
   1.297 -     <td><strong>1</strong>
   1.298 -
   1.299 -     <td><strong>2</strong>
   1.300 -
   1.301 -     <td>3
   1.302 -
   1.303 -     <td><strong>2</strong>*
   1.304 -
   1.305 -    <tr>
   1.306 -     <th scope=row><a href="#cursive-scripts">cursive</a>
   1.307 -
   1.308 -     <td>2
   1.309 -
   1.310 -     <td>2
   1.311 -
   1.312 -     <td>2
   1.313 -
   1.314 -     <td>3
   1.315 -
   1.316 -     <td><strong>1</strong>
   1.317 -
   1.318 -     <td>3*
   1.319 -
   1.320 -    <tr>
   1.321 -     <th scope=row><a href="#discrete-scripts">discrete</a>
   1.322 -
   1.323 -     <td>2
   1.324 -
   1.325 -     <td>2
   1.326 -
   1.327 -     <td><strong>1</strong>
   1.328 -
   1.329 -     <td>3
   1.330 -
   1.331 -     <td>3
   1.332 -
   1.333 -     <td>3*
   1.334 -
   1.335 -    <tr>
   1.336 -     <th scope=row><a href="#connected-scripts">connected</a>
   1.337 -
   1.338 -     <td>never
   1.339 -
   1.340 -     <td>never
   1.341 -
   1.342 -     <td>never
   1.343 -
   1.344 -     <td>never
   1.345 -
   1.346 -     <td>never
   1.347 -
   1.348 -     <td>never
   1.349 -
   1.350 -   <tbody>
   1.351 -    <tr>
   1.352 -     <th scope=row>spaces
   1.353 -
   1.354 -     <td><strong>1</strong>
   1.355 -
   1.356 -     <td><strong>1</strong>
   1.357 -
   1.358 -     <td><strong>1</strong>
   1.359 -
   1.360 -     <td><strong>1</strong>
   1.361 -
   1.362 -     <td>2
   1.363 -
   1.364 -     <td><strong>1</strong>*
   1.365 -
   1.366 -    <tr>
   1.367 -     <th scope=row>symbols
   1.368 -
   1.369 -     <td>2
   1.370 -
   1.371 -     <td><strong>1</strong>
   1.372 -
   1.373 -     <td><strong>1</strong>
   1.374 -
   1.375 -     <td><strong>2</strong>
   1.376 -
   1.377 -     <td>3
   1.378 -
   1.379 -     <td>*
   1.380 -  </table>
   1.381 -
   1.382 -  <p id=auto-justify><small>* The ‘<a href="#auto1"><code
   1.383 -   class=css>auto</code></a>’ column defined above is informative; it
   1.384 -   suggests a prioritization that presents a universal compromise among
   1.385 -   justification methods.</small>
   1.386 -
   1.387 -  <p id=justify-spaces>The <dfn id=spaces title=spaces-category>spaces</dfn>
   1.388 -   category represents <a href="#expansion-opportunity"><i>expansion
   1.389 -   opportunities</i></a> at <a href="#word-separator">word separators</a>.
   1.390 -   (See <a href="#word-spacing">‘<code
   1.391 -   class=property>word-spacing</code>’</a>.) Except when ‘<a
   1.392 -   href="#text-justify0"><code class=property>text-justify</code></a>’ is
   1.393 -   ‘<code class=css>distribute</code>’, the UA may treat spaces
   1.394 -   differently than other <a href="#expansion-opportunity"><i>expansion
   1.395 -   opportunities</i></a> in the same priority, but must not change their
   1.396 -   priority with respect to <a href="#expansion-opportunity"><i>expansion
   1.397 -   opportunities</i></a> in other priority levels. For example, in Japanese
   1.398 -   ‘<code class=css>inter-ideograph</code>’ justification (which treats
   1.399 -   CJK characters at a higher priority than Latin characters), word spaces
   1.400 -   traditionally have a higher priority than inter-CJK spacing, and the UA
   1.401 -   may split the 1st-priority level to implement that. However the UA is not
   1.402 -   allowed to drop either spaces or CJK characters to the same priority as
   1.403 -   Latin characters.
   1.404 -
   1.405 -  <p id=justify-symbols>The <dfn id=punctuation-symbols>symbols</dfn>
   1.406 -   category represents the <a href="#expansion-opportunity"><i>expansion
   1.407 -   opportunity</i></a> existing at or between any pair of characters from the
   1.408 -   Unicode Symbols (S*) and Punctuation (P*) classes. The default
   1.409 -   justification priority of these <a
   1.410 -   href="#expansion-opportunity"><i>expansion opportunities</i></a> is given
   1.411 -   above. However, there may be additional rules controlling their
   1.412 -   justification behavior due to typographic tradition. Therefore, the UA may
   1.413 -   reassign specific characters or introduce additional levels of
   1.414 -   prioritization to handle <a href="#expansion-opportunity"><i>expansion
   1.415 -   opportunities</i></a> involving symbols and punctuation. For example,
   1.416 -   there are traditionally no <a href="#expansion-opportunity"><i>expansion
   1.417 -   opportunities</i></a> between consecutive EM DASH U+2014, HORIZONTAL BAR
   1.418 -   U+2015, HORIZONTAL ELLIPSIS U+2026, or TWO DOT LEADER U+2025 characters <a
   1.419 -   href="#JLREQ" rel=biblioentry>[JLREQ]<!--{{JLREQ}}--></a>; thus a UA might
   1.420 -   assign these characters to the "never" prioritization level. As another
   1.421 -   example, certain fullwidth punctuation characters are considered to
   1.422 -   contain an <a href="#expansion-opportunity"><i>expansion
   1.423 -   opportunity</i></a> (see ‘<code class=property>text-spacing</code>’).
   1.424 -   The UA might therefore assign these characters to a higher prioritization
   1.425 -   level than the opportunities between ideographic characters.
   1.426 -
   1.427 -  <p id=justify-cursive>For justification of <a
   1.428 -   href="#cursive-scripts0"><i>cursive scripts</i></a>, words may be expanded
   1.429 -   through kashida elongation or other cursive expansion processes. Kashida
   1.430 -   may be applied in discrete units or continuously, and the prioritization
   1.431 -   of kashida opportunities is UA-dependent: for example, the UA may apply
   1.432 -   more at the end of the line. The UA should not apply kashida to fonts for
   1.433 -   which it is inappropriate. It may instead rely on other justification
   1.434 -   methods that lengthen or shorten Arabic segments (e.g. by substituting in
   1.435 -   swash forms or optional ligatures). Because elongation rules depend on the
   1.436 -   typeface style, the UA should rely on on the font whenever possible rather
   1.437 -   than inserting kashida based on a font-independent ruleset. The UA should
   1.438 -   limit elongation so that, e.g. in multi-script lines a short stretch of
   1.439 -   Arabic will not be forced to soak up too much of the extra space by
   1.440 -   itself. If the UA does not support cursive elongation, then, as with
   1.441 -   connected scripts, no <a href="#expansion-opportunity"><i>expansion
   1.442 -   opportunities</i></a> exist between characters of these scripts.
   1.443 +   otherwise.)</p>
   1.444 +  <!--
   1.445 +    <p>The <i>expansion opportunity</i> priorities for values of 'text-justify'
   1.446 +      are given in the table below. Since justification behavior
   1.447 +      varies by writing system, <i>expansion opportunities</i> are organized by
   1.448 +      <a href="#script-groups">script categories</a>.
   1.449 +      An <i>expansion opportunity</i> exists between two <i>letters</i> at a
   1.450 +      priority level when at least one of them belongs to a script category
   1.451 +      at that level and the other does not belong to a higher priority level.
   1.452 +      All scripts in the same priority level must be treated exactly the same.
   1.453 +      Word separators (spaces) and other symbols and punctuation are treated
   1.454 +      specially, see below.
   1.455 +
   1.456 +    <table class="data">
   1.457 +      <caption>Prioritization of Expansion Points</caption>
   1.458 +      <colgroup class="header"></colgroup>
   1.459 +      <colgroup span=6></colgroup>
   1.460 +      <thead>
   1.461 +        <tr>
   1.462 +          <td></td>
   1.463 +          <th>''inter-word''</th>
   1.464 +          <th>''inter-ideograph''</th>
   1.465 +          <th>''distribute''</th>
   1.466 +          <th>''inter-cluster''</th>
   1.467 +          <th>''kashida''</th>
   1.468 +          <th>''auto''</th>
   1.469 +        </tr>
   1.470 +      </thead>
   1.471 +      <tbody>
   1.472 +        <tr>
   1.473 +          <th scope="row"><a href="#block-scripts">block</a></th>
   1.474 +          <td>2</td>
   1.475 +          <td><strong>1</strong></td>
   1.476 +          <td><strong>1</strong></td>
   1.477 +          <td>3</td>
   1.478 +          <td>3</td>
   1.479 +          <td><strong>2</strong>*</td>
   1.480 +        </tr>
   1.481 +
   1.482 +        <tr>
   1.483 +          <th scope="row"><a href="#clustered-scripts">clustered</a></th>
   1.484 +          <td>2</td>
   1.485 +          <td>2</td>
   1.486 +          <td><strong>1</strong></td>
   1.487 +          <td><strong>2</strong></td>
   1.488 +          <td>3</td>
   1.489 +          <td><strong>2</strong>*</td>
   1.490 +        </tr>
   1.491 +
   1.492 +        <tr>
   1.493 +          <th scope="row"><a href="#cursive-scripts">cursive</a></th>
   1.494 +          <td>2</td>
   1.495 +          <td>2</td>
   1.496 +          <td>2</td>
   1.497 +          <td>3</td>
   1.498 +          <td><strong>1</strong></td>
   1.499 +          <td>3*</td>
   1.500 +        </tr>
   1.501 +
   1.502 +        <tr>
   1.503 +          <th scope="row"><a href="#discrete-scripts">discrete</a></th>
   1.504 +          <td>2</td>
   1.505 +          <td>2</td>
   1.506 +          <td><strong>1</strong></td>
   1.507 +          <td>3</td>
   1.508 +          <td>3</td>
   1.509 +          <td>3*</td>
   1.510 +        </tr>
   1.511 +
   1.512 +        <tr>
   1.513 +          <th scope="row"><a href="#connected-scripts">connected</a></th>
   1.514 +          <td>never</td>
   1.515 +          <td>never</td>
   1.516 +          <td>never</td>
   1.517 +          <td>never</td>
   1.518 +          <td>never</td>
   1.519 +          <td>never</td>
   1.520 +        </tr>
   1.521 +      </tbody>
   1.522 +
   1.523 +      <tbody>
   1.524 +        <tr>
   1.525 +          <th scope="row">spaces</th>
   1.526 +          <td><strong>1</strong></td>
   1.527 +          <td><strong>1</strong></td>
   1.528 +          <td><strong>1</strong></td>
   1.529 +          <td><strong>1</strong></td>
   1.530 +          <td>2</td>
   1.531 +          <td><strong>1</strong>*</td>
   1.532 +        </tr>
   1.533 +
   1.534 +        <tr>
   1.535 +          <th scope="row">symbols</th>
   1.536 +          <td>2</td>
   1.537 +          <td><strong>1</strong></td>
   1.538 +          <td><strong>1</strong></td>
   1.539 +          <td><strong>2</strong></td>
   1.540 +          <td>3</td>
   1.541 +          <td>*</td>
   1.542 +        </tr>
   1.543 +      </tbody>
   1.544 +    </table>
   1.545 +
   1.546 +    <p id="auto-justify"><small>* The ''auto'' column defined above is informative; it
   1.547 +      suggests a prioritization that presents a universal compromise among
   1.548 +      justification methods.</small></p>
   1.549 +    <p id="justify-spaces">The <dfn title="spaces-category">spaces</dfn> category represents
   1.550 +      <i>expansion opportunities</i> at <a href="#word-separator">word separators</a>.
   1.551 +      (See <a href="#word-spacing">'word-spacing'</a>.)
   1.552 +      Except when 'text-justify' is ''distribute'', the UA may treat
   1.553 +      spaces differently than other <i>expansion opportunities</i> in the same priority,
   1.554 +      but must not change their priority with respect to <i>expansion opportunities</i>
   1.555 +      in other priority levels. For example, in Japanese ''inter-ideograph''
   1.556 +      justification (which treats CJK characters at a higher priority than
   1.557 +      Latin characters), word spaces traditionally have a higher priority
   1.558 +      than inter-CJK spacing, and the UA may split the 1st-priority level
   1.559 +      to implement that. However the UA is not allowed to drop either spaces
   1.560 +      or CJK characters to the same priority as Latin characters.
   1.561 +    <p id="justify-symbols">The <dfn id="punctuation-symbols">symbols</dfn>
   1.562 +      category represents the <i>expansion opportunity</i> existing at or between
   1.563 +      any pair of characters from the Unicode Symbols (S*) and Punctuation (P*)
   1.564 +      classes.
   1.565 +      The default justification priority of these <i>expansion opportunities</i> is given above.
   1.566 +-->
   1.567 +
   1.568 +  <p>Characters from the Unicode Symbols (S*) and Punctuation (P*) classes
   1.569 +   are generally treated the same as any <a
   1.570 +   href="#letter0"><i>letter</i></a>. However, there may be additional rules
   1.571 +   controlling their justification behavior due to typographic tradition.
   1.572 +   Therefore, the UA may reassign specific characters or introduce additional
   1.573 +   levels of prioritization to handle <a
   1.574 +   href="#expansion-opportunity"><i>expansion opportunities</i></a> involving
   1.575 +   symbols and punctuation. For example, there are traditionally no <a
   1.576 +   href="#expansion-opportunity"><i>expansion opportunities</i></a> between
   1.577 +   consecutive EM DASH U+2014, HORIZONTAL BAR U+2015, HORIZONTAL ELLIPSIS
   1.578 +   U+2026, or TWO DOT LEADER U+2025 characters <a href="#JLREQ"
   1.579 +   rel=biblioentry>[JLREQ]<!--{{JLREQ}}--></a>; thus a UA might assign these
   1.580 +   characters to a "never" prioritization level. As another example, certain
   1.581 +   fullwidth punctuation characters are considered to contain an <a
   1.582 +   href="#expansion-opportunity"><i>expansion opportunity</i></a> in
   1.583 +   Japanese. The UA might therefore assign these characters to a higher
   1.584 +   prioritization level than the opportunities between ideographic
   1.585 +   characters. <!--
   1.586 +    <p id="justify-cursive">For justification of <i>cursive scripts</i>,
   1.587 +      words may be expanded through kashida elongation or other cursive
   1.588 +      expansion processes. Kashida may be applied in discrete units or
   1.589 +      continuously, and the prioritization of kashida opportunities is UA-dependent:
   1.590 +      for example, the UA may apply more at the end of the line. The
   1.591 +      UA should not apply kashida to fonts for which it is inappropriate.
   1.592 +      It may instead rely on other justification methods that lengthen
   1.593 +      or shorten Arabic segments (e.g. by substituting in swash forms or
   1.594 +      optional ligatures). Because elongation rules depend on the typeface
   1.595 +      style, the UA should rely on on the font whenever possible rather
   1.596 +      than inserting kashida based on a font-independent ruleset. The UA
   1.597 +      should limit elongation so that, e.g. in multi-script lines a short
   1.598 +      stretch of Arabic will not be forced to soak up too much of the
   1.599 +      extra space by itself. If the UA does not support cursive elongation,
   1.600 +      then, as with connected scripts, no <i>expansion opportunities</i> exist between
   1.601 +      characters of these scripts.
   1.602 +-->
   1.603  
   1.604    <p>The UA may enable or break optional ligatures or use other font features
   1.605     such as alternate glyphs or glyph compression to help justify the text
   1.606 @@ -2493,16 +2433,15 @@
   1.607      rel=biblioentry>[JLREQ]<!--{{JLREQ}}--></a> gives an example of a set of
   1.608      rules for how a text formatter can justify Japanese text. It describes
   1.609      rules for cases where the ‘<a href="#text-justify0"><code
   1.610 -    class=property>text-justify</code></a>’ property is ‘<code
   1.611 -    class=css>inter-ideograph</code>’ and the ‘<code
   1.612 -    class=property>text-spacing</code>’ property does not specify ‘<code
   1.613 -    class=css>no-compress</code>’.
   1.614 -
   1.615 -   <p>It produces an effect similar to cases where the computed value of
   1.616 -    ‘<code class=property>text-spacing</code>’ property does not specify
   1.617 -    ‘<code class=css>trim-end</code>’ or ‘<code
   1.618 -    class=css>space-end</code>’. If the UA wants to prohibit this behavior,
   1.619 -    rule b. of 3.8.3 should be omitted.
   1.620 +    class=property>text-justify</code></a>’ property is ‘<a
   1.621 +    href="#auto1"><code class=css>auto</code></a>’.</p>
   1.622 +   <!--
   1.623 +      <p>It produces an effect similar to cases where
   1.624 +        the computed value of 'text-spacing' property does not specify
   1.625 +        ''trim-end'' or ''space-end''.
   1.626 +        If the UA wants to prohibit this behavior,
   1.627 +        rule b. of 3.8.3 should be omitted.</p>
   1.628 +-->
   1.629  
   1.630     <p>Note that the rules described in the document specifically target
   1.631      Japanese. Therefore they may produce non-optimal results when used to
   1.632 @@ -3440,9 +3379,10 @@
   1.633  
   1.634     <dd>The Unicode Consortium. <a
   1.635      href="http://www.unicode.org/standard/versions/enumeratedversions.html"><cite>The
   1.636 -    Unicode Standard.</cite></a> 2003. Defined by: The Unicode Standard,
   1.637 -    Version 4.0 (Boston, MA, Addison-Wesley, ISBN 0-321-18578-1), as updated
   1.638 -    from time to time by the publication of new versions URL: <a
   1.639 +    Unicode Standard.</cite></a> 2012. Defined by: The Unicode Standard,
   1.640 +    Version 6.2.0 (Mountain View, CA: The Unicode Consortium, 2012. ISBN
   1.641 +    978-1-936213-07-8), as updated from time to time by the publication of
   1.642 +    new versions URL: <a
   1.643      href="http://www.unicode.org/standard/versions/enumeratedversions.html">http://www.unicode.org/standard/versions/enumeratedversions.html</a>
   1.644     </dd>
   1.645     <!---->
   1.646 @@ -3544,32 +3484,22 @@
   1.647    <h2 class=no-num id=changes>Appendix C: Changes</h2>
   1.648  
   1.649    <h3 class=no-num id=recent-changes> Changes from the <a
   1.650 -   href="http://www.w3.org/TR/2012/WD-css3-text-20120814/">August 2012 CSS3
   1.651 +   href="http://www.w3.org/TR/2012/WD-css3-text-20121113/">November 2012 CSS3
   1.652     Text <abbr title="Working Draft">WD</abbr></a></h3>
   1.653  
   1.654    <p>Major changes include:
   1.655  
   1.656    <ul>
   1.657 -   <li>Shifted text decoration chapter to a separate Text Decoration module
   1.658 -    <a href="#CSS3-TEXT-DECOR"
   1.659 -    rel=biblioentry>[CSS3-TEXT-DECOR]<!--{{CSS3-TEXT-DECOR}}--></a>
   1.660 +   <li>Removed ‘<code class=css>inter-ideograph</code>’, ‘<code
   1.661 +    class=css>inter-cluster</code>’, and ‘<code
   1.662 +    class=css>kashida</code>’ values of ‘<a href="#text-justify0"><code
   1.663 +    class=property>text-justify</code></a>’.
   1.664    </ul>
   1.665  
   1.666    <p>Significant details updated:
   1.667  
   1.668    <ul>
   1.669 -   <li>Shifted spaces higher in priority than clustered scripts for ‘<code
   1.670 -    class=css>inter-cluster</code>’ value of ‘<a
   1.671 -    href="#text-justify0"><code class=property>text-justify</code></a>’.
   1.672 -
   1.673 -   <li>Defined line breaking behavior for ruby and atomic inlines.
   1.674 -
   1.675 -   <li>Added Korean to Chinese and Japanese in ‘<a
   1.676 -    href="#line-break1"><code class=property>line-break</code></a>’ special
   1.677 -    rules.
   1.678 -
   1.679 -   <li>Added missing halfwidth codepoint to ‘<a href="#line-break1"><code
   1.680 -    class=property>line-break</code></a>’ rules.
   1.681 +   <li>
   1.682    </ul>
   1.683  
   1.684    <h2 class=no-num id=default-stylesheet> Appendix D: Default UA Stylesheet</h2>
   1.685 @@ -3590,82 +3520,119 @@
   1.686  
   1.687    <h2 class=no-num id=script-groups>Appendix E: Scripts and Spacing</h2>
   1.688  
   1.689 -  <p><em>This appendix is informative (non-normative).</em>
   1.690 -
   1.691 +  <p><em>This appendix is normative.</em>
   1.692 +
   1.693 +  <p>The following scripts in Unicode 6 are considered to be <dfn
   1.694 +   id=cursive-scripts>cursive scripts</dfn>, and do not admit <a
   1.695 +   href="#expansion-opportunity"><i>expansion opportunities</i></a> between
   1.696 +   their letters: Arabic, Mandaic, Mongolian, N'Ko, Phags Pa, Syriac <!--
   1.697    <p>Typographic behavior varies somewhat by language, but varies drastically
   1.698 -   by writing system. This appendix categorizes some common scripts in
   1.699 -   Unicode 6.0 according to their justification and spacing behavior.
   1.700 -   Category descriptions are descriptive, not prescriptive; the determining
   1.701 -   factor is the prioritization of <a
   1.702 -   href="#expansion-opportunity"><i>expansion opportunities</i></a>.
   1.703 +    by writing system. This appendix categorizes some common scripts in
   1.704 +    Unicode 6.0 according to their justification and spacing behavior. Category
   1.705 +    descriptions are descriptive, not prescriptive; the determining factor is
   1.706 +    the prioritization of <i>expansion opportunities</i>.
   1.707  
   1.708    <dl>
   1.709 -   <dt id=block-scripts><dfn id=block-scripts0>block scripts</dfn>
   1.710 -
   1.711 -   <dd>CJK and by extension all Wide characters. (See <a href="#UAX11"
   1.712 -    rel=biblioentry>[UAX11]<!--{{!UAX11}}--></a>) The following scripts are
   1.713 -    included: Bopomofo, Han, Hangul, Hiragana, Katakana, Yi
   1.714 -
   1.715 -   <dt id=clustered-scripts><dfn id=clustered-scripts0>clustered
   1.716 -    scripts</dfn>
   1.717 -
   1.718 -   <dd>Scripts that have discrete units but do not use spaces between words,
   1.719 -    such as many Southeast Asian systems. The following scripts are included:
   1.720 -    Javanese, Khmer, Lao, Myanmar, Thai, <span class=issue>This list is
   1.721 -    likely incomplete. What else fits here?</span>
   1.722 -
   1.723 -   <dt id=connected-scripts><dfn id=connected-scripts0>connected
   1.724 -    scripts</dfn>
   1.725 -
   1.726 -   <dd>Devanagari, Ogham, and other scripts that use spaces between words and
   1.727 -    baseline connectors within words. By extension this category also
   1.728 -    includes any other Indic scripts whose typographic behavior is similar to
   1.729 -    Devanagari. The following scripts are included: Bengali, Brahmi,
   1.730 -    Devanagari, Gujarati, Gurmukhi, Kannada, Malayalam, Oriya?, Ogham,
   1.731 -    Tamil?, Telugu
   1.732 -
   1.733 -   <dt id=cursive-scripts><dfn id=cursive-scripts0>cursive scripts</dfn>
   1.734 -
   1.735 -   <dd>Arabic and similar inherently cursive scripts. The following scripts
   1.736 -    are included: Arabic, Mongolian, N'Ko, Phags Pa, Syriac
   1.737 -
   1.738 -   <dt id=discrete-scripts><dfn id=discrete-scripts0>discrete scripts</dfn>
   1.739 -
   1.740 -   <dd>Scripts that use spaces or visible word-separating punctuation between
   1.741 -    words and have discrete, unconnected (in print) units within words. The
   1.742 -    following scripts are included: Armenian, Bamum?, Braille, Canadian
   1.743 -    Aboriginal, Cherokee, Coptic, Cyrillic, Deseret, Ethiopic Greek, Hebrew,
   1.744 -    Kharoshthi, Latin, Lisu, Osmanya, Shavian, Tifinagh, Vai?
   1.745 -  </dl>
   1.746 -
   1.747 -  <p>UAs should treat unrecognized scripts as <i>discrete</i>.
   1.748 -
   1.749 -  <p class=issue>This listing should ideally be exhaustive wrt Unicode.
   1.750 -   Please <a href="#status">send</a> suggestions and corrections to the CSS
   1.751 -   Working Group.
   1.752 -
   1.753 -  <div class=note>
   1.754 -   <p>Guidelines for classification consider letter-spacing and
   1.755 -    justification:
   1.756 -
   1.757 -   <ol>
   1.758 -    <li>If the script is cursive and may expand cursively but must not space
   1.759 -     between letters, it is <i>cursive</i>.
   1.760 -
   1.761 +    <dt id="block-scripts"><dfn>block scripts</dfn></dt>
   1.762 +      <dd>CJK and by extension all Wide characters. (See [[!UAX11]])
   1.763 +        The following scripts are included:
   1.764 +        Bopomofo,
   1.765 +        Han,
   1.766 +        Hangul,
   1.767 +        Hiragana,
   1.768 +        Katakana,
   1.769 +        Yi
   1.770 +      </dd>
   1.771 +    <dt id="clustered-scripts"><dfn>clustered scripts</dfn></dt>
   1.772 +      <dd>Scripts that have discrete units but do not use spaces between words,
   1.773 +        such as many Southeast Asian systems.
   1.774 +        The following scripts are included:
   1.775 +        Javanese,
   1.776 +        Khmer,
   1.777 +        Lao,
   1.778 +        Myanmar,
   1.779 +        Thai,
   1.780 +      <span class="issue">This list is likely incomplete. What else fits here?</span>
   1.781 +      </dd>
   1.782 +    <dt id="connected-scripts"><dfn>connected scripts</dfn></dt>
   1.783 +      <dd>Devanagari, Ogham, and other scripts that use spaces between
   1.784 +        words and baseline connectors within words.
   1.785 +        By extension this category also includes any other Indic scripts
   1.786 +        whose typographic behavior is similar to Devanagari.
   1.787 +      The following scripts are included:
   1.788 +      Bengali,
   1.789 +      Brahmi,
   1.790 +      Devanagari,
   1.791 +      Gujarati,
   1.792 +      Gurmukhi,
   1.793 +      Kannada,
   1.794 +      Malayalam,
   1.795 +      Oriya?,
   1.796 +      Ogham,
   1.797 +      Tamil?,
   1.798 +      Telugu
   1.799 +      </dd>
   1.800 +    <dt id="cursive-scripts"><dfn>cursive scripts</dfn></dt>
   1.801 +      <dd>Arabic and similar inherently cursive scripts.
   1.802 +      The following scripts are included:
   1.803 +      Arabic,
   1.804 +      Mongolian,
   1.805 +      N'Ko,
   1.806 +      Phags Pa,
   1.807 +      Syriac
   1.808 +      </dd>
   1.809 +    <dt id="discrete-scripts"><dfn>discrete scripts</dfn></dt>
   1.810 +      <dd>Scripts that use spaces or visible word-separating
   1.811 +        punctuation between words and have discrete,
   1.812 +        unconnected (in print) units within words.
   1.813 +      The following scripts are included:
   1.814 +      Armenian,
   1.815 +      Bamum?,
   1.816 +      Braille,
   1.817 +      Canadian Aboriginal,
   1.818 +      Cherokee,
   1.819 +      Coptic,
   1.820 +      Cyrillic,
   1.821 +      Deseret,
   1.822 +      Ethiopic
   1.823 +      Greek,
   1.824 +      Hebrew,
   1.825 +      Kharoshthi,
   1.826 +      Latin,
   1.827 +      Lisu,
   1.828 +      Osmanya,
   1.829 +      Shavian,
   1.830 +      Tifinagh,
   1.831 +      Vai?
   1.832 +      </dd>
   1.833 +</dl>
   1.834 +
   1.835 +<p>UAs should treat unrecognized scripts as <i>discrete</i>.
   1.836 +
   1.837 +<p class="issue">This listing should ideally be exhaustive wrt Unicode.
   1.838 +Please <a href="#status">send</a> suggestions and corrections to the CSS
   1.839 +Working Group.</p>
   1.840 +
   1.841 +<div class="note">
   1.842 +  <p>Guidelines for classification consider letter-spacing and justification:
   1.843 +  <ol>
   1.844 +    <li>If the script is cursive and may expand cursively but must not
   1.845 +      space between letters, it is <i>cursive</i>.
   1.846      <li>If the script primarily flexes word separators, it is either
   1.847 -     <i>discrete</i> or <i>connected</i>. <i>Discrete</i> scripts can space
   1.848 -     between letters. <i>Connected</i> scripts must not space between letters
   1.849 -     (typically because that would break the connections or otherwise look
   1.850 -     bad).
   1.851 -
   1.852 -    <li>If the script commonly expands equally between its "letters" in
   1.853 -     native typesettings, it is either <i>block</i> or <i>clustered</i>. The
   1.854 -     exact classification depends on whether it always spaces when mixed with
   1.855 -     CJK and sometimes stays together when mixed with Thai and related
   1.856 -     scripts (<i>block</i>) or sometimes spaces when mixed with CJK and
   1.857 -     always spaces with Thai (<i>clustered</i>).
   1.858 -   </ol>
   1.859 -  </div>
   1.860 +      <i>discrete</i> or <i>connected</i>. <i>Discrete</i> scripts can
   1.861 +      space between letters. <i>Connected</i> scripts must not space
   1.862 +      between letters (typically because that would break the connections
   1.863 +      or otherwise look bad).
   1.864 +    <li>If the script commonly expands equally between its "letters"
   1.865 +      in native typesettings, it is either <i>block</i> or
   1.866 +      <i>clustered</i>. The exact classification depends on whether it
   1.867 +      always spaces when mixed with CJK and sometimes stays together
   1.868 +      when mixed with Thai and related scripts (<i>block</i>) or
   1.869 +      sometimes spaces when mixed with CJK and always spaces with Thai
   1.870 +      (<i>clustered</i>).
   1.871 +  </ol>
   1.872 +</div>
   1.873 +-->
   1.874  
   1.875    <h2 class=no-num id=appendix-f-text-processing-order-of-oper>Appendix F:
   1.876     Text Processing Order of Operations</h2>
   1.877 @@ -3881,8 +3848,7 @@
   1.878      <tr>
   1.879       <th><a class=property href="#text-justify0">text-justify</a>
   1.880  
   1.881 -     <td>auto | none | inter-word | inter-ideograph | inter-cluster |
   1.882 -      distribute | kashida
   1.883 +     <td>auto | none | inter-word | distribute
   1.884  
   1.885       <td>auto
   1.886  
     2.1 --- a/css3-text/Overview.src.html	Wed Feb 06 21:45:19 2013 -0800
     2.2 +++ b/css3-text/Overview.src.html	Wed Feb 06 23:24:18 2013 -0800
     2.3 @@ -126,7 +126,7 @@
     2.4        <li>the ''full-width'' value of 'text-transform'
     2.5        <li>the &lt;length> values of the 'tab-size' property
     2.6        <li>the ''start end'' and ''&lt;string>'' values of 'text-align'
     2.7 -      <li>the 'text-justify' property, particularly its ''kashida'' value
     2.8 +      <li>the 'text-justify' property
     2.9        <li>the percentage values of 'word-spacing'
    2.10        <li>minimum and maximum limits of 'word-spacing' and 'letter-spacing'
    2.11        <li>the 'hanging-punctuation' property
    2.12 @@ -1537,8 +1537,7 @@
    2.13          </tr>
    2.14          <tr>
    2.15            <th><a href="#values">Value</a>:
    2.16 -          <td>auto | none |
    2.17 -            inter-word | inter-ideograph | inter-cluster | distribute | kashida
    2.18 +          <td>auto | none | inter-word | distribute
    2.19            </td>
    2.20          </tr>
    2.21          <tr>
    2.22 @@ -1568,47 +1567,35 @@
    2.23      </table>
    2.24  
    2.25      <p>This property selects the justification method used when a line's
    2.26 -      alignment is set to ''justify'' (see 'text-align'), primarily by
    2.27 -      controlling which scripts' characters are adjusted together or
    2.28 -      separately.
    2.29 +      alignment is set to ''justify'' (see 'text-align').
    2.30        The property applies to block containers, but the UA may (but
    2.31        is not required to) also support it on inline elements.
    2.32        It takes the following values:</p>
    2.33  
    2.34 -      <div class="figure" id="fig-text-justify">
    2.35 -        <p>
    2.36 -          <img alt="Examples of text-justify values commonly used in East Asian scripts"
    2.37 -               class="example" src="text-justify-east-asia.png" height="376" width="491"></p>
    2.38 -        <p class="caption">Values of 'text-justify': ''inter-word'', ''inter-cluster'', ''inter-ideograph'', and ''distribute''</p>
    2.39 -      </div>
    2.40 -
    2.41 -      <div class="figure" id="fig-text-justify-kashida">
    2.42 -        <p>
    2.43 -          <img alt="One possible example of rendering for text-justify: kashida"
    2.44 -               class="example" src="text-justify-kashida.png" height="73" width="325"></p>
    2.45 -        <p class="caption">One possible example of rendering for 'text-justify': ''kashida''</p>
    2.46 -      </div>
    2.47 -
    2.48      <dl>
    2.49        <dt><dfn title="text-justify:auto">''auto''</dfn></dt>
    2.50          <dd>The UA determines the justification algorithm to follow, based
    2.51            on a balance between performance and adequate presentation quality.
    2.52 -          <p class="note">One possible algorithm is to determine the behavior
    2.53 -          based on the language of the paragraph: the UA can then choose
    2.54 -          appropriate value for the language, like ''inter-ideograph''
    2.55 -          for CJK, or ''inter-word'' for English.
    2.56 +          <p class="note">One possible algorithm is to choose the appropriate justification behavior
    2.57 +          based on the language of the paragraph
    2.58 +          e.g. following [[JLREQ]] for Japanese,
    2.59 +          using cursive elongation for Arabic,
    2.60 +          using ''inter-word'' for English,
    2.61 +          etc.
    2.62            Another possibility is to use a justification method that is a
    2.63 -          universal compromise for all scripts, e.g. the ''inter-cluster''
    2.64 -          method with block scripts raised to first priority.</p>
    2.65 +          simple universal compromise for all writing systems,
    2.66 +          such as primarily expanding <i>word separators</i>
    2.67 +          along with expanding between CJK and Southeast Asian <i>letters</i>.</p>
    2.68          </dd>
    2.69        <dt><dfn title="text-justify:none">''none''</dfn></dt>
    2.70          <dd>Justification is disabled.
    2.71            <span class="note">This value is intended for use in user stylesheets
    2.72            to improve readability or for accessibility purposes.</span></dd>
    2.73        <dt><dfn title="text-justify:inter-word">''inter-word''</dfn></dt>
    2.74 -        <dd>Justification primarily changes spacing at word separators.
    2.75 -          This value is typically used for languages that separate words using
    2.76 -          spaces, like English or Korean.</dd>
    2.77 +        <dd>Justification primarily varies the used 'word-spacing'.
    2.78 +          This behavior is typical for languages that separate words using spaces,
    2.79 +          like English or Korean.
    2.80 +<!--
    2.81        <dt><dfn title="text-justify:inter-ideographic">''inter-ideograph''</dfn></dt>
    2.82          <dd>Justification primarily changes spacing at word separators and
    2.83            between characters in <a href="#block-scripts">block scripts</a>.
    2.84 @@ -1619,11 +1606,12 @@
    2.85            between characters in <a href="#clustered-scripts">clustered
    2.86            scripts</a>.
    2.87            This value is typically used for Southeast Asian scripts such as Thai.</dd>
    2.88 +-->
    2.89        <dt><dfn title="text-justify:distribute">''distribute''</dfn></dt>
    2.90 -        <dd>Justification primarily changes spacing both at word
    2.91 -          separators and between characters in all scripts equally
    2.92 -          (except those in the connected and cursive categories).
    2.93 +        <dd>Justification primarily varies the used 'letter-spacing'
    2.94 +          (excepting between <i>letters</i> in <i>cursive scripts</i> such as Arabic).
    2.95            This value is sometimes used in e.g. Japanese.</dd>
    2.96 +<!--
    2.97        <dt><a name="kashida-prop"></a><a name="text-kashida-space"></a>
    2.98          <dfn title="text-justify:kashida">''kashida''</dfn></dt>
    2.99          <dd>Justification primarily stretches
   2.100 @@ -1633,9 +1621,25 @@
   2.101            (UAs that do not support cursive elongation must
   2.102            <a href="http://www.w3.org/TR/css-2010/#partial">treat the value
   2.103            as invalid</a>.)
   2.104 -        </dd>
   2.105 +-->
   2.106      </dl>
   2.107  
   2.108 +<!--
   2.109 +      <div class="figure" id="fig-text-justify">
   2.110 +        <p>
   2.111 +          <img alt="Examples of text-justify values commonly used in East Asian scripts"
   2.112 +               class="example" src="text-justify-east-asia.png" height="376" width="491"></p>
   2.113 +        <p class="caption">Values of 'text-justify': ''inter-word'', ''auto'', and ''distribute''</p>
   2.114 +      </div>
   2.115 +
   2.116 +      <div class="figure" id="fig-text-justify-kashida">
   2.117 +        <p>
   2.118 +          <img alt="One possible example of rendering for Arabic justification"
   2.119 +               class="example" src="text-justify-arabic.png" height="73" width="325"></p>
   2.120 +        <p class="caption">One possible example of rendering for 'text-justify': ''auto''</p>
   2.121 +      </div>
   2.122 +-->
   2.123 +
   2.124      <p>When justifying text, the user agent takes the remaining space between
   2.125        the ends of a line's contents and the edges of its line box, and
   2.126        distributes that space throughout its contents so that the contents
   2.127 @@ -1644,7 +1648,7 @@
   2.128        space, putting more content on the line than would otherwise fit under
   2.129        normal spacing conditions. The exact justification algorithm is
   2.130        UA-dependent; however, CSS provides some general guidelines which should
   2.131 -      be followed when any justification method other than 'auto' is
   2.132 +      be followed when a justification method other than 'auto' is
   2.133        specified.</p>
   2.134  
   2.135      <div class="note">
   2.136 @@ -1652,29 +1656,28 @@
   2.137        justification algorithm. They are merely a minimum set of requirements
   2.138        that a complete algorithm should meet. Limiting the set of requirements
   2.139        gives UAs some latitude in choosing a justification algorithm that
   2.140 -      meets their needs.
   2.141 +      meets their needs and desired balance of quality, speed, and complexity.
   2.142  
   2.143        <p>For instance, a basic but fast ''inter-word'' justification algorithm
   2.144 -      might use a simple greedy method for determining line breaks, then
   2.145 -      distribute leftover space using the <a href="#spacing">spacing limits
   2.146 -      provided</a>. This algorithm could follow the guidelines by expanding
   2.147 -      word spaces first, expanding between letters only if 'word-spacing' hit
   2.148 -      a limit.
   2.149 +      might use a simple greedy method for determining line breaks,
   2.150 +      then distribute leftover space.
   2.151 +      This algorithm could follow the guidelines by expanding word spaces first,
   2.152 +      expanding between letters only if 'word-spacing' hit a limit.
   2.153  
   2.154        <p>A more sophisticated but slower ''inter-word'' justification algorithm
   2.155 -      might use a Knuth/Plass method where <i>expansion opportunities</i> and
   2.156 -      limits were assigned weights and assessed with other line breaking
   2.157 -      considerations. This algorithm could follow the guidelines by giving
   2.158 -      more weight to word spaces than letter spacing. 
   2.159 +      might use a Knuth/Plass method
   2.160 +      where <i>expansion opportunities</i> and limits were assigned weights
   2.161 +      and assessed with other line breaking considerations.
   2.162 +      This algorithm could follow the guidelines by giving more weight
   2.163 +      to <i>word separators</i> than letter spacing. 
   2.164      </div>
   2.165  
   2.166      <p>CSS defines <dfn id="expansion-opportunity" title="expansion opportunity">expansion opportunities</dfn>
   2.167 -      as points where the justification algorithm may alter spacing within
   2.168 -      the text. These <i>expansion opportunities</i> fall into priority
   2.169 -      levels as defined by the justification method. Within a line, expansion
   2.170 -      and compression should primarily target the first-priority expansion
   2.171 -      opportunities; lower priority expansion opportunities are adjusted at a
   2.172 -      lower priority as needed.
   2.173 +      as points where the justification algorithm may alter spacing within the text.
   2.174 +      These <i>expansion opportunities</i> fall into priority levels
   2.175 +      as defined by the justification method.
   2.176 +      Within a line, expansion and compression primarily target the first-priority expansion opportunities;
   2.177 +      secondary expansion opportunities may be adjusted at a lower priority.
   2.178  
   2.179      <p>Expansion and compression limits are given by the
   2.180        <a href="#letter-spacing">letter-spacing</a>
   2.181 @@ -1687,6 +1690,7 @@
   2.182        ''center'' if 'text-justify' is ''distribute'' and as ''start''
   2.183        otherwise.)</p>
   2.184  
   2.185 +<!--
   2.186      <p>The <i>expansion opportunity</i> priorities for values of 'text-justify'
   2.187        are given in the table below. Since justification behavior
   2.188        varies by writing system, <i>expansion opportunities</i> are organized by
   2.189 @@ -1808,6 +1812,9 @@
   2.190        any pair of characters from the Unicode Symbols (S*) and Punctuation (P*)
   2.191        classes.
   2.192        The default justification priority of these <i>expansion opportunities</i> is given above.
   2.193 +-->
   2.194 +    <p>Characters from the Unicode Symbols (S*) and Punctuation (P*) classes
   2.195 +      are generally treated the same as any <i>letter</i>.
   2.196        However, there may be additional rules controlling their justification
   2.197        behavior due to typographic tradition. Therefore, the UA may reassign
   2.198        specific characters or introduce additional levels of prioritization
   2.199 @@ -1815,12 +1822,13 @@
   2.200        For example, there are traditionally no <i>expansion opportunities</i>
   2.201        between consecutive EM DASH U+2014, HORIZONTAL BAR U+2015, HORIZONTAL
   2.202        ELLIPSIS U+2026, or TWO DOT LEADER U+2025 characters [[JLREQ]]; thus
   2.203 -      a UA might assign these characters to the "never" prioritization level.
   2.204 +      a UA might assign these characters to a "never" prioritization level.
   2.205        As another example, certain fullwidth punctuation characters are
   2.206 -      considered to contain an <i>expansion opportunity</i> (see 'text-spacing').
   2.207 +      considered to contain an <i>expansion opportunity</i> in Japanese.
   2.208        The UA might therefore assign these characters to a higher prioritization
   2.209        level than the opportunities between ideographic characters.
   2.210  
   2.211 +<!--
   2.212      <p id="justify-cursive">For justification of <i>cursive scripts</i>,
   2.213        words may be expanded through kashida elongation or other cursive
   2.214        expansion processes. Kashida may be applied in discrete units or
   2.215 @@ -1837,6 +1845,7 @@
   2.216        extra space by itself. If the UA does not support cursive elongation,
   2.217        then, as with connected scripts, no <i>expansion opportunities</i> exist between
   2.218        characters of these scripts.
   2.219 +-->
   2.220  
   2.221      <p>The UA may enable or break optional ligatures or use other font
   2.222        features such as alternate glyphs or glyph compression to help
   2.223 @@ -1846,13 +1855,14 @@
   2.224      <div class="example">
   2.225        <p>3.8 Line Adjustment in [[JLREQ]] gives an example of a set of rules for
   2.226          how a text formatter can justify Japanese text.
   2.227 -        It describes rules for cases where the 'text-justify' property is ''inter-ideograph''
   2.228 -        and the 'text-spacing' property does not specify ''no-compress''.</p>
   2.229 +        It describes rules for cases where the 'text-justify' property is ''auto''.</p>
   2.230 +<!--
   2.231        <p>It produces an effect similar to cases where
   2.232          the computed value of 'text-spacing' property does not specify
   2.233          ''trim-end'' or ''space-end''.
   2.234          If the UA wants to prohibit this behavior,
   2.235          rule b. of 3.8.3 should be omitted.</p>
   2.236 +-->
   2.237        <p>Note that the rules described in the document specifically target Japanese.
   2.238          Therefore they may produce non-optimal results
   2.239          when used to justify other languages such as English.
   2.240 @@ -2549,20 +2559,17 @@
   2.241  <h2 class="no-num" id="changes">Appendix C:
   2.242  Changes</h2>
   2.243    <h3 class="no-num" id="recent-changes">
   2.244 -  Changes from the <a href="http://www.w3.org/TR/2012/WD-css3-text-20120814/">August
   2.245 +  Changes from the <a href="http://www.w3.org/TR/2012/WD-css3-text-20121113/">November
   2.246    2012 CSS3 Text <abbr title="Working Draft">WD</abbr></a></h3>
   2.247  
   2.248    <p>Major changes include:</p>
   2.249    <ul>
   2.250 -    <li>Shifted text decoration chapter to a separate Text Decoration module [[CSS3-TEXT-DECOR]]
   2.251 +    <li>Removed ''inter-ideograph'', ''inter-cluster'', and ''kashida'' values of 'text-justify'.
   2.252    </ul>
   2.253  
   2.254    <p>Significant details updated:</p>
   2.255    <ul>
   2.256 -    <li>Shifted spaces higher in priority than clustered scripts for ''inter-cluster'' value of 'text-justify'.
   2.257 -    <li>Defined line breaking behavior for ruby and atomic inlines.
   2.258 -    <li>Added Korean to Chinese and Japanese in 'line-break' special rules.
   2.259 -    <li>Added missing halfwidth codepoint to 'line-break' rules.
   2.260 +    <li>
   2.261    </ul>
   2.262  
   2.263  <h2 class="no-num" id="default-stylesheet">
   2.264 @@ -2582,8 +2589,17 @@
   2.265  
   2.266  <h2 class="no-num" id="script-groups">Appendix E: Scripts and Spacing</h2>
   2.267  
   2.268 -  <p><em>This appendix is informative (non-normative).</em></p>
   2.269 -
   2.270 +  <p><em>This appendix is normative.</em></p>
   2.271 +  
   2.272 +  <p>The following scripts in Unicode 6 are considered to be <dfn>cursive scripts</dfn>,
   2.273 +    and do not admit <i>expansion opportunities</i> between their letters:
   2.274 +      Arabic,
   2.275 +      Mandaic,
   2.276 +      Mongolian,
   2.277 +      N'Ko,
   2.278 +      Phags Pa,
   2.279 +      Syriac
   2.280 +<!--
   2.281    <p>Typographic behavior varies somewhat by language, but varies drastically
   2.282      by writing system. This appendix categorizes some common scripts in
   2.283      Unicode 6.0 according to their justification and spacing behavior. Category
   2.284 @@ -2690,6 +2706,7 @@
   2.285        (<i>clustered</i>).
   2.286    </ol>
   2.287  </div>
   2.288 +-->
   2.289  
   2.290  <h2 class="no-num">Appendix F:
   2.291  Text Processing Order of Operations</h2>

mercurial