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