- From: Elika Etemad via cvs-syncmail <cvsmail@w3.org>
- Date: Wed, 09 Mar 2011 06:04:30 +0000
- To: public-css-commits@w3.org
Update of /sources/public/csswg/css3-writing-modes In directory hutz:/tmp/cvs-serv17342 Modified Files: Overview.html Overview.src.html Log Message: Glyph orientation take II Index: Overview.html =================================================================== RCS file: /sources/public/csswg/css3-writing-modes/Overview.html,v retrieving revision 1.84 retrieving revision 1.85 diff -u -d -r1.84 -r1.85 --- Overview.html 7 Mar 2011 17:18:23 -0000 1.84 +++ Overview.html 9 Mar 2011 06:04:28 -0000 1.85 @@ -28,7 +28,7 @@ <h1>CSS Writing Modes Module Level 3</h1> - <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 7 March 2011</h2> + <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 9 March 2011</h2> <dl> <dt>This version: @@ -36,7 +36,7 @@ <dd><a href="http://dev.w3.org/csswg/css3-writing-modes/">http://dev.w3.org/csswg/css3-writing-modes/</a> <!-- - <dd><a href="http://www.w3.org/TR/2011/WD-css3-writing-modes-20110307">http://www.w3.org/TR/2011/ED-css3-writing-modes-20110307</a> + <dd><a href="http://www.w3.org/TR/2011/WD-css3-writing-modes-20110309">http://www.w3.org/TR/2011/ED-css3-writing-modes-20110309</a> --> @@ -1326,10 +1326,10 @@ href=script-orientations>Appendix A</a> for a list of intrinsic bi-orientational transforms.) - <p>Scripts without a native vertical orientation can be either rotated or - translated: the transform used is a stylistic preference depending on the - text's usage, rather than a matter of correctness. The ‘<a - href="#text-orientation0"><code + <p>Scripts without a native vertical orientation can be either rotated (set + sideways) or translated (set upright): the transform used is a stylistic + preference depending on the text's usage, rather than a matter of + correctness. The ‘<a href="#text-orientation0"><code class=property>text-orientation</code></a>’ property's ‘<a href="#vertical-right"><code class=css>vertical-right</code></a>’ and ‘<a href="#upright"><code class=css>upright</code></a>’ @@ -1346,16 +1346,15 @@ decorative layout effects and to work around limitations in CSS support for bottom-to-top scripts. - <p class=issue>Ideally, punctuation should be either rotated or set - vertically depending on whether the primary script is horizontal-only or - vertical. However, this information (which, like the base directionality, - is a property of the content) is not available to us. (UTN 22 used the - concept of a vertical directionality, given via ‘<a - href="#direction0"><code class=property>direction</code></a>’ or the - HTML <code>dir</code> attribute to handle this issue.) The current spec - works around this by using the East Asian Width property; but this - approach only works if vertical scripts do not share punctuation with - horizontal-only scripts. + <p class=issue>Ideally, punctuation should be either sideways or upright + depending on whether the primary script is horizontal-only or vertical. + However, this information (which, like the base directionality, is a + property of the content) is not available to us. (UTN 22 used the concept + of a vertical directionality, given via ‘<a href="#direction0"><code + class=property>direction</code></a>’ or the HTML <code>dir</code> + attribute to handle this issue.) The current spec works around this by + using the East Asian Width property; but this approach only works if + vertical scripts do not share punctuation with horizontal-only scripts. <h3 id=text-orientation><span class=secno>5.1. </span> Orienting Text: the ‘<a href="#text-orientation0"><code @@ -1415,9 +1414,9 @@ <dd> <p>In vertical writing modes, grapheme clusters from horizontal-only - scripts are rotated 90° clockwise from their standard orientation in - horizontal text. Characters from vertical scripts are set with their - intrinsic orientation. + scripts are set sideways, i.e. 90° clockwise from their standard + orientation in horizontal text. Characters from vertical scripts are set + with their intrinsic orientation. <p>In vertical writing modes, this value puts the element in a <i>vertical typographic mode</i> and is typical for layout of primarily @@ -1449,20 +1448,16 @@ <dd> <p>In vertical writing modes, this causes text to be set as if in a horizontal layout (using horizontal glyph variants and metrics), but - rotated 90° clockwise. This value puts the UA in a This value puts - the element in a <i>horizontal typographic mode</i> and can be used for - ‘<code class=css>vertical-rl</code>’ text in a primarily - horizontal-script document. + rotated 90° clockwise. This value puts the element in a + <i>horizontal typographic mode</i>. <dt><dfn id=rotate-left>rotate-left</dfn> <dd> <p>In vertical writing modes, this causes text to be set as if in a horizontal layout (using horizontal glyph variants and metrics), but - rotated 90° counter-clockwise. This value puts theelement in a - <i>horizontal typographic mode</i> and can be used for ‘<code - class=css>vertical-lr</code>’ text in a primarily - horizontal-script document. + rotated 90° counter-clockwise. This value puts the element in a + <i>horizontal typographic mode</i>. <p>If set on a non-replaced inline whose parent is not ‘<a href="#rotate-left"><code class=css>rotate-left</code></a>’, this @@ -1489,7 +1484,9 @@ class=css>vertical-rl</code>’ writing mode and equivalent to ‘<a href="#rotate-left"><code class=css>rotate-left</code></a>’ in ‘<code - class=css>vertical-lr</code>’ writing mode. + class=css>vertical-lr</code>’ writing mode. It can be useful when + setting horizontal script text vertically in a primarily horizontal-only + document. <dt><dfn id=auto>auto</dfn> @@ -1523,33 +1520,69 @@ and rotate-right</p> </div> + <div class=example> + <p>In the following example, the root element of a horizontal-only + document is set to use ‘<a href="#rotate-normal"><code + class=css>rotate-normal</code></a>’. In the rest of the document, + the author can just set ‘<a href="#writing-mode1"><code + class=property>writing-mode</code></a>’ without worrying about + whether the text is ‘<code class=css>vertical-rl</code>’ or + ‘<code class=css>vertical-lr</code>’. + + <pre> + :root { text-orientation: rotate-normal; } + caption { caption-side: left; writing-mode: vertical-lr; } + thead th { writing-mode: vertical-lr; } + h1.banner { position: absolute; top: 0; right: 0; writing-mode: vertical-rl; } + </pre> + </div> + <p>In vertical typographic modes, any grapheme clusters belonging to a - vertical script <em>must</em> be set using its intrinsic orientation. (See - <a href="#script-orientations">Appendix B</a>.) An exception is made for - halfwidth forms belonging to the hiragana, katakana, and hangul scripts, - which may be set rotated. <span class=issue>What is the appropriate - behavior here? Or is there none?</span> Grapheme clusters belonging to - other scripts must be rotated (for ‘<a href="#vertical-right"><code + vertical script <em>must</em> be set using its base character's intrinsic + orientation. (See <a href="#script-orientations">Appendix A</a>) Grapheme + clusters belonging to horizontal-only scripts must set sideways (for + ‘<a href="#vertical-right"><code class=css>vertical-right</code></a>’) or set upright (for ‘<a - href="#upright"><code class=css>upright</code></a>’). An exception - is made for characters with a fullwidth (F) or wide (W) East Asian Width - property, which should be set upright (using vertical font settings). <a - href="#UAX11" rel=biblioentry>[UAX11]<!--{{!UAX11}}--></a> + href="#upright"><code class=css>upright</code></a>’) depending on + the ‘<a href="#text-orientation0"><code + class=property>text-orientation</code></a>’ property. - <p>The orientation of characters belonging to the Common and Inherited - script categories is UA-dependent for vertical typographic modes. If the - font and font system support mixed-orientation typesetting (e.g. the - <code>vrt2</code> feature in OpenType), the UA should rely on that feature - to set ‘<a href="#vertical-right"><code - class=css>vertical-right</code></a>’ text. Similarly if the font and - font system support upright typesetting (e.g. the <code>vert</code> - feature in OpenType) then the UA should rely on that feature to set - ‘<a href="#upright"><code class=css>upright</code></a>’ text. - If the UA needs to synthesize such features (e.g. if an OpenType font has - only the <code>vert</code> but not the <code>vrt2</code> feature), then it - should set all Common and Inherited characters with an East Asian Width of - F or W vertically (i.e. upright, using vertical font settings if - available), and rotate the rest (using horizontal font settings). + <p>The orientation of characters belonging to the Common, Inherited, and + Unknown script categories may be UA- or font-dependent in vertical + typographic modes. The Unicode East Asian Width property <a href="#UAX11" + rel=biblioentry>[UAX11]<!--{{!UAX11}}--></a> can be used to distinguish + whether a character is typically be set upright or sideways in ‘<a + href="#vertical-right"><code class=css>vertical-right</code></a>’: + characters classified as fullwidth (F) or wide (W) are typically set + upright (using vertical font settings), whereas characters classified as + neutral (N), narrow (Na) or halfwidth (H) are typically set sideways + (using horizontal font settings). + + <p>If the font and font system support mixed-orientation typesetting, the + UA should rely on that feature to set ‘<a + href="#vertical-right"><code class=css>vertical-right</code></a>’ + text. Similarly if the font and font system support upright typesetting + then the UA should rely on that feature to set ‘<a + href="#upright"><code class=css>upright</code></a>’ text. + + <p>If the UA needs to synthesize such features (e.g. if an OpenType font + has only the <code>vert</code> but not the <code>vrt2</code> feature), + then it should: + + <ul> + <li>for ‘<a href="#vertical-right"><code + class=css>vertical-right</code></a>’, set all characters with an + East Asian Width of F or W upright (i.e. translated, using vertical font + settings if available), and set sideways the rest (i.e. rotated, using + horizontal font settings). + + <li>for ‘<a href="#upright"><code + class=css>upright</code></a>’, set all characters belonging to the + Mongolian and Phags Pa scripts sideways, and set upright the rest. + </ul> + + <p class=issue>Need to define handling of EAW Ambiguous (A) symbols and + punctuation. <p class=issue> Link to definition of grapheme clusters in <a href="#UAX29" rel=biblioentry>[UAX29]<!--{{!UAX29}}--></a>. @@ -2589,9 +2622,7 @@ <p>This appendix gives the orientational properties of vertical scripts in <a href="#UNICODE" rel=biblioentry>[UNICODE]<!--{{!UNICODE}}--></a>. Any - script not listed explicitly is assumed to be <i>horizontal-only</i>. See - <a href="#UAX24" rel=biblioentry>[UAX24]<!--{{!UAX24}}--></a> for the list - of script names. + script not listed explicitly is assumed to be <i>horizontal-only</i>. <table> <thead> @@ -2612,11 +2643,6 @@ <td>translate <tr> - <td>Katakana_Or_Hiragana - - <td>translate - - <tr> <td>Katakana <td>translate @@ -2637,7 +2663,7 @@ <td>rotate <tr> - <td>Phags_Pa + <td>Phags Pa <td>rotate <span class=issue>?</span> @@ -2647,14 +2673,18 @@ <td>translate </table> - <p class=note>Ogham is also a rotating bi-orientational script, but because - it is a bottom-to-top script for the purposes of this specification it is - treated as left-to-right horizontal. A future version of CSS may define - proper handling of bottom-to-top scripts. Authors can work around this - lack of support with the ‘<a href="#rotate-left"><code - class=css>rotate-left</code></a>’ value of ‘<a - href="#text-orientation0"><code - class=property>text-orientation</code></a>’. + <p>For the purposes of this specification, all fullwidth characters <a + href="#UAX11" rel=biblioentry>[UAX11]<!--{{!UAX11}}--></a> are treated as + belonging to a vertical script with a translate bi-orientational + transform.</p> + <!-- + <p class="note">Ogham is also a rotating bi-orientational script, but + because it is a bottom-to-top script for the purposes of this + specification it is treated as left-to-right horizontal. A future + version of CSS may define proper handling of bottom-to-top scripts. + Authors can work around this lack of support with the ‘<code class=css>rotate-left</code>’ + value of ‘<code class=property>text-orientation</code>’. +--> <h2 class=no-num id=appendix-b-references>Appendix B: References</h2> @@ -2706,15 +2736,6 @@ </dd> <!----> - <dt id=UAX24>[UAX24] - - <dd>Mark Davis. <a - href="http://www.unicode.org/unicode/reports/tr24/tr24-7.html"><cite>Script - Names.</cite></a> 28 March 2005. Unicode Standard Annex #24. URL: <a - href="http://www.unicode.org/unicode/reports/tr24/tr24-7.html">http://www.unicode.org/unicode/reports/tr24/tr24-7.html</a> - </dd> - <!----> - <dt id=UAX29>[UAX29] <dd>Mark Davis. <a Index: Overview.src.html =================================================================== RCS file: /sources/public/csswg/css3-writing-modes/Overview.src.html,v retrieving revision 1.88 retrieving revision 1.89 diff -u -d -r1.88 -r1.89 --- Overview.src.html 7 Mar 2011 17:18:23 -0000 1.88 +++ Overview.src.html 9 Mar 2011 06:04:28 -0000 1.89 @@ -961,19 +961,20 @@ rotate. (See <a href="script-orientations">Appendix A</a> for a list of intrinsic bi-orientational transforms.)</p> - <p>Scripts without a native vertical orientation can be either rotated or - translated: the transform used is a stylistic preference depending on - the text's usage, rather than a matter of correctness. The - 'text-orientation' property's ''vertical-right'' and ''upright'' values + <p>Scripts without a native vertical orientation can be either rotated + (set sideways) or translated (set upright): the transform used is a + stylistic preference depending on the text's usage, rather than a + matter of correctness. + The 'text-orientation' property's ''vertical-right'' and ''upright'' values are provided to specify rotation vs. translation of horizontal-only text. <p class="note">The ''rotate-left'', ''rotate-right'', and ''rotate-normal'' values of 'text-orientation' are provided for decorative layout effects and to work around limitations in CSS support for bottom-to-top scripts. - <p class="issue">Ideally, punctuation should be either rotated or set - vertically depending on whether the primary script is horizontal-only - or vertical. However, this information (which, like the base directionality, + <p class="issue">Ideally, punctuation should be either sideways or upright + depending on whether the primary script is horizontal-only or vertical. + However, this information (which, like the base directionality, is a property of the content) is not available to us. (UTN 22 used the concept of a vertical directionality, given via 'direction' or the HTML <code>dir</code> attribute to handle this issue.) The current spec works @@ -1029,8 +1030,8 @@ <dl> <dt><dfn>vertical-right</dfn></dt> <dd><p>In vertical writing modes, grapheme clusters from horizontal-only - scripts are rotated 90° clockwise from their standard orientation - in horizontal text. + scripts are set sideways, i.e. 90° clockwise from their standard + orientation in horizontal text. Characters from vertical scripts are set with their intrinsic orientation. <p>In vertical writing modes, this value puts the element in a <i>vertical typographic mode</i> and is typical for layout of primarily @@ -1053,17 +1054,13 @@ <dt><dfn>rotate-right</dfn></dt> <dd><p>In vertical writing modes, this causes text to be set as if in a horizontal layout (using horizontal glyph variants and metrics), - but rotated 90° clockwise. This value puts the UA in a - This value puts the element in a <i>horizontal typographic mode</i> and - can be used for ''vertical-rl'' text in a primarily horizontal-script - document. + but rotated 90° clockwise. + This value puts the element in a <i>horizontal typographic mode</i>. <dt><dfn>rotate-left</dfn></dt> <dd><p>In vertical writing modes, this causes text to be set as if in a horizontal layout (using horizontal glyph variants and metrics), but rotated 90° counter-clockwise. - This value puts theelement in a <i>horizontal typographic mode</i> and - can be used for ''vertical-lr'' text in a primarily horizontal-script - document. + This value puts the element in a <i>horizontal typographic mode</i>. <p>If set on a non-replaced inline whose parent is not ''rotate-left'', this forces ''isolate'' to be added to the computed value of 'unicode-bidi'. Layout of text is exactly as for ''rotate-right'' except that the @@ -1076,7 +1073,8 @@ <dt><dfn>rotate-normal</dfn></dt> <dd><p>This value is equivalent to ''rotate-right'' in ''vertical-rl'' writing mode and equivalent to ''rotate-left'' in ''vertical-lr'' - writing mode. + writing mode. It can be useful when setting horizontal script text + vertically in a primarily horizontal-only document. <dt><dfn>auto</dfn></dt> <dd><p>[[!SVG11]] defines 'glyph-orientation-vertical' and 'glyph-orientation-horizontal' properties that were intended to control @@ -1100,30 +1098,55 @@ <p class="caption">text-orientation: vertical-right, upright, rotate-left, and rotate-right</p> </div> + <div class="example"> + <p>In the following example, the root element of a horizontal-only document + is set to use ''rotate-normal''. In the rest of the document, the author + can just set 'writing-mode' without worrying about whether the text is + ''vertical-rl'' or ''vertical-lr''. + <pre> + :root { text-orientation: rotate-normal; } + caption { caption-side: left; writing-mode: vertical-lr; } + thead th { writing-mode: vertical-lr; } + h1.banner { position: absolute; top: 0; right: 0; writing-mode: vertical-rl; } + </pre> + </div> + <p>In vertical typographic modes, any grapheme clusters belonging to a - vertical script <em>must</em> be set using its intrinsic orientation. - (See <a href="#script-orientations">Appendix B</a>.) - An exception is made for halfwidth forms belonging to the hiragana, - katakana, and hangul scripts, which may be set rotated. - <span class="issue">What is the appropriate behavior here? Or is there none?</span> - Grapheme clusters belonging to other scripts must be rotated (for - ''vertical-right'') or set upright (for ''upright''). An exception is - made for characters with a fullwidth (F) or wide (W) East Asian Width - property, which should be set upright (using vertical font settings). [[!UAX11]] + vertical script <em>must</em> be set using its base character's + intrinsic orientation. (See <a href="#script-orientations">Appendix A</a>) + Grapheme clusters belonging to horizontal-only scripts must set sideways + (for ''vertical-right'') or set upright (for ''upright'') depending on the + 'text-orientation' property. + + <p>The orientation of characters belonging to the Common, Inherited, and Unknown + script categories may be UA- or font-dependent in vertical typographic + modes. The Unicode East Asian Width property [[!UAX11]] can be used to + distinguish whether a character is typically be set upright or sideways in + ''vertical-right'': characters classified as fullwidth (F) or wide (W) + are typically set upright (using vertical font settings), whereas characters + classified as neutral (N), narrow (Na) or halfwidth (H) are typically set + sideways (using horizontal font settings). + + <p>If the font and font system support mixed-orientation typesetting, the + UA should rely on that feature to set ''vertical-right'' text. Similarly + if the font and font system support upright typesetting then the UA should + rely on that feature to set ''upright'' text. + + <p>If the UA needs to synthesize such features (e.g. if an OpenType font + has only the <code>vert</code> but not the <code>vrt2</code> feature), + then it should: + <ul> + <li>for ''vertical-right'', set all characters with an East Asian Width + of F or W upright (i.e. translated, using vertical font settings if + available), and set sideways the rest (i.e. rotated, using horizontal + font settings). + <li>for ''upright'', set all characters belonging to the Mongolian and + Phags Pa scripts sideways, and set upright the rest. + </ul> + + <p class="issue">Need to define handling of EAW Ambiguous (A) symbols and + punctuation.</p> - <p>The orientation of characters belonging to the Common and Inherited - script categories is UA-dependent for vertical typographic modes. If - the font and font system support mixed-orientation typesetting (e.g. the - <code>vrt2</code> feature in OpenType), the UA should rely on that feature - to set ''vertical-right'' text. Similarly if the font and font system - support upright typesetting (e.g. the <code>vert</code> feature in OpenType) - then the UA should rely on that feature to set ''upright'' text. If the - UA needs to synthesize such features (e.g. if an OpenType font has only the - <code>vert</code> but not the <code>vrt2</code> feature), then it should - set all Common and Inherited characters with an East Asian Width of F or - W vertically (i.e. upright, using vertical font settings if available), - and rotate the rest (using horizontal font settings). - <p class="issue"> Link to definition of grapheme clusters in [[!UAX29]].</p> @@ -1962,7 +1985,7 @@ <p>This appendix gives the orientational properties of vertical scripts in [[!UNICODE]]. Any script not listed explicitly is assumed to be - <i>horizontal-only</i>. See [[!UAX24]] for the list of script names. + <i>horizontal-only</i>. <table> <thead> @@ -1971,22 +1994,27 @@ <tbody> <tr><td>Bopomofo <td>translate <tr><td>Hiragana <td>translate - <tr><td>Katakana_Or_Hiragana <td>translate <tr><td>Katakana <td>translate <tr><td>Han <td>translate <tr><td>Hangul <td>translate <tr><td>Mongolian <td>rotate - <tr><td>Phags_Pa <td>rotate <span class="issue">?</span> + <tr><td>Phags Pa <td>rotate <span class="issue">?</span> <tr><td>Yi <td>translate </tbody> </table> + <p>For the purposes of this specification, all fullwidth characters + [[!UAX11]] are treated as belonging to a vertical script with a + translate bi-orientational transform.</p> + +<!-- <p class="note">Ogham is also a rotating bi-orientational script, but because it is a bottom-to-top script for the purposes of this specification it is treated as left-to-right horizontal. A future version of CSS may define proper handling of bottom-to-top scripts. Authors can work around this lack of support with the ''rotate-left'' value of 'text-orientation'. +--> <h2 class="no-num">Appendix B: References</h2>
Received on Wednesday, 9 March 2011 06:04:32 UTC