csswg/css3-fonts Fonts.html,1.41,1.42

Update of /sources/public/csswg/css3-fonts
In directory hutz:/tmp/cvs-serv5720

Modified Files:
	Fonts.html 
Log Message:
updated font-feature-settings syntax

Index: Fonts.html
===================================================================
RCS file: /sources/public/csswg/css3-fonts/Fonts.html,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -d -r1.41 -r1.42
--- Fonts.html	3 Mar 2011 13:37:19 -0000	1.41
+++ Fonts.html	4 Mar 2011 08:34:46 -0000	1.42
@@ -111,14 +111,14 @@
 
    <h1>CSS Fonts Module Level 3</h1>
 
-   <h2 class="no-num no-toc" id=editors>Editor's Draft 3 March 2011</h2>
+   <h2 class="no-num no-toc" id=editors>Editor's Draft 4 March 2011</h2>
 
    <dl id=authors>
     <dt>This version:
 
     <dd><a
      href="http://dev.w3.org/csswg/css3-fonts/">http://dev.w3.org/csswg/css3-fonts/</a>
-     <!-- <dd><a href="http://www.w3.org/TR/2011/ED-css3-fonts-20110303">http://www.w3.org/TR/2011/ED-css3-fonts-20110303</a> -->
+     <!-- <dd><a href="http://www.w3.org/TR/2011/ED-css3-fonts-20110304">http://www.w3.org/TR/2011/ED-css3-fonts-20110304</a> -->
      
 
     <dt>Latest version:
@@ -4191,7 +4191,7 @@
     <tr>
      <td>Value:
 
-     <td>normal | &lt;string&gt;
+     <td>normal | [&lt;featuretag&gt;]+
 
     <tr>
      <td>Initial:
@@ -4223,54 +4223,76 @@
 
      <td>as specified
   </table>
-  <!-- ...they are not well-suited for use in a general use property. -->
 
-  <p>This property provides low-level control over font features. It is
-   intended as a way of providing access to font features that are not widely
-   used but are needed for a particular use case. A value of ‘<code
-   class=property>normal</code>’ means that no change in rendering occurs
-   due to this property while a string value defines a specific set of font
-   settings to be used when rendering. A null string is equivalent to
-   specifying a value of ‘<code class=property>normal</code>’. This
-   property only affects font rendering, its value does not affect font
-   selection.
+  <p>This property provides low-level control over OpenType font features. It
+   is intended as a way of providing access to font features that are not
+   widely used but are needed for a particular use case. A value of ‘<code
+   class=property>normal</code>’ means that no change in glyph selection or
+   positioning occurs due to this property.
 
-  <p>The string used is specific to the type of font used. For OpenType
-   fonts, the value of ‘<code class=css>&lt;string&gt;</code>’ is a
-   comma-separated list of &lt;feature-name&gt;=&lt;integer&gt; paired
-   values, where ‘<code class=css>&lt;feature-name&gt;</code>’ is the
-   case-sensitive name of an OpenType feature defined in <a
+  <p>
+
+  <pre>/* enable small caps and use second swash alternate */
+font-feature-settings: smcp swsh(2);</pre>
+
+  <p>Feature tags are used with the following syntax:
+
+  <pre
+   class=prod><dfn id=ltfeaturetaggt><var>&lt;featuretag&gt;</var></dfn> = [ot-]ident[( &lt;integer&gt; | on | off )]?</pre>
+
+  <p>The identifier indicates a case-sensitive OpenType feature tag. For it
+   to match an OpenType feature contained in a font, it must follow the
+   syntax rules for tags. OpenType feature tags that are not valid CSS
+   identifiers or conflict with CSS keywords must be prefixed with ‘<code
+   class=property>ot-</code>’. In this case the ‘<code
+   class=property>ot-</code>’ prefex is removed and the remaining portion
+   of the identifier is used to lookup the feature tag in the font. Feature
+   tags need only match a feature tag defined in the font, they are not
+   limited to explicitly registered OpenType features. Fonts defining custom
+   feature tags should follow the <a
+   href="http://www.microsoft.com/typography/otspec/featuretags.htm">tag name
+   rules</a> defined in the OpenType specification <a
    href="#OPENTYPE-FEATURES"
-   rel=biblioentry>[OPENTYPE-FEATURES]<!--{{!OPENTYPE-FEATURES}}--></a> and
-   ‘<code class=css>&lt;integer&gt;</code>’ is 0 or a positive integer.
-   For OpenType features that are boolean in nature, a value of 0 disables
-   the feature and a non-zero value enables the feature. Value pairs that
-   refer to non-existent features or use values not appropriate for the
-   feature are ignored. Whitespace within the string is ignored.
+   rel=biblioentry>[OPENTYPE-FEATURES]<!--{{!OPENTYPE-FEATURES}}--></a>.
+   Feature tags not present in the font are ignored; a user agent must not
+   attempt to synthesize fallback behavior based on these feature tags.
+
+  <p>If present, a value in parentheses indicates an index used for glyph
+   selection. An &lt;integer&gt; value must be 0 or greater. A value of 0
+   indicates that the feature is disabled. For boolean features, a value of 1
+   enables the feature. For non-boolean features, a value of 1 or greater
+   enables the feature and indicates the feature selection index. A value of
+   ‘<code class=property>on</code>’ is synonymous with 1 and ‘<code
+   class=property>off</code>’ is synonymous with 0. If the value in
+   parentheses is omitted, a value of 1 is assumed.
+
+  <pre>
+font-feature-settings: dlig(1);   /* dlig=1 enable discretionary ligatures */
+font-feature-settings: smcp(on);  /* smcp=1 enable small caps */
+font-feature-settings: ot-c2sc;   /* c2sc=1 enable caps to small caps */
+font-feature-settings: liga(off); /* liga=0 no common ligatures */
+font-feature-settings: tnum hist; /* tnum=1, hist=1 enabled tabular numbers and historical forms */
+font-feature-settings: 3piX(1);   /* invalid syntax, feature tag not identifier */
+font-feature-settings: ot-3piX;   /* 3piX=1 (this feature not defined) */
+font-feature-settings: PKRN;      /* PKRN=1 enable custom feature */
+</pre>
 
   <p>Authors should generally use ‘<code class=property><a
    href="#propdef-font-variant">font-variant</a></code>’ and its related
    subproperties whenever possible and only use this property for special
    cases where its use is the only way of accessing a particular infrequently
-   used font feature.</p>
-  <!--
-
-Substitute epigraphy example below.
-
-Scholars studying Greek coin inscriptions often come across many
-different variations for individual Greek letters found on ancient
-coinage.  Using a font containing character variants found in these
-inscriptions, an author can describe precisely the appearance of
-the underlying Greek text without using Unicode private-user codepoints.
+   used font feature.
 
--->
+  <p>Although specifically defined for OpenType feature tags, feature tags
+   for other modern font formats that support font features may be added in
+   the future.
 
   <div class=example>
    <p>The Japanese text below will be rendered with half-width kana
     characters:</p>
 
    <pre lang=ja>
-body { font-feature-settings: "hwid=1"; /* Half-width OpenType feature */ }
+body { font-feature-settings: hwid; /* Half-width OpenType feature */ }
 
 &lt;p>毎日<a href="http://images.google.com/images?q=%E3%82%AB%E3%83%AC%E3%83%BC" style="text-decoration: none;">カレー</a>食べてるのに、飽きない&lt;/p>
 </pre>
@@ -4686,10 +4708,8 @@
 
    <li>Revised font matching algorithm
 
-   <li>Added font-weight-synthetic, font-style-synthetic properties
-
-   <li>Added specific requirements and guidelines for dealing with OpenType
-    names
+   <li>Added font-weight-synthetic, font-style-synthetic properties</li>
+   <!-- Added specific requirements and guidelines for dealing with OpenType names -->
   </ul>
 
   <h2 class=no-num id=acknowledgments>Acknowledgments</h2>
@@ -4989,6 +5009,9 @@
    <li><var>&lt;feature-index&gt;</var>, <a href="#ltfeature-indexgt"
     title="&lt;feature-index&gt;"><strong>6.9</strong></a>
 
+   <li><var>&lt;featuretag&gt;</var>, <a href="#ltfeaturetaggt"
+    title="&lt;featuretag&gt;"><strong>6.12</strong></a>
+
    <li><var>&lt;feature-value-list&gt;</var>, <a
     href="#ltfeature-value-listgt"
     title="&lt;feature-value-list&gt;"><strong>6.9</strong></a>
@@ -5294,7 +5317,7 @@
      <td><a class=property
       href="#propdef-font-feature-settings">font-feature-settings</a>
 
-     <td>normal | &lt;string&gt;
+     <td>normal | [&lt;featuretag&gt;]+
 
      <td>normal
 
@@ -5448,8 +5471,8 @@
 
      <td>normal | inherit | [ &lt;contextual-alt-values&gt; ||
       stylistic(&lt;feature-value-name&gt;) || historical-forms ||
-      styleset(&lt;;feature-value-name&gt; [, &lt;feature-value-name&gt;]*)
-      || character-variant(&lt;feature-value-name&gt;
+      styleset(&lt;feature-value-name&gt; [, &lt;feature-value-name&gt;]*) ||
+      character-variant(&lt;feature-value-name&gt;
       [,&lt;feature-value-name&gt;]*) || swash(&lt;feature-value-name&gt;) ||
       contextual-swash(&lt;feature-value-name&gt;) ||
       ornament(&lt;feature-value-name&gt;) ||
@@ -5609,18 +5632,8 @@
 
 to do:
 
-- rework intro to font features
-- describe how font-variant values do *not* apply for system-wide fallback
-- rework syntax of font-feature-settings
-- define on/off as aliases for 1/0 when numeric selectors are used for font-feature-settings
-- wording for superscript/subscript handling
 - wording of OpenType family name handling
-- font-stretch matching
 - handling combining sequences in the font matching algorithm
 - fix-up fi ligature example
 
-done:
-
-* add character-variant
-
 -->

Received on Friday, 4 March 2011 08:34:51 UTC