[css-fonts] more unicode-range revisions and link fixup

Wed, 22 May 2013 17:51:04 +0800

author
John Daggett <jdaggett@mozilla.com>
date
Wed, 22 May 2013 17:51:04 +0800
changeset 8225
351f9086c29d
parent 8224
ae6ae3bff4f8
child 8226
b4a5e254381f

[css-fonts] more unicode-range revisions and link fixup

css-fonts/Fonts.html file | annotate | diff | comparison | revisions
     1.1 --- a/css-fonts/Fonts.html	Wed May 22 11:22:21 2013 +0200
     1.2 +++ b/css-fonts/Fonts.html	Wed May 22 17:51:04 2013 +0800
     1.3 @@ -112,7 +112,7 @@
     1.4  
     1.5     <h1>CSS Fonts Module Level 3</h1>
     1.6  
     1.7 -   <h2 class="no-num no-toc" id=editors-draft-21-may-2013>Editor's Draft 21
     1.8 +   <h2 class="no-num no-toc" id=editors-draft-22-may-2013>Editor's Draft 22
     1.9      May 2013</h2>
    1.10  
    1.11     <dl id=authors>
    1.12 @@ -120,7 +120,7 @@
    1.13  
    1.14      <dd><a
    1.15       href="http://dev.w3.org/csswg/css-fonts/">http://dev.w3.org/csswg/css-fonts/</a>
    1.16 -     <!-- <dd><a href="http://www.w3.org/TR/2013/ED-css3-fonts-20130521/">http://www.w3.org/TR/2013/ED-css3-fonts-20130521/</a> -->
    1.17 +     <!-- <dd><a href="http://www.w3.org/TR/2013/ED-css3-fonts-20130522/">http://www.w3.org/TR/2013/ED-css3-fonts-20130522/</a> -->
    1.18       
    1.19  
    1.20      <dt>Latest version:
    1.21 @@ -298,20 +298,23 @@
    1.22       <li><a href="#unicode-range-desc"><span class=secno>4.5 </span>Character
    1.23        range: the unicode-range descriptor</a>
    1.24  
    1.25 -     <li><a href="#font-rend-desc"><span class=secno>4.6 </span>Font
    1.26 +     <li><a href="#composite-fonts"><span class=secno>4.6 </span>Using
    1.27 +      character ranges to define composite fonts</a>
    1.28 +
    1.29 +     <li><a href="#font-rend-desc"><span class=secno>4.7 </span>Font
    1.30        features: the font-variant and font-feature-settings descriptors</a>
    1.31  
    1.32 -     <li><a href="#font-face-loading"><span class=secno>4.7 </span>Font
    1.33 +     <li><a href="#font-face-loading"><span class=secno>4.8 </span>Font
    1.34        loading guidelines</a>
    1.35  
    1.36 -     <li><a href="#same-origin-restriction"><span class=secno>4.8
    1.37 +     <li><a href="#same-origin-restriction"><span class=secno>4.9
    1.38        </span>Same-origin restriction for fonts</a>
    1.39        <ul class=toc>
    1.40 -       <li><a href="#default-same-origin-restriction"><span class=secno>4.8.1
    1.41 +       <li><a href="#default-same-origin-restriction"><span class=secno>4.9.1
    1.42          </span>Default same-origin restriction</a>
    1.43  
    1.44         <li><a href="#allowing-cross-origin-font-loading"><span
    1.45 -        class=secno>4.8.2 </span>Allowing cross-origin font loading</a>
    1.46 +        class=secno>4.9.2 </span>Allowing cross-origin font loading</a>
    1.47        </ul>
    1.48      </ul>
    1.49  
    1.50 @@ -560,24 +563,26 @@
    1.51     the Arabic script is shared by Persian and Urdu and Cyrillic is used with
    1.52     many languages, not just Russian.
    1.53  
    1.54 -  <p>The character map of a font defines the mapping of characters to glyphs
    1.55 -   for that font. If a document contains characters not supported by the
    1.56 -   character maps of the fonts contained in a font family list, a user agent
    1.57 -   may use a system font fallback procedure to locate an appropriate font
    1.58 -   that does. If no appropriate font can be found, some form of "missing
    1.59 -   glyph" character will be rendered by the user agent. System fallback can
    1.60 -   occur when the specified list of font families does not include a font
    1.61 -   that supports a given character.
    1.62 -
    1.63 -  <p>Although the character map of a font maps a given character to a glyph
    1.64 -   for that character, modern font technologies such as OpenType and AAT
    1.65 -   (Apple Advanced Typography) provide ways of mapping a character to
    1.66 -   different glyphs based upon feature settings. Fonts in these formats allow
    1.67 -   these features to be embedded in the font itself and controlled by
    1.68 -   applications. Common typographic features which can be specified this way
    1.69 -   include ligatures, swashes, contextual alternates, proportional and
    1.70 -   tabular figures, and automatic fractions, to list just a few. For a visual
    1.71 -   overview of OpenType features, see the <a href="#OPENTYPE-FONT-GUIDE"
    1.72 +  <p>The <a href="#character-map"><em>character map</em></a> of a font
    1.73 +   defines the mapping of characters to glyphs for that font. If a document
    1.74 +   contains characters not supported by the <a href="#character-map"><em
    1.75 +   title="character map">character maps</em></a> of the fonts contained in a
    1.76 +   font family list, a user agent may use a system font fallback procedure to
    1.77 +   locate an appropriate font that does. If no appropriate font can be found,
    1.78 +   some form of "missing glyph" character will be rendered by the user agent.
    1.79 +   System fallback can occur when the specified list of font families does
    1.80 +   not include a font that supports a given character.
    1.81 +
    1.82 +  <p>Although the <a href="#character-map"><em>character map</em></a> of a
    1.83 +   font maps a given character to a glyph for that character, modern font
    1.84 +   technologies such as OpenType and AAT (Apple Advanced Typography) provide
    1.85 +   ways of mapping a character to different glyphs based upon feature
    1.86 +   settings. Fonts in these formats allow these features to be embedded in
    1.87 +   the font itself and controlled by applications. Common typographic
    1.88 +   features which can be specified this way include ligatures, swashes,
    1.89 +   contextual alternates, proportional and tabular figures, and automatic
    1.90 +   fractions, to list just a few. For a visual overview of OpenType features,
    1.91 +   see the <a href="#OPENTYPE-FONT-GUIDE"
    1.92     rel=biblioentry>[OPENTYPE-FONT-GUIDE]<!--{{OPENTYPE-FONT-GUIDE}}--></a>.
    1.93  
    1.94    <h2 id=basic-font-props><span class=secno>3 </span>Basic Font Properties</h2>
    1.95 @@ -590,7 +595,7 @@
    1.96    <h3 id=font-family-prop><span class=secno>3.1 </span>Font family: the <a
    1.97     href="#propdef-font-family">font-family</a> property</h3>
    1.98  
    1.99 -  <table class=propdef id=namefont-familyvalue-ltfamily-name-ltgen>
   1.100 +  <table class=propdef id=namefont-familyvalue-ltfamily-namegt-ltg>
   1.101     <tbody>
   1.102      <tr>
   1.103       <td>Name:
   1.104 @@ -600,7 +605,9 @@
   1.105      <tr>
   1.106       <td>Value:
   1.107  
   1.108 -     <td>[ &lt;family-name> | &lt;generic-family> ]#
   1.109 +     <td>[ <a href="#family-name-value"><var>&lt;family-name&gt;</var></a> |
   1.110 +      <a href="#generic-family-value"><var>&lt;generic-family&gt;</var></a> ]
   1.111 +      #
   1.112  
   1.113      <tr>
   1.114       <td>Initial:
   1.115 @@ -687,12 +694,12 @@
   1.116    <p>There are two types of font family names:
   1.117  
   1.118    <dl>
   1.119 -   <dt>&lt;family-name&gt;
   1.120 +   <dt><dfn id=family-name-value><var>&lt;family-name&gt;</var></dfn>
   1.121  
   1.122     <dd>The name of a font family of choice such as Helvetica or Verdana in
   1.123      the previous example.
   1.124  
   1.125 -   <dt>&lt;generic-family&gt;
   1.126 +   <dt><dfn id=generic-family-value><var>&lt;generic-family&gt;</var></dfn>
   1.127  
   1.128     <dd> The following generic family keywords are defined: ‘<a
   1.129      href="#serif"><code class=property>serif</code></a>’, ‘<a
   1.130 @@ -749,7 +756,8 @@
   1.131     class=property>initial</code>’ and ‘<code
   1.132     class=property>default</code>’ are reserved for future use and must also
   1.133     be quoted when used as font names. UAs must not consider these keywords as
   1.134 -   matching the ‘<code class=css>&lt;family-name&gt;</code>’ type.
   1.135 +   matching the <a
   1.136 +   href="#family-name-value"><var>&lt;family-name&gt;</var></a> type.
   1.137  
   1.138    <p>The precise way a set of fonts are grouped into font families varies
   1.139     depending upon the platform font management API's. The Windows GDI API
   1.140 @@ -1280,7 +1288,8 @@
   1.141     always lack italic or oblique faces. Fonts that support a mixture of
   1.142     scripts will sometimes omit specific scripts such as Arabic from the set
   1.143     of glyphs supported in the italic face. User agents should be careful
   1.144 -   about making character map assumptions across faces.
   1.145 +   about making <a href="#character-map"><em>character map</em></a>
   1.146 +   assumptions across faces.
   1.147  
   1.148    <p class=issue>For synthetic italics in vertical runs of Chinese, Japanese,
   1.149     or Korean text, is there a need to define explicitly the direction of the
   1.150 @@ -1291,7 +1300,7 @@
   1.151    <h3 id=font-size-prop><span class=secno>3.5 </span>Font size: the <a
   1.152     href="#propdef-font-size">font-size</a> property</h3>
   1.153  
   1.154 -  <table class=propdef id=namefont-sizevalueltabsolute-size-ltrela>
   1.155 +  <table class=propdef id=namefont-sizevalueltabsolute-sizegt-ltre>
   1.156     <tbody>
   1.157      <tr>
   1.158       <td>Name:
   1.159 @@ -1301,8 +1310,10 @@
   1.160      <tr>
   1.161       <td>Value:
   1.162  
   1.163 -     <td>&lt;absolute-size> | &lt;relative-size> | &lt;length> |
   1.164 -      &lt;percentage>
   1.165 +     <td><a href="#absolute-size-value"><var>&lt;absolute-size&gt;</var></a>
   1.166 +      | <a href="#relative-size-value"><var>&lt;relative-size&gt;</var></a> |
   1.167 +      <a href="#length-size-value"><var>&lt;length&gt;</var></a> | <a
   1.168 +      href="#percentage-size-value"><var>&lt;percentage&gt;</var></a>
   1.169  
   1.170      <tr>
   1.171       <td>Initial:
   1.172 @@ -1350,25 +1361,21 @@
   1.173     following meanings:
   1.174  
   1.175    <dl>
   1.176 -   <dt><a name=x18><span class=index-def id=ltabsolute-sizegt
   1.177 -    title="&lt;absolute-size&gt;">
   1.178 -    <strong>&lt;absolute-size&gt;</strong></span></a>
   1.179 -
   1.180 -   <dd> An <a class=value-def
   1.181 -    name=value-def-absolute-size>&lt;absolute-size&gt;</a> keyword refers to
   1.182 -    an entry in a table of font sizes computed and kept by the user agent.
   1.183 -    Possible values are:
   1.184 +   <dt><dfn id=absolute-size-value><var>&lt;absolute-size&gt;</var></dfn>
   1.185 +
   1.186 +   <dd> An <a
   1.187 +    href="#absolute-size-value"><var>&lt;absolute-size&gt;</var></a> keyword
   1.188 +    refers to an entry in a table of font sizes computed and kept by the user
   1.189 +    agent. Possible values are:
   1.190      <p> [ xx-small | x-small | small | medium | large | x-large | xx-large ]</p>
   1.191  
   1.192 -   <dt><a name=x19><span class=index-def id=ltrelative-sizegt
   1.193 -    title="&lt;relative-size&gt;">
   1.194 -    <strong>&lt;relative-size&gt;</strong></span></a>
   1.195 -
   1.196 -   <dd> A <a class=value-def
   1.197 -    name=value-def-relative-size>&lt;relative-size&gt;</a> keyword is
   1.198 -    interpreted relative to the table of font sizes and the computed ‘<a
   1.199 -    href="#propdef-font-size"><code class=property>font-size</code></a>’ of
   1.200 -    the parent element. Possible values are:
   1.201 +   <dt><dfn id=relative-size-value><var>&lt;relative-size&gt;</var></dfn>
   1.202 +
   1.203 +   <dd> A <a href="#relative-size-value"><var>&lt;relative-size&gt;</var></a>
   1.204 +    keyword is interpreted relative to the table of font sizes and the
   1.205 +    computed ‘<a href="#propdef-font-size"><code
   1.206 +    class=property>font-size</code></a>’ of the parent element. Possible
   1.207 +    values are:
   1.208      <p> [ larger | smaller ]
   1.209  
   1.210      <p> For example, if the parent element has a font size of ‘<code
   1.211 @@ -1380,14 +1387,12 @@
   1.212       user agent may have to extrapolate table values if the numerical value
   1.213       goes beyond the keywords.
   1.214  
   1.215 -   <dt><span class=index-inst id=ltlengthgt
   1.216 -    title="&lt;length&gt;">&lt;length&gt;</span>
   1.217 +   <dt><dfn id=length-size-value><var>&lt;length&gt;</var></dfn>
   1.218  
   1.219     <dd>A length value specifies an absolute font size (independent of the
   1.220      user agent's font table). Negative lengths are illegal.
   1.221  
   1.222 -   <dt><span class=index-inst id=ltpercentagegt-
   1.223 -    title="&lt;percentage&gt;">&lt;percentage&gt; </span>
   1.224 +   <dt><dfn id=percentage-size-value><var>&lt;percentage&gt;</var></dfn>
   1.225  
   1.226     <dd>A percentage value specifies an absolute font size relative to the
   1.227      parent element's font size. Use of percentage values, or values in
   1.228 @@ -1531,7 +1536,8 @@
   1.229      <tr>
   1.230       <td>Value:
   1.231  
   1.232 -     <td>none | auto | &lt;number>
   1.233 +     <td>none | auto | <a
   1.234 +      href="#aspect-ratio-value"><var>&lt;number&gt;</var></a>
   1.235  
   1.236      <tr>
   1.237       <td>Initial:
   1.238 @@ -1640,8 +1646,7 @@
   1.239       normalized across fonts based on the x-height without the need to
   1.240       specify the aspect ratio explicitly.</p>
   1.241  
   1.242 -   <dt><span class=index-inst id=ltnumbergt
   1.243 -    title="&lt;number&gt;">&lt;number&gt;</span>
   1.244 +   <dt><dfn id=aspect-ratio-value><var>&lt;number&gt;</var></dfn>
   1.245  
   1.246     <dd>Specifies the aspect value used in the calculation below to calculate
   1.247      the adjusted font size:
   1.248 @@ -1709,7 +1714,7 @@
   1.249    <h3 id=font-prop><span class=secno>3.7 </span>Shorthand font property: the
   1.250     <a href="#propdef-font">font</a> property</h3>
   1.251  
   1.252 -  <table class=propdef id=namefontvalue-ltlsquofont-stylersquo-ltf>
   1.253 +  <table class=propdef id=namefontvalue-ltlsquofont-stylersquogt-l>
   1.254     <tbody>
   1.255      <tr>
   1.256       <td>Name:
   1.257 @@ -1719,17 +1724,19 @@
   1.258      <tr>
   1.259       <td>Value:
   1.260  
   1.261 -     <td>[ [ &lt;‘<a href="#propdef-font-style"><code
   1.262 -      class=property>font-style</code></a>’> || &lt;font-variant-css21> ||
   1.263 -      &lt;‘<a href="#propdef-font-weight"><code
   1.264 -      class=property>font-weight</code></a>’> || &lt;‘<a
   1.265 +     <td>[ [ <var>&lt;‘<a href="#propdef-font-style"><code
   1.266 +      class=property>font-style</code></a>’&gt;</var> || <a
   1.267 +      href="#font-variant-css21-values"><var>&lt;font-variant-css21&gt;</var></a>
   1.268 +      || <var>&lt;‘<a href="#propdef-font-weight"><code
   1.269 +      class=property>font-weight</code></a>’&gt;</var> || <var>&lt;‘<a
   1.270        href="#propdef-font-stretch"><code
   1.271 -      class=property>font-stretch</code></a>’> ]? &lt;‘<a
   1.272 -      href="#propdef-font-size"><code class=property>font-size</code></a>’>
   1.273 -      [ / &lt;‘<code class=property>line-height</code>’> ]? &lt;‘<a
   1.274 +      class=property>font-stretch</code></a>’</var> ]? <var>&lt;‘<a
   1.275 +      href="#propdef-font-size"><code
   1.276 +      class=property>font-size</code></a>’&gt;</var> [ / <var>&lt;‘<code
   1.277 +      class=property>line-height</code>’&gt;</var> ]? <var>&lt;‘<a
   1.278        href="#descdef-font-family"><code
   1.279 -      class=property>font-family</code></a>’> ] | caption | icon | menu |
   1.280 -      message-box | small-caption | status-bar
   1.281 +      class=property>font-family</code></a>’&gt;</var> ] | caption | icon |
   1.282 +      menu | message-box | small-caption | status-bar
   1.283  
   1.284      <tr>
   1.285       <td>Initial:
   1.286 @@ -1791,7 +1798,7 @@
   1.287     class=property>font</code></a>’</span> shorthand:
   1.288  
   1.289    <pre
   1.290 -   class=prod><dfn id=ltfont-variant-css21gt><var>&lt;font-variant-css21&gt;</var></dfn> = [normal | small-caps]</pre>
   1.291 +   class=prod><dfn id=font-variant-css21-values><var>&lt;font-variant-css21&gt;</var></dfn> = [normal | small-caps]</pre>
   1.292  
   1.293    <p>The syntax of this property is based on a traditional typographical
   1.294     shorthand notation to set multiple properties related to fonts.
   1.295 @@ -2081,11 +2088,11 @@
   1.296     specification defines the following productions:
   1.297  
   1.298    <pre><dfn id=fontfacerule>font_face_rule</dfn>
   1.299 -  : FONT_FACE_SYM S* '{' S* descriptor_declaration? [ ';' S* descriptor_declaration? ]* '}' S*
   1.300 +  : <a href="#fontfacesym"><i>FONT_FACE_SYM</i></a> <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* '{' <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* <a href="#descriptordeclaration"><i>descriptor_declaration</i></a>? [ ';' <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* <a href="#descriptordeclaration"><i>descriptor_declaration</i></a>? ]* '}' <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>*
   1.301    ;
   1.302  
   1.303  <dfn id=descriptordeclaration>descriptor_declaration</dfn>
   1.304 -  : property ':' S* expr
   1.305 +  : <a href="http://www.w3.org/TR/CSS21/grammar.html#grammar"><i>property</i></a> ':' <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* <a href="http://www.w3.org/TR/CSS21/grammar.html#grammar"><i>expr</i></a>
   1.306    ;</pre>
   1.307  
   1.308    <p>The following new definitions are introduced:
   1.309 @@ -2095,7 +2102,7 @@
   1.310  
   1.311    <p>The following new token is introduced:
   1.312  
   1.313 -  <pre>@{F}{O}{N}{T}{-}{F}{A}{C}{E} {return FONT_FACE_SYM;}</pre>
   1.314 +  <pre>@{F}{O}{N}{T}{-}{F}{A}{C}{E} {return <dfn id=fontfacesym>FONT_FACE_SYM</dfn>;}</pre>
   1.315  
   1.316    <p>Each <span class=index-inst id=font-face
   1.317     title="@font-face"><code>@font-face</code></span> rule specifies a value
   1.318 @@ -2169,7 +2176,7 @@
   1.319      <tr>
   1.320       <td>Value:
   1.321  
   1.322 -     <td>&lt;family-name>
   1.323 +     <td><a href="#family-name-value"><var>&lt;family-name&gt;</var></a>
   1.324  
   1.325      <tr>
   1.326       <td><em>Initial:</em>
   1.327 @@ -2200,7 +2207,8 @@
   1.328      <tr>
   1.329       <td>Value:
   1.330  
   1.331 -     <td>[ &lt;url> [format(&lt;string>#)]? | &lt;font-face-name> ]#
   1.332 +     <td>[ &lt;url> [format(&lt;string> #)]? | <a
   1.333 +      href="#font-face-name-value"><var>&lt;font-face-name&gt;</var></a> ] #
   1.334  
   1.335      <tr>
   1.336       <td><em>Initial:</em>
   1.337 @@ -2314,11 +2322,11 @@
   1.338  
   1.339    <p>When authors would prefer to use a locally available copy of a given
   1.340     font and download it if it's not, <code>local()</code> can be used. The
   1.341 -   locally-installed <span class=index-def id=ltfont-face-namegt
   1.342 -   title="&lt;font-face-name&gt;"><a
   1.343 -   name=value-def-font-face-name>&lt;font-face-name&gt;</a></span> argument
   1.344 +   locally-installed <dfn
   1.345 +   id=font-face-name-value><var>&lt;font-face-name&gt;</var></dfn> argument
   1.346     is a format-specific string that uniquely identifies a single font face
   1.347 -   within a larger family. The syntax for a &lt;font-face-name&gt; is a
   1.348 +   within a larger family. The syntax for a <a
   1.349 +   href="#font-face-name-value"><var>&lt;font-face-name&gt;</var></a> is a
   1.350     unique font face name enclosed by "local(" and ")".
   1.351  
   1.352    <pre>
   1.353 @@ -2533,7 +2541,7 @@
   1.354      <tr>
   1.355       <td>Value:
   1.356  
   1.357 -     <td><dfn id=lturange>&lt;urange></dfn>#
   1.358 +     <td><a href="#urange-value"><var>&lt;urange&gt;</var></a> #
   1.359  
   1.360      <tr>
   1.361       <td><em>Initial:</em>
   1.362 @@ -2543,45 +2551,46 @@
   1.363  
   1.364    <p>This descriptor defines the set of Unicode codepoints that may be
   1.365     supported by the font face for which it is declared. The descriptor value
   1.366 -   is a comma-delimited list of Unicode range (<dfn id=lturangegt
   1.367 -   title=value-def-urange><code>&lt;urange&gt;</code></dfn>) values. The
   1.368 -   union of these ranges defines the set of codepoints that serves as a hint
   1.369 -   for user agents when deciding whether or not to download a font resource
   1.370 -   for a given text run.
   1.371 -
   1.372 -  <p>Each <code>&lt;urange&gt;</code> value is a <a
   1.373 -   href="#descdef-unicode-range"><code>UNICODE-RANGE</code></a> token made up
   1.374 -   of a "U+" or "u+" prefix followed by a codepoint range in one of the three
   1.375 -   forms listed below. Ranges that do not fit one of the these three forms
   1.376 -   are considered to be parse errors and the descriptor is omitted.
   1.377 +   is a comma-delimited list of Unicode range (<a
   1.378 +   href="#urange-value"><var>&lt;urange&gt;</var></a>) values. The union of
   1.379 +   these ranges defines the set of codepoints that serves as a hint for user
   1.380 +   agents when deciding whether or not to download a font resource for a
   1.381 +   given text run.
   1.382 +
   1.383 +  <p>Each <dfn id=urange-value><var>&lt;urange&gt;</var></dfn> value is a <a
   1.384 +   href="http://www.w3.org/TR/CSS21/syndata.html#tokenization"><code
   1.385 +   title="UNICODE-RANGE token">UNICODE-RANGE</code></a> token made up of a
   1.386 +   "U+" or "u+" prefix followed by a codepoint range in one of the three
   1.387 +   forms listed below:
   1.388  
   1.389    <ul>
   1.390 -   <li>a single code point (e.g. U+416)
   1.391 +   <li>a single codepoint (e.g. U+416)
   1.392  
   1.393     <li>an interval value range defined by two hyphen-separated codepoints
   1.394      that indicate the inclusive start and end codepoints of a range (e.g.
   1.395      U+400-4ff)
   1.396  
   1.397 -   <li>a wildcard value range where trailing ‘<code class=css>?</code>’
   1.398 -    characters imply ‘<code class=css>any digit value</code>’ (e.g.
   1.399 -    U+4??)
   1.400 +   <li>a wildcard value range defined by the set of codepoints implied when
   1.401 +    trailing ‘<code class=css>?</code>’ characters signify ‘<code
   1.402 +    class=css>any digit value</code>’ (e.g. U+4??)
   1.403    </ul>
   1.404  
   1.405    <p>Individual codepoints are written using hexadecimal values that
   1.406     correspond to <a href="http://www.unicode.org/charts/">Unicode character
   1.407 -   codepoints</a>. Valid character code values vary between 0 and 10FFFF
   1.408 -   inclusive. They are ASCII case-insensitive.
   1.409 -
   1.410 -  <p>For interval ranges, the start and end codepoints must be valid Unicode
   1.411 -   values and the end codepoint must be greater than or equal to the start
   1.412 -   codepoint. Wildcard ranges specified with ‘?’ that lack an initial
   1.413 -   digit (e.g. "U+???") are valid and treated as if there was a single 0
   1.414 -   before the question marks (thus, "U+???" = "U+0???" = "U+0000-0FFF").
   1.415 -   "U+??????" is not a syntax error, even though "U+0??????" would be.
   1.416 -   Wildcard ranges that extend beyond the end of valid codepoint values are
   1.417 -   clipped to the range of valid codepoint values. Ranges that do not conform
   1.418 -   to these restrictions are considered parse errors and the descriptor is
   1.419 -   omitted.
   1.420 +   codepoints</a>. Valid Unicode codepoint values vary between 0 and 10FFFF
   1.421 +   inclusive. Digit values of codepoints are ASCII case-insensitive. For
   1.422 +   interval ranges, the start and end codepoints must be valid Unicode values
   1.423 +   and the end codepoint must be greater than or equal to the start
   1.424 +   codepoint.
   1.425 +
   1.426 +  <p>Wildcard ranges specified with ‘?’ that lack an initial digit (e.g.
   1.427 +   "U+???") are valid and equivalent to a wildcard range with an initial zero
   1.428 +   digit (e.g. "U+0???" = "U+0000-0FFF"). Wildcard ranges that extend beyond
   1.429 +   the range of valid Unicode codepoints are invalid. Because of this, the
   1.430 +   maximum number of trailing ‘<code class=css>?</code>’ wildcard
   1.431 +   characters is four, even though the <a
   1.432 +   href="http://www.w3.org/TR/CSS21/syndata.html#tokenization"><code
   1.433 +   title="UNICODE-RANGE token">UNICODE-RANGE</code></a> token accepts six.
   1.434  
   1.435    <p>Within the comma-delimited list of Unicode ranges in a ‘<a
   1.436     href="#descdef-unicode-range"><code
   1.437 @@ -2595,66 +2604,30 @@
   1.438    <p>The associated font may not contain glyphs for the entire set of
   1.439     codepoints defined by the ‘<a href="#descdef-unicode-range"><code
   1.440     class=property>unicode-range</code></a>’ descriptor. When the font is
   1.441 -   used the effective character map is the intersection of the codepoints
   1.442 -   defined by ‘<a href="#descdef-unicode-range"><code
   1.443 -   class=property>unicode-range</code></a>’ with the font's character map.
   1.444 -   This allows authors to define supported ranges in terms of broad ranges
   1.445 -   without worrying about the precise codepoint ranges supported by the
   1.446 -   underlying font.</p>
   1.447 -  <!--
   1.448 -<p>This descriptor defines the range of Unicode characters supported by
   1.449 -a given font.  The values of <span class="index-def"
   1.450 -title="&lt;urange&gt;"><a
   1.451 -name="value-def-urange">&lt;urange&gt;</a></span> are expressed using
   1.452 -hexadecimal numbers prefixed by "U+" or "u+", corresponding to <a
   1.453 -href="http://www.unicode.org/charts/">Unicode character code points</a>.
   1.454 -The unicode-range descriptor serves as a hint for user agents when
   1.455 -deciding whether or not to download a font resource.</p>
   1.456 -
   1.457 -<p>Unicode range values are written using hexadecimal values and are ASCII
   1.458 -case-insensitive.  Each is prefixed by "U+" or "u+" and multiple, discontinuous
   1.459 -ranges are separated by commas.  Whitespace before or after commas is
   1.460 -ignored.  Valid character code values vary between 0 and 10FFFF
   1.461 -inclusive.  A single range has three basic forms:
   1.462 -</p>
   1.463 -
   1.464 -<ul>
   1.465 -  <li>a single code point (e.g. U+416)</li>
   1.466 -  <li>an interval value range (e.g. U+400-4ff)</li>
   1.467 -  <li>a range where trailing '?' characters imply 'any digit value' (e.g. U+4??)</li>
   1.468 -</ul>
   1.469 -
   1.470 -<p>Ranges that do not fit any of the above three forms are considered to
   1.471 -be parse errors and the descriptor is omitted. Interval ranges
   1.472 -consisting of a single code point are valid. Ranges specified with ‘?’
   1.473 -that lack an initial digit (e.g. "U+???") are also valid, and are
   1.474 -treated as if there was a single 0 before the question marks (thus,
   1.475 -"U+???" = "U+0???" = "U+0000-0FFF"). "U+??????" is not a syntax error,
   1.476 -even though "U+0??????" would be. Ranges can overlap but interval ranges
   1.477 -that descend (e.g. U+400-32f) are invalid and omitted rather than
   1.478 -treated as parse errors; they have no effect on other ranges in a list
   1.479 -of ranges. Ranges are clipped to the domain of Unicode code points
   1.480 -(currently 0 – 10FFFF inclusive); a range entirely outside the domain is
   1.481 -omitted. Without any valid ranges, the descriptor is omitted. User
   1.482 -agents may normalize the list of ranges into a list that is different
   1.483 -but represents the same set of character code points.
   1.484 -</p>
   1.485 -
   1.486 -<p>The character range can be a subset of the full <em>character map</em> of the
   1.487 -underlying font.  The effective unicode-range used when mapping
   1.488 -characters to fonts is the intersection of the unicode range specified
   1.489 -and the underlying <em>character map</em> of the font.  This means that authors
   1.490 -do not need to define the unicode-range of a font precisely, broad
   1.491 -ranges for which a sparse set of code points are defined in the font can
   1.492 -be used.  Code points outside of the defined unicode-range are ignored,
   1.493 -regardless of whether the font contains a glyph for that code point or
   1.494 -not.  User agents that download fonts for characters outside the defined
   1.495 -unicode-range are considered non-conformant.  Likewise, user agents that
   1.496 -render a character using a font resource for which the defined
   1.497 -unicode-range does not include that character are also considered
   1.498 -non-conformant.
   1.499 -</p>
   1.500 --->
   1.501 +   used the effective <a href="#character-map"><em>character map</em></a> is
   1.502 +   the intersection of the codepoints defined by ‘<a
   1.503 +   href="#descdef-unicode-range"><code
   1.504 +   class=property>unicode-range</code></a>’ with the font's <a
   1.505 +   href="#character-map"><em>character map</em></a>. This allows authors to
   1.506 +   define supported ranges in terms of broad ranges without worrying about
   1.507 +   the precise codepoint ranges supported by the underlying font.
   1.508 +
   1.509 +  <h3 id=composite-fonts><span class=secno>4.6 </span>Using character ranges
   1.510 +   to define composite fonts</h3>
   1.511 +
   1.512 +  <p>Multiple <code>@font-face</code> rules with different unicode ranges for
   1.513 +   the same family and style descriptor values can be used to create
   1.514 +   composite fonts that mix the glyphs from different fonts for different
   1.515 +   scripts. This can be used to combine fonts that only contain glyphs for a
   1.516 +   single script (e.g. Latin, Greek, Cyrillic) or it can be used by authors
   1.517 +   as a way of segmenting a font into fonts for commonly used characters and
   1.518 +   less frequently used characters. Since the user agent will only pull down
   1.519 +   the fonts it needs this helps reduce page bandwidth.
   1.520 +
   1.521 +  <p>If the unicode ranges overlap for a set of <code>@font-face</code> rules
   1.522 +   with the same family and style descriptor values, the rules are ordered in
   1.523 +   the reverse order they were defined; the last rule defined is the first to
   1.524 +   be checked for a given character.
   1.525  
   1.526    <p>Example ranges for specific languages or characters:
   1.527  
   1.528 @@ -2708,20 +2681,6 @@
   1.529  </pre>
   1.530    </div>
   1.531  
   1.532 -  <p>Multiple <code>@font-face</code> rules with different unicode ranges for
   1.533 -   the same family and style descriptor values can be used to create
   1.534 -   composite fonts that mix the glyphs from different fonts for different
   1.535 -   scripts. This can be used to combine fonts that only contain glyphs for a
   1.536 -   single script (e.g. Latin, Greek, Cyrillic) or it can be used by authors
   1.537 -   as a way of segmenting a font into fonts for commonly used characters and
   1.538 -   less frequently used characters. Since the user agent will only pull down
   1.539 -   the fonts it needs this helps reduce page bandwidth.
   1.540 -
   1.541 -  <p>If the unicode ranges overlap for a set of <code>@font-face</code> rules
   1.542 -   with the same family and style descriptor values, the rules are ordered in
   1.543 -   the reverse order they were defined; the last rule defined is the first to
   1.544 -   be checked for a given character.
   1.545 -
   1.546    <div class=example>
   1.547     <p>This example shows how an author can override the glyphs used for Latin
   1.548      characters in a Japanese font with glyphs from a different font. The
   1.549 @@ -2806,7 +2765,7 @@
   1.550      the arrow character.</p>
   1.551    </div>
   1.552  
   1.553 -  <h3 id=font-rend-desc><span class=secno>4.6 </span>Font features: the <a
   1.554 +  <h3 id=font-rend-desc><span class=secno>4.7 </span>Font features: the <a
   1.555     href="#descdef-font-variant">font-variant</a> and <a
   1.556     href="#descdef-font-feature-settings">font-feature-settings</a>
   1.557     descriptors</h3>
   1.558 @@ -2822,19 +2781,44 @@
   1.559      <tr>
   1.560       <td>Value:
   1.561  
   1.562 -     <td>normal | [ &lt;common-lig-values&gt; ||
   1.563 -      &lt;discretionary-lig-values&gt; || &lt;historical-lig-values&gt; ||
   1.564 -      &lt;contextual-alt-values&gt; || stylistic(&lt;feature-value-name&gt;)
   1.565 -      || historical-forms || styleset(&lt;feature-value-name&gt;#) ||
   1.566 -      character-variant(&lt;feature-value-name&gt;#) ||
   1.567 -      swash(&lt;feature-value-name&gt;) ||
   1.568 -      ornaments(&lt;feature-value-name&gt;) ||
   1.569 -      annotation(&lt;feature-value-name&gt;) || [ small-caps | all-small-caps
   1.570 -      | petite-caps | all-petite-caps | unicase | titling-caps ] ||
   1.571 -      &lt;numeric-figure-values&gt; || &lt;numeric-spacing-values&gt; ||
   1.572 -      &lt;numeric-fraction-values&gt; || ordinal || slashed-zero ||
   1.573 -      &lt;east-asian-variant-values&gt; || &lt;east-asian-width-values&gt; ||
   1.574 -      ruby ]
   1.575 +     <td>normal | none | [ <a
   1.576 +      href="#common-lig-values"><var>&lt;common-lig-values&gt;</var></a> ||
   1.577 +      <a
   1.578 +      href="#discretionary-lig-values"><var>&lt;discretionary-lig-values&gt;</var></a>
   1.579 +      || <a
   1.580 +      href="#historical-lig-values"><var>&lt;historical-lig-values&gt;</var></a>
   1.581 +      || <a
   1.582 +      href="#contextual-alt-values"><var>&lt;contextual-alt-values&gt;</var></a>
   1.583 +      || <a href="#stylistic"><var
   1.584 +      title=stylistic>stylistic(&lt;feature-value-name&gt;)</var></a> || <a
   1.585 +      href="#historical-forms"><var>historical-forms</var></a> || <a
   1.586 +      href="#styleset"><var
   1.587 +      title=styleset>styleset(&lt;feature-value-name&gt; #)</var></a> || <a
   1.588 +      href="#character-variant"><var
   1.589 +      title=character-variant>character-variant(&lt;feature-value-name&gt;
   1.590 +      #)</var></a> || <a href="#swash"><var
   1.591 +      title=swash>swash(&lt;feature-value-name&gt;)</var></a> || <a
   1.592 +      href="#ornaments"><var
   1.593 +      title=ornaments>ornaments(&lt;feature-value-name&gt;)</var></a> || <a
   1.594 +      href="#annotation"><var
   1.595 +      title=annotation>annotation(&lt;feature-value-name&gt;)</var></a> || [
   1.596 +      <a href="#small-caps"><i>small-caps</i></a> | <a
   1.597 +      href="#all-small-caps"><i>all-small-caps</i></a> | <a
   1.598 +      href="#petite-caps"><i>petite-caps</i></a> | <a
   1.599 +      href="#all-petite-caps"><i>all-petite-caps</i></a> | <a
   1.600 +      href="#unicase"><i>unicase</i></a> | <a
   1.601 +      href="#titling-caps"><i>titling-caps</i></a> ] || <a
   1.602 +      href="#numeric-figure-values"><var>&lt;numeric-figure-values&gt;</var></a>
   1.603 +      || <a
   1.604 +      href="#numeric-spacing-values"><var>&lt;numeric-spacing-values&gt;</var></a>
   1.605 +      || <a
   1.606 +      href="#numeric-fraction-values"><var>&lt;numeric-fraction-values&gt;</var></a>
   1.607 +      || <a href="#ordinal"><i>ordinal</i></a> || <a
   1.608 +      href="#slashed-zero"><i>slashed-zero</i></a> || <a
   1.609 +      href="#east-asian-variant-values"><var>&lt;east-asian-variant-values&gt;</var></a>
   1.610 +      || <a
   1.611 +      href="#east-asian-width-values"><var>&lt;east-asian-width-values&gt;</var></a>
   1.612 +      || <a href="#ruby"><i>ruby</i></a> ]
   1.613  
   1.614      <tr>
   1.615       <td><em>Initial:</em>
   1.616 @@ -2853,7 +2837,8 @@
   1.617      <tr>
   1.618       <td>Value:
   1.619  
   1.620 -     <td>normal | &lt;feature-tag-value&gt;#
   1.621 +     <td>normal | <a
   1.622 +      href="#feature-tag-value"><var>&lt;feature-tag-value&gt;</var></a> #
   1.623  
   1.624      <tr>
   1.625       <td><em>Initial:</em>
   1.626 @@ -2879,7 +2864,7 @@
   1.627     the <a href="#descdef-font-variant">‘<code
   1.628     class=property>font-variant</code>’</a> descriptor.
   1.629  
   1.630 -  <h3 id=font-face-loading><span class=secno>4.7 </span>Font loading
   1.631 +  <h3 id=font-face-loading><span class=secno>4.8 </span>Font loading
   1.632     guidelines</h3>
   1.633  
   1.634    <p>The <code>@font-face</code> rule is designed to allow lazy loading of
   1.635 @@ -2921,10 +2906,10 @@
   1.636     that closely match the vertical metrics of the downloadable fonts to avoid
   1.637     large page reflows where possible.
   1.638  
   1.639 -  <h3 id=same-origin-restriction><span class=secno>4.8 </span>Same-origin
   1.640 +  <h3 id=same-origin-restriction><span class=secno>4.9 </span>Same-origin
   1.641     restriction for fonts</h3>
   1.642  
   1.643 -  <h4 id=default-same-origin-restriction><span class=secno>4.8.1
   1.644 +  <h4 id=default-same-origin-restriction><span class=secno>4.9.1
   1.645     </span>Default same-origin restriction</h4>
   1.646    <!-- TPAC 2011 Resolution to require same-origin restriction for loading fonts:
   1.647    http://lists.w3.org/Archives/Public/www-style/2011Nov/0711.html
   1.648 @@ -2959,7 +2944,7 @@
   1.649  src: url(http://another.example.com/fonts/simple.ttf); 
   1.650  </pre>
   1.651  
   1.652 -  <h4 id=allowing-cross-origin-font-loading><span class=secno>4.8.2
   1.653 +  <h4 id=allowing-cross-origin-font-loading><span class=secno>4.9.2
   1.654     </span>Allowing cross-origin font loading</h4>
   1.655  
   1.656    <p>User agents must also implement the ability to relax this restriction
   1.657 @@ -3421,11 +3406,7 @@
   1.658     supports a language that shares common typographic conventions. The ‘<a
   1.659     href="#propdef-font-language-override"><code
   1.660     class=property>font-language-override</code></a>’ property is used for
   1.661 -   this purpose.
   1.662 -
   1.663 -  <p class=issue>Should user agents be allowed to infer the OpenType language
   1.664 -   or simply use only the default language system? Do we also need a
   1.665 -   normative definition of how the script system is inferred?</p>
   1.666 +   this purpose.</p>
   1.667    <!-- prop: font-kerning -->
   1.668  
   1.669    <h3 id=font-kerning-prop><span class=secno>6.3 </span>Kerning: the <a
   1.670 @@ -3519,9 +3500,15 @@
   1.671      <tr>
   1.672       <td>Value:
   1.673  
   1.674 -     <td>normal | none | [ &lt;common-lig-values> ||
   1.675 -      &lt;discretionary-lig-values> || &lt;historical-lig-values> ||
   1.676 -      &lt;contextual-alt-values> ]
   1.677 +     <td>normal | none | [ <a
   1.678 +      href="#common-lig-values"><var>&lt;common-lig-values&gt;</var></a> ||
   1.679 +      <a
   1.680 +      href="#discretionary-lig-values"><var>&lt;discretionary-lig-values&gt;</var></a>
   1.681 +      || <a
   1.682 +      href="#historical-lig-values"><var>&lt;historical-lig-values&gt;</var></a>
   1.683 +      || <a
   1.684 +      href="#contextual-alt-values"><var>&lt;contextual-alt-values&gt;</var></a>
   1.685 +      ]
   1.686  
   1.687      <tr>
   1.688       <td>Initial:
   1.689 @@ -3571,16 +3558,16 @@
   1.690     may improve the speed of text rendering.
   1.691  
   1.692    <pre
   1.693 -   class=prod><dfn id=ltcommon-lig-values><var>&lt;common-lig-values></var></dfn>        = [ common-ligatures | no-common-ligatures ]</pre>
   1.694 +   class=prod><dfn id=common-lig-values><var>&lt;common-lig-values&gt;</var></dfn>        = [ <a href="#common-ligatures">common-ligatures</a> | <a href="#no-common-ligatures">no-common-ligatures</a> ]</pre>
   1.695  
   1.696    <pre
   1.697 -   class=prod><dfn id=ltdiscretionary-lig-values><var>&lt;discretionary-lig-values></var></dfn> = [ discretionary-ligatures | no-discretionary-ligatures ]</pre>
   1.698 +   class=prod><dfn id=discretionary-lig-values><var>&lt;discretionary-lig-values&gt;</var></dfn> = [ <a href="#discretionary-ligatures">discretionary-ligatures</a> | <a href="#no-discretionary-ligatures">no-discretionary-ligatures</a> ]</pre>
   1.699  
   1.700    <pre
   1.701 -   class=prod><dfn id=lthistorical-lig-values><var>&lt;historical-lig-values></var></dfn>    = [ historical-ligatures | no-historical-ligatures ]</pre>
   1.702 +   class=prod><dfn id=historical-lig-values><var>&lt;historical-lig-values&gt;</var></dfn>    = [ <a href="#historical-ligatures">historical-ligatures</a> | <a href="#no-historical-ligatures">no-historical-ligatures</a> ]</pre>
   1.703  
   1.704    <pre
   1.705 -   class=prod><dfn id=ltcontextual-alt-valuesgt><var>&lt;contextual-alt-values&gt;</var></dfn>    = [ contextual | no-contextual ]</pre>
   1.706 +   class=prod><dfn id=contextual-alt-values><var>&lt;contextual-alt-values&gt;</var></dfn>    = [ <a href="#contextual">contextual</a> | <a href="#no-contextual">no-contextual</a> ]</pre>
   1.707  
   1.708    <p>Individual values have the following meanings:
   1.709  
   1.710 @@ -4026,9 +4013,14 @@
   1.711      <tr>
   1.712       <td>Value:
   1.713  
   1.714 -     <td>normal | [ &lt;numeric-figure-values&gt; ||
   1.715 -      &lt;numeric-spacing-values&gt; || &lt;numeric-fraction-values&gt; ||
   1.716 -      ordinal || slashed-zero ]
   1.717 +     <td>normal | [ <a
   1.718 +      href="#numeric-figure-values"><var>&lt;numeric-figure-values&gt;</var></a>
   1.719 +      || <a
   1.720 +      href="#numeric-spacing-values"><var>&lt;numeric-spacing-values&gt;</var></a>
   1.721 +      || <a
   1.722 +      href="#numeric-fraction-values"><var>&lt;numeric-fraction-values&gt;</var></a>
   1.723 +      || <a href="#ordinal">ordinal</a> || <a
   1.724 +      href="#slashed-zero">slashed-zero</a> ]
   1.725  
   1.726      <tr>
   1.727       <td>Initial:
   1.728 @@ -4069,13 +4061,13 @@
   1.729    <p>Specifies control over numerical forms.
   1.730  
   1.731    <pre
   1.732 -   class=prod><dfn id=ltnumeric-figure-valuesgt><var>&lt;numeric-figure-values&gt;</var></dfn>   = [ lining-nums | oldstyle-nums ]</pre>
   1.733 +   class=prod><dfn id=numeric-figure-values><var>&lt;numeric-figure-values&gt;</var></dfn>   = [ <a href="#lining-nums">lining-nums</a> | <a href="#oldstyle-nums">oldstyle-nums</a> ]</pre>
   1.734  
   1.735    <pre
   1.736 -   class=prod><dfn id=ltnumeric-spacing-valuesgt><var>&lt;numeric-spacing-values&gt;</var></dfn>  = [ proportional-nums | tabular-nums ]</pre>
   1.737 +   class=prod><dfn id=numeric-spacing-values><var>&lt;numeric-spacing-values&gt;</var></dfn>  = [ <a href="#proportional-nums">proportional-nums</a> | <a href="#tabular-nums">tabular-nums</a> ]</pre>
   1.738  
   1.739    <pre
   1.740 -   class=prod><dfn id=ltnumeric-fraction-valuesgt><var>&lt;numeric-fraction-values&gt;</var></dfn> = [ diagonal-fractions | stacked-fractions ]</pre>
   1.741 +   class=prod><dfn id=numeric-fraction-values><var>&lt;numeric-fraction-values&gt;</var></dfn> = [ <a href="#diagonal-fractions">diagonal-fractions</a> | <a href="#stacked-fractions">stacked-fractions</a> ]</pre>
   1.742  
   1.743    <p>Individual values have the following meanings:
   1.744  
   1.745 @@ -4186,12 +4178,18 @@
   1.746      <tr>
   1.747       <td>Value:
   1.748  
   1.749 -     <td>normal | [ stylistic(&lt;feature-value-name&gt;) || historical-forms
   1.750 -      || styleset(&lt;feature-value-name&gt;#) ||
   1.751 -      character-variant(&lt;feature-value-name&gt;#) ||
   1.752 -      swash(&lt;feature-value-name&gt;) ||
   1.753 -      ornaments(&lt;feature-value-name&gt;) ||
   1.754 -      annotation(&lt;feature-value-name&gt;) ]
   1.755 +     <td>normal | [ <a href="#stylistic"
   1.756 +      title=stylistic>stylistic(&lt;feature-value-name&gt;)</a> || <a
   1.757 +      href="#historical-forms">historical-forms</a> || <a href="#styleset"
   1.758 +      title=styleset>styleset(&lt;feature-value-name&gt; #)</a> || <a
   1.759 +      href="#character-variant"
   1.760 +      title=character-variant>character-variant(&lt;feature-value-name&gt;
   1.761 +      #)</a> || <a href="#swash"
   1.762 +      title=swash>swash(&lt;feature-value-name&gt;)</a> || <a
   1.763 +      href="#ornaments"
   1.764 +      title=ornaments>ornaments(&lt;feature-value-name&gt;)</a> || <a
   1.765 +      href="#annotation"
   1.766 +      title=annotation>annotation(&lt;feature-value-name&gt;)</a> ]
   1.767  
   1.768      <tr>
   1.769       <td>Initial:
   1.770 @@ -4252,7 +4250,7 @@
   1.771  
   1.772     <dd>None of the features listed below are enabled.
   1.773  
   1.774 -   <dt><dfn id=stylisticltfeature-value-namegt
   1.775 +   <dt><dfn id=stylistic
   1.776      title=stylistic>stylistic(&lt;feature-value-name&gt;)</dfn>
   1.777  
   1.778     <dd>Enables display of stylistic alternates (<em>font specific</em>,
   1.779 @@ -4272,8 +4270,8 @@
   1.780    <div class=featex><img alt="historical form example" src=hist.png></div>
   1.781  
   1.782    <dl>
   1.783 -   <dt><dfn id=stylesetltfeature-value-namegt
   1.784 -    title=styleset>styleset(&lt;feature-value-name&gt;#)</dfn>
   1.785 +   <dt><dfn id=styleset title=styleset>styleset(&lt;feature-value-name&gt;
   1.786 +    #)</dfn>
   1.787  
   1.788     <dd>Enables display with stylistic sets (<em>font specific</em>, OpenType
   1.789      feature: <span class=tag>ss&lt;feature-index&gt;</span> OpenType
   1.790 @@ -4284,17 +4282,16 @@
   1.791    <div class=featex><img alt="styleset example" src=ssnn.png></div>
   1.792  
   1.793    <dl>
   1.794 -   <dt><dfn id=character-variantltfeature-value-namegt
   1.795 -    title=character-variant>character-variant(&lt;feature-value-name&gt;#)</dfn>
   1.796 -    
   1.797 +   <dt><dfn id=character-variant
   1.798 +    title=character-variant>character-variant(&lt;feature-value-name&gt;
   1.799 +    #)</dfn>
   1.800  
   1.801     <dd>Enables display of specific character variants (<em>font
   1.802      specific</em>, OpenType feature: <span
   1.803      class=tag>cv&lt;feature-index&gt;</span> OpenType currently defines <span
   1.804      class=tag>cv01</span> through <span class=tag>cv99</span>).
   1.805  
   1.806 -   <dt><dfn id=swashltfeature-value-namegt
   1.807 -    title=swash>swash(&lt;feature-value-name&gt;)</dfn>
   1.808 +   <dt><dfn id=swash title=swash>swash(&lt;feature-value-name&gt;)</dfn>
   1.809  
   1.810     <dd>Enables display of swash glyphs (<em>font specific</em>, OpenType
   1.811      feature: <span class=tag>swsh &lt;feature-index&gt;, cswh
   1.812 @@ -4304,7 +4301,7 @@
   1.813    <div class=featex><img alt="swash example" src=swsh.png></div>
   1.814  
   1.815    <dl>
   1.816 -   <dt><dfn id=ornamentsltfeature-value-namegt
   1.817 +   <dt><dfn id=ornaments
   1.818      title=ornaments>ornaments(&lt;feature-value-name&gt;)</dfn>
   1.819  
   1.820     <dd>Enables replacement of default glyphs with ornaments, if provided in
   1.821 @@ -4322,7 +4319,7 @@
   1.822    <div class=featex><img alt="ornaments example" src=ornm.png></div>
   1.823  
   1.824    <dl>
   1.825 -   <dt><dfn id=annotationltfeature-value-namegt
   1.826 +   <dt><dfn id=annotation
   1.827      title=annotation>annotation(&lt;feature-value-name&gt;)</dfn>
   1.828  
   1.829     <dd>Enables display of alternate annotation forms (<em>font specific</em>,
   1.830 @@ -4371,38 +4368,75 @@
   1.831     values specified within a given font's data.
   1.832  
   1.833    <p>In terms of the grammar, this specification defines the following
   1.834 -   productions:
   1.835 -
   1.836 -  <pre><dfn id=fontfeaturevaluesrule>font_feature_values_rule</dfn>
   1.837 -  : FONT_FEATURE_VALUES_SYM S* font_family_name_list S*
   1.838 -    '{' S* feature_value_block? [ S* feature_value_block? ]* '}' S*
   1.839 +   productions:</p>
   1.840 +  <!--
   1.841 +<pre><dfn>supports_rule</dfn>
   1.842 +  : <i>SUPPORTS_SYM</i> <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* <i>supports_condition</i> <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* <i>group_rule_body</i>
   1.843    ;
   1.844  
   1.845 -<dfn id=fontfamilynamelist>font_family_name_list</dfn>
   1.846 -  : font_family_name [ S* ',' S* font_family_name ]*
   1.847 +<dfn>supports_condition</dfn>
   1.848 +  : <i>supports_negation</i> | <i>supports_conjunction</i> | <i>supports_disjunction</i> |
   1.849 +    <i>supports_condition_in_parens</i>
   1.850    ;
   1.851  
   1.852 -<dfn id=fontfamilyname>font_family_name</dfn>
   1.853 -  : STRING | [ IDENT [ S* IDENT ]* ]
   1.854 +<dfn>supports_condition_in_parens</dfn>
   1.855 +  : ( '(' <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* <i>supports_condition</i> <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* ')' ) | <i>supports_declaration_condition</i> |
   1.856 +    <i>general_enclosed</i>
   1.857    ;
   1.858  
   1.859 -<dfn id=featurevalueblock>feature_value_block</dfn>
   1.860 -  : feature_type S*
   1.861 -    '{' S* feature_value_definition? [ S* ';' S* feature_value_definition? ]* '}' S*
   1.862 +<dfn>supports_negation</dfn>
   1.863 +  : <a href="http://www.w3.org/TR/css3-mediaqueries/#syntax"><i>NOT</i></a> <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>+ <i>supports_condition_in_parens</i>
   1.864    ;
   1.865  
   1.866 -<dfn id=featuretype>feature_type</dfn>:
   1.867 -  ATKEYWORD
   1.868 +<dfn>supports_conjunction</dfn>
   1.869 +  : <i>supports_condition_in_parens</i> ( <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>+ <a href="http://www.w3.org/TR/css3-mediaqueries/#syntax"><i>AND</i></a> <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>+ <i>supports_condition_in_parens</i> )+
   1.870    ;
   1.871  
   1.872 -<dfn id=featurevaluedefinition>feature_value_definition</dfn>
   1.873 -  : IDENT S* ':' S* NUMBER [ S* NUMBER ]*
   1.874 +<dfn>supports_disjunction</dfn>
   1.875 +  : <i>supports_condition_in_parens</i> ( <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>+ <i>OR</i> <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>+ <i>supports_condition_in_parens</i> )+
   1.876 +  ;
   1.877 +
   1.878 +<dfn>supports_declaration_condition</dfn>
   1.879 +  : '(' <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* <a href="http://www.w3.org/TR/CSS21/syndata.html#tokenization"><i>declaration</i></a> ')'
   1.880 +  ;
   1.881 +
   1.882 +<dfn>general_enclosed</dfn>
   1.883 +  : ( <a href="http://www.w3.org/TR/CSS21/syndata.html#tokenization"><i>FUNCTION</i></a> | '(' ) ( <a href="http://www.w3.org/TR/CSS21/syndata.html#tokenization"><i>any</i></a> | <a href="http://www.w3.org/TR/CSS21/syndata.html#tokenization"><i>unused</i></a> )* ')'
   1.884    ;
   1.885  </pre>
   1.886  
   1.887 +-->
   1.888 +
   1.889 +  <pre><dfn id=fontfeaturevaluesrule>font_feature_values_rule</dfn>
   1.890 +  : <a href="#fontfeaturevaluessym"><i>FONT_FEATURE_VALUES_SYM</i></a> <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* <a href="#fontfamilynamelist"><i>font_family_name_list</i></a> <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>*
   1.891 +    '{' <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* <a href="#featurevalueblock"><i>feature_value_block</i></a>? [ <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* <a href="#featurevalueblock"><i>feature_value_block</i></a>? ]* '}' <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>*
   1.892 +  ;
   1.893 +
   1.894 +<dfn id=fontfamilynamelist>font_family_name_list</dfn>
   1.895 +  : <a href="#fontfamilyname"><i>font_family_name</i></a> [ <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* ',' <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* <a href="#fontfamilyname"><i>font_family_name</i></a> ]*
   1.896 +  ;
   1.897 +
   1.898 +<dfn id=fontfamilyname>font_family_name</dfn>
   1.899 +  : <a href="http://www.w3.org/TR/CSS21/syndata.html#tokenization"><i>STRING</i></a> | [ <a href="http://www.w3.org/TR/CSS21/syndata.html#tokenization"><i>IDENT</i></a> [ <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* <a href="http://www.w3.org/TR/CSS21/syndata.html#tokenization"><i>IDENT</i></a> ]* ]
   1.900 +  ;
   1.901 +
   1.902 +<dfn id=featurevalueblock>feature_value_block</dfn>
   1.903 +  : <a href="#featuretype"><i>feature_type</i></a> <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>*
   1.904 +    '{' <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* <a href="#featurevaluedefinition"><i>feature_value_definition</i></a>? [ <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* ';' <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* <a href="#featurevaluedefinition"><i>feature_value_definition</i></a>? ]* '}' <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>*
   1.905 +  ;
   1.906 +
   1.907 +<dfn id=featuretype>feature_type</dfn>:
   1.908 +  <a href="http://www.w3.org/TR/CSS21/syndata.html#tokenization"><i>ATKEYWORD</i></a>
   1.909 +  ;
   1.910 +
   1.911 +<dfn id=featurevaluedefinition>feature_value_definition</dfn>
   1.912 +  : <a href="http://www.w3.org/TR/CSS21/syndata.html#tokenization"><i>IDENT</i></a> <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* ':' <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* <a href="http://www.w3.org/TR/CSS21/syndata.html#tokenization"><i>NUMBER</i></a> [ <a href="http://www.w3.org/TR/CSS21/grammar.html#scanner"><i>S</i></a>* <a href="http://www.w3.org/TR/CSS21/syndata.html#tokenization"><i>NUMBER</i></a> ]*
   1.913 +  ;
   1.914 +</pre>
   1.915 +
   1.916    <p>The following new token is introduced:
   1.917  
   1.918 -  <pre>@{F}{O}{N}{T}{-}{F}{E}{A}{T}{U}{R}{E}{-}{V}{A}{L}{U}{E}{S}   {return FONT_FEATURE_VALUES_SYM;}
   1.919 +  <pre>@{F}{O}{N}{T}{-}{F}{E}{A}{T}{U}{R}{E}{-}{V}{A}{L}{U}{E}{S}   {return <dfn id=fontfeaturevaluessym>FONT_FEATURE_VALUES_SYM</dfn>;}
   1.920  </pre>
   1.921  
   1.922    <p>Feature value blocks are treated <a
   1.923 @@ -4420,9 +4454,8 @@
   1.924     href="#descdef-font-family"><code class=property>font-family</code></a>’
   1.925     property. Within feature value blocks, the feature type is ‘<code
   1.926     class=css>@</code>’ followed by the name of the font-specific property
   1.927 -   value (e.g. <a
   1.928 -   href="#swashltfeature-value-namegt"><code>@swash</code></a>). The feature
   1.929 -   type must match, using an ASCII case-insensitive comparison, one of the
   1.930 +   value (e.g. <a href="#swash"><code>@swash</code></a>). The feature type
   1.931 +   must match, using an ASCII case-insensitive comparison, one of the
   1.932     <em>font specific</em> values of the <a
   1.933     href="#propdef-font-variant-alternates"><code>font-variant-alternates</code></a>
   1.934     property. The values associated with a given idenitifier are limited to
   1.935 @@ -4652,8 +4685,11 @@
   1.936      <tr>
   1.937       <td>Value:
   1.938  
   1.939 -     <td>normal | [ &lt;east-asian-variant-values&gt; ||
   1.940 -      &lt;east-asian-width-values&gt; || ruby ]
   1.941 +     <td>normal | [ <a
   1.942 +      href="#east-asian-variant-values"><var>&lt;east-asian-variant-values&gt;</var></a>
   1.943 +      || <a
   1.944 +      href="#east-asian-width-values"><var>&lt;east-asian-width-values&gt;</var></a>
   1.945 +      || <a href="#ruby">ruby</a> ]
   1.946  
   1.947      <tr>
   1.948       <td>Initial:
   1.949 @@ -4694,10 +4730,10 @@
   1.950    <p>Allows control of glyph substitution and sizing in East Asian text.
   1.951  
   1.952    <pre
   1.953 -   class=prod><dfn id=lteast-asian-variant-valuesgt><var>&lt;east-asian-variant-values&gt;</var></dfn> = [ jis78 | jis83 | jis90 | jis04 | simplified | traditional ]</pre>
   1.954 +   class=prod><dfn id=east-asian-variant-values><var>&lt;east-asian-variant-values&gt;</var></dfn> = [ <a href="#jis78">jis78</a> | <a href="#jis83">jis83</a> | <a href="#jis90">jis90</a> | <a href="#jis04">jis04</a> | <a href="#simplified">simplified</a> | <a href="#traditional">traditional</a> ]</pre>
   1.955  
   1.956    <pre
   1.957 -   class=prod><dfn id=lteast-asian-width-valuesgt><var>&lt;east-asian-width-values&gt;</var></dfn>   = [ full-width | proportional-width ]</pre>
   1.958 +   class=prod><dfn id=east-asian-width-values><var>&lt;east-asian-width-values&gt;</var></dfn>   = [ <a href="#full-width">full-width</a> | <a href="#proportional-width">proportional-width</a> ]</pre>
   1.959  
   1.960    <p>Individual values have the following meanings:
   1.961  
   1.962 @@ -4798,19 +4834,44 @@
   1.963      <tr>
   1.964       <td>Value:
   1.965  
   1.966 -     <td>normal | none | [ &lt;common-lig-values&gt; ||
   1.967 -      &lt;discretionary-lig-values&gt; || &lt;historical-lig-values&gt; ||
   1.968 -      &lt;contextual-alt-values&gt; || stylistic(&lt;feature-value-name&gt;)
   1.969 -      || historical-forms || styleset(&lt;feature-value-name&gt;#) ||
   1.970 -      character-variant(&lt;feature-value-name&gt;#) ||
   1.971 -      swash(&lt;feature-value-name&gt;) ||
   1.972 -      ornaments(&lt;feature-value-name&gt;) ||
   1.973 -      annotation(&lt;feature-value-name&gt;) || [ small-caps | all-small-caps
   1.974 -      | petite-caps | all-petite-caps | unicase | titling-caps ] ||
   1.975 -      &lt;numeric-figure-values&gt; || &lt;numeric-spacing-values&gt; ||
   1.976 -      &lt;numeric-fraction-values&gt; || ordinal || slashed-zero ||
   1.977 -      &lt;east-asian-variant-values&gt; || &lt;east-asian-width-values&gt; ||
   1.978 -      ruby ]
   1.979 +     <td>normal | none | [ <a
   1.980 +      href="#common-lig-values"><var>&lt;common-lig-values&gt;</var></a> ||
   1.981 +      <a
   1.982 +      href="#discretionary-lig-values"><var>&lt;discretionary-lig-values&gt;</var></a>
   1.983 +      || <a
   1.984 +      href="#historical-lig-values"><var>&lt;historical-lig-values&gt;</var></a>
   1.985 +      || <a
   1.986 +      href="#contextual-alt-values"><var>&lt;contextual-alt-values&gt;</var></a>
   1.987 +      || <a href="#stylistic"><var
   1.988 +      title=stylistic>stylistic(&lt;feature-value-name&gt;)</var></a> || <a
   1.989 +      href="#historical-forms"><var>historical-forms</var></a> || <a
   1.990 +      href="#styleset"><var
   1.991 +      title=styleset>styleset(&lt;feature-value-name&gt; #)</var></a> || <a
   1.992 +      href="#character-variant"><var
   1.993 +      title=character-variant>character-variant(&lt;feature-value-name&gt;
   1.994 +      #)</var></a> || <a href="#swash"><var
   1.995 +      title=swash>swash(&lt;feature-value-name&gt;)</var></a> || <a
   1.996 +      href="#ornaments"><var
   1.997 +      title=ornaments>ornaments(&lt;feature-value-name&gt;)</var></a> || <a
   1.998 +      href="#annotation"><var
   1.999 +      title=annotation>annotation(&lt;feature-value-name&gt;)</var></a> || [
  1.1000 +      <a href="#small-caps"><i>small-caps</i></a> | <a
  1.1001 +      href="#all-small-caps"><i>all-small-caps</i></a> | <a
  1.1002 +      href="#petite-caps"><i>petite-caps</i></a> | <a
  1.1003 +      href="#all-petite-caps"><i>all-petite-caps</i></a> | <a
  1.1004 +      href="#unicase"><i>unicase</i></a> | <a
  1.1005 +      href="#titling-caps"><i>titling-caps</i></a> ] || <a
  1.1006 +      href="#numeric-figure-values"><var>&lt;numeric-figure-values&gt;</var></a>
  1.1007 +      || <a
  1.1008 +      href="#numeric-spacing-values"><var>&lt;numeric-spacing-values&gt;</var></a>
  1.1009 +      || <a
  1.1010 +      href="#numeric-fraction-values"><var>&lt;numeric-fraction-values&gt;</var></a>
  1.1011 +      || <a href="#ordinal"><i>ordinal</i></a> || <a
  1.1012 +      href="#slashed-zero"><i>slashed-zero</i></a> || <a
  1.1013 +      href="#east-asian-variant-values"><var>&lt;east-asian-variant-values&gt;</var></a>
  1.1014 +      || <a
  1.1015 +      href="#east-asian-width-values"><var>&lt;east-asian-width-values&gt;</var></a>
  1.1016 +      || <a href="#ruby"><i>ruby</i></a> ]
  1.1017  
  1.1018      <tr>
  1.1019       <td>Initial:
  1.1020 @@ -4878,7 +4939,8 @@
  1.1021      <tr>
  1.1022       <td>Value:
  1.1023  
  1.1024 -     <td>normal | &lt;feature-tag-value&gt;#
  1.1025 +     <td>normal | <a
  1.1026 +      href="#feature-tag-value"><var>&lt;feature-tag-value&gt;</var></a> #
  1.1027  
  1.1028      <tr>
  1.1029       <td>Initial:
  1.1030 @@ -4930,7 +4992,7 @@
  1.1031    <p>Feature tag values have the following syntax:
  1.1032  
  1.1033    <pre
  1.1034 -   class=prod><dfn id=ltfeature-tag-valuegt><var>&lt;feature-tag-value&gt;</var></dfn> = &lt;string&gt; [ &lt;integer&gt; | on | off ]?</pre>
  1.1035 +   class=prod><dfn id=feature-tag-value><var>&lt;feature-tag-value&gt;</var></dfn> = &lt;string&gt; [ &lt;integer&gt; | on | off ]?</pre>
  1.1036  
  1.1037    <p>The &lt;string&gt; is a case-sensitive OpenType feature tag. As
  1.1038     specified in the OpenType specification, feature tags contain four ASCII
  1.1039 @@ -5455,6 +5517,9 @@
  1.1040      <code>@font-feature-values</code> rules
  1.1041  
  1.1042     <li>Tightened definition of synthetic oblique
  1.1043 +
  1.1044 +   <li>Revised definition of ‘<a href="#descdef-unicode-range"><code
  1.1045 +    class=property>unicode-range</code></a>’ descriptor
  1.1046    </ul>
  1.1047  
  1.1048    <h2 class=no-num id=acknowledgments>Acknowledgments</h2>
  1.1049 @@ -5865,66 +5930,74 @@
  1.1050    <!--begin-index-->
  1.1051  
  1.1052    <ul class=indexlist>
  1.1053 -   <li>&lt;absolute-size&gt;, <a href="#ltabsolute-sizegt"
  1.1054 +   <li><var>&lt;absolute-size&gt;</var>, <a href="#absolute-size-value"
  1.1055      title="&lt;absolute-size&gt;"><strong>3.5</strong></a>
  1.1056  
  1.1057 -   <li><var>&lt;common-lig-values></var>, <a href="#ltcommon-lig-values"
  1.1058 -    title="&lt;common-lig-values>"><strong>6.4</strong></a>
  1.1059 +   <li><var>&lt;common-lig-values&gt;</var>, <a href="#common-lig-values"
  1.1060 +    title="&lt;common-lig-values&gt;"><strong>6.4</strong></a>
  1.1061  
  1.1062     <li><var>&lt;contextual-alt-values&gt;</var>, <a
  1.1063 -    href="#ltcontextual-alt-valuesgt"
  1.1064 +    href="#contextual-alt-values"
  1.1065      title="&lt;contextual-alt-values&gt;"><strong>6.4</strong></a>
  1.1066  
  1.1067 -   <li><var>&lt;discretionary-lig-values></var>, <a
  1.1068 -    href="#ltdiscretionary-lig-values"
  1.1069 -    title="&lt;discretionary-lig-values>"><strong>6.4</strong></a>
  1.1070 +   <li><var>&lt;discretionary-lig-values&gt;</var>, <a
  1.1071 +    href="#discretionary-lig-values"
  1.1072 +    title="&lt;discretionary-lig-values&gt;"><strong>6.4</strong></a>
  1.1073  
  1.1074     <li><var>&lt;east-asian-variant-values&gt;</var>, <a
  1.1075 -    href="#lteast-asian-variant-valuesgt"
  1.1076 +    href="#east-asian-variant-values"
  1.1077      title="&lt;east-asian-variant-values&gt;"><strong>6.10</strong></a>
  1.1078  
  1.1079     <li><var>&lt;east-asian-width-values&gt;</var>, <a
  1.1080 -    href="#lteast-asian-width-valuesgt"
  1.1081 +    href="#east-asian-width-values"
  1.1082      title="&lt;east-asian-width-values&gt;"><strong>6.10</strong></a>
  1.1083  
  1.1084 -   <li><var>&lt;feature-tag-value&gt;</var>, <a href="#ltfeature-tag-valuegt"
  1.1085 +   <li><var>&lt;family-name&gt;</var>, <a href="#family-name-value"
  1.1086 +    title="&lt;family-name&gt;"><strong>3.1</strong></a>
  1.1087 +
  1.1088 +   <li><var>&lt;feature-tag-value&gt;</var>, <a href="#feature-tag-value"
  1.1089      title="&lt;feature-tag-value&gt;"><strong>6.12</strong></a>
  1.1090  
  1.1091 -   <li>&lt;font-face-name&gt;, <a href="#ltfont-face-namegt"
  1.1092 +   <li><var>&lt;font-face-name&gt;</var>, <a href="#font-face-name-value"
  1.1093      title="&lt;font-face-name&gt;"><strong>4.3</strong></a>
  1.1094  
  1.1095     <li><var>&lt;font-variant-css21&gt;</var>, <a
  1.1096 -    href="#ltfont-variant-css21gt"
  1.1097 +    href="#font-variant-css21-values"
  1.1098      title="&lt;font-variant-css21&gt;"><strong>3.7</strong></a>
  1.1099  
  1.1100 -   <li><var>&lt;historical-lig-values></var>, <a
  1.1101 -    href="#lthistorical-lig-values"
  1.1102 -    title="&lt;historical-lig-values>"><strong>6.4</strong></a>
  1.1103 -
  1.1104 -   <li>&lt;length&gt;, <a href="#ltlengthgt" title="&lt;length&gt;">3.5</a>
  1.1105 -
  1.1106 -   <li>&lt;number&gt;, <a href="#ltnumbergt" title="&lt;number&gt;">3.6</a>
  1.1107 +   <li><var>&lt;generic-family&gt;</var>, <a href="#generic-family-value"
  1.1108 +    title="&lt;generic-family&gt;"><strong>3.1</strong></a>
  1.1109 +
  1.1110 +   <li><var>&lt;historical-lig-values&gt;</var>, <a
  1.1111 +    href="#historical-lig-values"
  1.1112 +    title="&lt;historical-lig-values&gt;"><strong>6.4</strong></a>
  1.1113 +
  1.1114 +   <li><var>&lt;length&gt;</var>, <a href="#length-size-value"
  1.1115 +    title="&lt;length&gt;"><strong>3.5</strong></a>
  1.1116 +
  1.1117 +   <li><var>&lt;number&gt;</var>, <a href="#aspect-ratio-value"
  1.1118 +    title="&lt;number&gt;"><strong>3.6</strong></a>
  1.1119  
  1.1120     <li><var>&lt;numeric-figure-values&gt;</var>, <a
  1.1121 -    href="#ltnumeric-figure-valuesgt"
  1.1122 +    href="#numeric-figure-values"
  1.1123      title="&lt;numeric-figure-values&gt;"><strong>6.7</strong></a>
  1.1124  
  1.1125     <li><var>&lt;numeric-fraction-values&gt;</var>, <a
  1.1126 -    href="#ltnumeric-fraction-valuesgt"
  1.1127 +    href="#numeric-fraction-values"
  1.1128      title="&lt;numeric-fraction-values&gt;"><strong>6.7</strong></a>
  1.1129  
  1.1130     <li><var>&lt;numeric-spacing-values&gt;</var>, <a
  1.1131 -    href="#ltnumeric-spacing-valuesgt"
  1.1132 +    href="#numeric-spacing-values"
  1.1133      title="&lt;numeric-spacing-values&gt;"><strong>6.7</strong></a>
  1.1134  
  1.1135 -   <li>&lt;percentage&gt;, <a href="#ltpercentagegt-"
  1.1136 -    title="&lt;percentage&gt;">3.5</a>
  1.1137 -
  1.1138 -   <li>&lt;relative-size&gt;, <a href="#ltrelative-sizegt"
  1.1139 +   <li><var>&lt;percentage&gt;</var>, <a href="#percentage-size-value"
  1.1140 +    title="&lt;percentage&gt;"><strong>3.5</strong></a>
  1.1141 +
  1.1142 +   <li><var>&lt;relative-size&gt;</var>, <a href="#relative-size-value"
  1.1143      title="&lt;relative-size&gt;"><strong>3.5</strong></a>
  1.1144  
  1.1145 -   <li>&lt;urange>, <a href="#lturange"
  1.1146 -    title="&lt;urange>"><strong>4.5</strong></a>
  1.1147 +   <li><var>&lt;urange&gt;</var>, <a href="#urange-value"
  1.1148 +    title="&lt;urange&gt;"><strong>4.5</strong></a>
  1.1149  
  1.1150     <li>@font-face, <a href="#font-face" title="@font-face">4.1</a>, <a
  1.1151      href="#font-face0" title="@font-face">4.3</a>
  1.1152 @@ -5935,7 +6008,7 @@
  1.1153     <li>all-small-caps, <a href="#all-small-caps"
  1.1154      title=all-small-caps><strong>6.6</strong></a>
  1.1155  
  1.1156 -   <li>annotation, <a href="#annotationltfeature-value-namegt"
  1.1157 +   <li>annotation, <a href="#annotation"
  1.1158      title=annotation><strong>6.8</strong></a>
  1.1159  
  1.1160     <li>aspect value, <a href="#aspect-value0" title="aspect
  1.1161 @@ -5947,7 +6020,7 @@
  1.1162     <li>character map, <a href="#character-map" title="character
  1.1163      map"><strong>5.2</strong></a>
  1.1164  
  1.1165 -   <li>character-variant, <a href="#character-variantltfeature-value-namegt"
  1.1166 +   <li>character-variant, <a href="#character-variant"
  1.1167      title=character-variant><strong>6.8</strong></a>
  1.1168  
  1.1169     <li>common-ligatures, <a href="#common-ligatures"
  1.1170 @@ -6000,7 +6073,7 @@
  1.1171  
  1.1172     <li>font-feature-settings (descriptor), <a
  1.1173      href="#descdef-font-feature-settings" title="font-feature-settings
  1.1174 -    (descriptor)"><strong>4.6</strong></a>
  1.1175 +    (descriptor)"><strong>4.7</strong></a>
  1.1176  
  1.1177     <li>font-kerning, <a href="#propdef-font-kerning"
  1.1178      title=font-kerning><strong>6.3</strong></a>
  1.1179 @@ -6033,7 +6106,7 @@
  1.1180      title=font-variant><strong>6.11</strong></a>
  1.1181  
  1.1182     <li>font-variant (descriptor), <a href="#descdef-font-variant"
  1.1183 -    title="font-variant (descriptor)"><strong>4.6</strong></a>
  1.1184 +    title="font-variant (descriptor)"><strong>4.7</strong></a>
  1.1185  
  1.1186     <li>font-variant-alternates, <a href="#propdef-font-variant-alternates"
  1.1187      title=font-variant-alternates><strong>6.8</strong></a>
  1.1188 @@ -6062,6 +6135,9 @@
  1.1189     <li>font_face_rule, <a href="#fontfacerule"
  1.1190      title="font_face_rule"><strong>4.1</strong></a>
  1.1191  
  1.1192 +   <li>FONT_FACE_SYM, <a href="#fontfacesym"
  1.1193 +    title="FONT_FACE_SYM"><strong>4.1</strong></a>
  1.1194 +
  1.1195     <li>font_family_name, <a href="#fontfamilyname"
  1.1196      title="font_family_name"><strong>6.9</strong></a>
  1.1197  
  1.1198 @@ -6071,6 +6147,9 @@
  1.1199     <li>font_feature_values_rule, <a href="#fontfeaturevaluesrule"
  1.1200      title="font_feature_values_rule"><strong>6.9</strong></a>
  1.1201  
  1.1202 +   <li>FONT_FEATURE_VALUES_SYM, <a href="#fontfeaturevaluessym"
  1.1203 +    title="FONT_FEATURE_VALUES_SYM"><strong>6.9</strong></a>
  1.1204 +
  1.1205     <li>full-width, <a href="#full-width"
  1.1206      title=full-width><strong>6.10</strong></a>
  1.1207  
  1.1208 @@ -6116,7 +6195,7 @@
  1.1209  
  1.1210     <li>ordinal, <a href="#ordinal" title=ordinal><strong>6.7</strong></a>
  1.1211  
  1.1212 -   <li>ornaments, <a href="#ornamentsltfeature-value-namegt"
  1.1213 +   <li>ornaments, <a href="#ornaments"
  1.1214      title=ornaments><strong>6.8</strong></a>
  1.1215  
  1.1216     <li>petite-caps, <a href="#petite-caps"
  1.1217 @@ -6158,14 +6237,12 @@
  1.1218        conformance class"><strong>#</strong></a>
  1.1219      </ul>
  1.1220  
  1.1221 -   <li>styleset, <a href="#stylesetltfeature-value-namegt"
  1.1222 -    title=styleset><strong>6.8</strong></a>
  1.1223 -
  1.1224 -   <li>stylistic, <a href="#stylisticltfeature-value-namegt"
  1.1225 +   <li>styleset, <a href="#styleset" title=styleset><strong>6.8</strong></a>
  1.1226 +
  1.1227 +   <li>stylistic, <a href="#stylistic"
  1.1228      title=stylistic><strong>6.8</strong></a>
  1.1229  
  1.1230 -   <li>swash, <a href="#swashltfeature-value-namegt"
  1.1231 -    title=swash><strong>6.8</strong></a>
  1.1232 +   <li>swash, <a href="#swash" title=swash><strong>6.8</strong></a>
  1.1233  
  1.1234     <li>tabular-nums, <a href="#tabular-nums"
  1.1235      title=tabular-nums><strong>6.7</strong></a>
  1.1236 @@ -6181,9 +6258,6 @@
  1.1237     <li>unicode-range, <a href="#descdef-unicode-range"
  1.1238      title=unicode-range><strong>4.5</strong></a>
  1.1239  
  1.1240 -   <li>value-def-urange, <a href="#lturangegt"
  1.1241 -    title=value-def-urange><strong>4.5</strong></a>
  1.1242 -
  1.1243     <li>weight, <a href="#weight" title=weight><strong>2</strong></a>
  1.1244  
  1.1245     <li>width, <a href="#width" title=width><strong>2</strong></a>
  1.1246 @@ -6214,10 +6288,10 @@
  1.1247      <tr>
  1.1248       <th><a class=property href="#propdef-font">font</a>
  1.1249  
  1.1250 -     <td>[ [ &lt;‘font-style’> || &lt;font-variant-css21> ||
  1.1251 -      &lt;‘font-weight’> || &lt;‘font-stretch’> ]?
  1.1252 -      &lt;‘font-size’> [ / &lt;‘line-height’> ]?
  1.1253 -      &lt;‘font-family’> ] | caption | icon | menu | message-box |
  1.1254 +     <td>[ [ &lt;‘font-style’&gt; || &lt;font-variant-css21&gt; ||
  1.1255 +      &lt;‘font-weight’&gt; || &lt;‘font-stretch’ ]?
  1.1256 +      &lt;‘font-size’&gt; [ / &lt;‘line-height’&gt; ]?
  1.1257 +      &lt;‘font-family’&gt; ] | caption | icon | menu | message-box |
  1.1258        small-caption | status-bar
  1.1259  
  1.1260       <td>see individual properties
  1.1261 @@ -6233,7 +6307,7 @@
  1.1262      <tr>
  1.1263       <th><a class=property href="#descdef-font-family">font-family</a>
  1.1264  
  1.1265 -     <td>[ &lt;family-name> | &lt;generic-family> ]#
  1.1266 +     <td>[ &lt;family-name&gt; | &lt;generic-family&gt; ] #
  1.1267  
  1.1268       <td>depends on user agent
  1.1269  
  1.1270 @@ -6249,7 +6323,7 @@
  1.1271       <th><a class=property
  1.1272        href="#propdef-font-feature-settings">font-feature-settings</a>
  1.1273  
  1.1274 -     <td>normal | &lt;feature-tag-value&gt;#
  1.1275 +     <td>normal | &lt;feature-tag-value&gt; #
  1.1276  
  1.1277       <td>normal
  1.1278  
  1.1279 @@ -6295,8 +6369,8 @@
  1.1280      <tr>
  1.1281       <th><a class=property href="#propdef-font-size">font-size</a>
  1.1282  
  1.1283 -     <td>&lt;absolute-size> | &lt;relative-size> | &lt;length> |
  1.1284 -      &lt;percentage>
  1.1285 +     <td>&lt;absolute-size&gt; | &lt;relative-size&gt; | &lt;length&gt; |
  1.1286 +      &lt;percentage&gt;
  1.1287  
  1.1288       <td>medium
  1.1289  
  1.1290 @@ -6312,7 +6386,7 @@
  1.1291       <th><a class=property
  1.1292        href="#propdef-font-size-adjust">font-size-adjust</a>
  1.1293  
  1.1294 -     <td>none | auto | &lt;number>
  1.1295 +     <td>none | auto | &lt;number&gt;
  1.1296  
  1.1297       <td>none
  1.1298  
  1.1299 @@ -6377,8 +6451,8 @@
  1.1300       <td>normal | none | [ &lt;common-lig-values&gt; ||
  1.1301        &lt;discretionary-lig-values&gt; || &lt;historical-lig-values&gt; ||
  1.1302        &lt;contextual-alt-values&gt; || stylistic(&lt;feature-value-name&gt;)
  1.1303 -      || historical-forms || styleset(&lt;feature-value-name&gt;#) ||
  1.1304 -      character-variant(&lt;feature-value-name&gt;#) ||
  1.1305 +      || historical-forms || styleset(&lt;feature-value-name&gt; #) ||
  1.1306 +      character-variant(&lt;feature-value-name&gt; #) ||
  1.1307        swash(&lt;feature-value-name&gt;) ||
  1.1308        ornaments(&lt;feature-value-name&gt;) ||
  1.1309        annotation(&lt;feature-value-name&gt;) || [ small-caps | all-small-caps
  1.1310 @@ -6403,8 +6477,8 @@
  1.1311        href="#propdef-font-variant-alternates">font-variant-alternates</a>
  1.1312  
  1.1313       <td>normal | [ stylistic(&lt;feature-value-name&gt;) || historical-forms
  1.1314 -      || styleset(&lt;feature-value-name&gt;#) ||
  1.1315 -      character-variant(&lt;feature-value-name&gt;#) ||
  1.1316 +      || styleset(&lt;feature-value-name&gt; #) ||
  1.1317 +      character-variant(&lt;feature-value-name&gt; #) ||
  1.1318        swash(&lt;feature-value-name&gt;) ||
  1.1319        ornaments(&lt;feature-value-name&gt;) ||
  1.1320        annotation(&lt;feature-value-name&gt;) ]
  1.1321 @@ -6457,9 +6531,9 @@
  1.1322       <th><a class=property
  1.1323        href="#propdef-font-variant-ligatures">font-variant-ligatures</a>
  1.1324  
  1.1325 -     <td>normal | none | [ &lt;common-lig-values> ||
  1.1326 -      &lt;discretionary-lig-values> || &lt;historical-lig-values> ||
  1.1327 -      &lt;contextual-alt-values> ]
  1.1328 +     <td>normal | none | [ &lt;common-lig-values&gt; ||
  1.1329 +      &lt;discretionary-lig-values&gt; || &lt;historical-lig-values&gt; ||
  1.1330 +      &lt;contextual-alt-values&gt; ]
  1.1331  
  1.1332       <td>normal
  1.1333  
  1.1334 @@ -6541,7 +6615,7 @@
  1.1335      <tr>
  1.1336       <th><a class=property href="#descdef-font-family">font-family</a>
  1.1337  
  1.1338 -     <td>&lt;family-name>
  1.1339 +     <td>&lt;family-name&gt;
  1.1340  
  1.1341       <td>N/A
  1.1342  
  1.1343 @@ -6549,7 +6623,7 @@
  1.1344       <th><a class=property
  1.1345        href="#propdef-font-feature-settings">font-feature-settings</a>
  1.1346  
  1.1347 -     <td>normal | &lt;feature-tag-value&gt;#
  1.1348 +     <td>normal | &lt;feature-tag-value&gt; #
  1.1349  
  1.1350       <td>normal
  1.1351  
  1.1352 @@ -6572,11 +6646,11 @@
  1.1353      <tr>
  1.1354       <th><a class=property href="#propdef-font-variant">font-variant</a>
  1.1355  
  1.1356 -     <td>normal | [ &lt;common-lig-values&gt; ||
  1.1357 +     <td>normal | none | [ &lt;common-lig-values&gt; ||
  1.1358        &lt;discretionary-lig-values&gt; || &lt;historical-lig-values&gt; ||
  1.1359        &lt;contextual-alt-values&gt; || stylistic(&lt;feature-value-name&gt;)
  1.1360 -      || historical-forms || styleset(&lt;feature-value-name&gt;#) ||
  1.1361 -      character-variant(&lt;feature-value-name&gt;#) ||
  1.1362 +      || historical-forms || styleset(&lt;feature-value-name&gt; #) ||
  1.1363 +      character-variant(&lt;feature-value-name&gt; #) ||
  1.1364        swash(&lt;feature-value-name&gt;) ||
  1.1365        ornaments(&lt;feature-value-name&gt;) ||
  1.1366        annotation(&lt;feature-value-name&gt;) || [ small-caps | all-small-caps
  1.1367 @@ -6598,14 +6672,14 @@
  1.1368      <tr>
  1.1369       <th><a class=property href="#descdef-src">src</a>
  1.1370  
  1.1371 -     <td>[ &lt;url> [format(&lt;string>#)]? | &lt;font-face-name> ]#
  1.1372 +     <td>[ &lt;url> [format(&lt;string> #)]? | &lt;font-face-name&gt; ] #
  1.1373  
  1.1374       <td>N/A
  1.1375  
  1.1376      <tr>
  1.1377       <th><a class=property href="#descdef-unicode-range">unicode-range</a>
  1.1378  
  1.1379 -     <td>&lt;urange>#
  1.1380 +     <td>&lt;urange&gt; #
  1.1381  
  1.1382       <td>U+0-10FFFF
  1.1383    </table>

mercurial