css-fonts/Fonts.html

changeset 8311
35cf30e4d0ec
parent 8280
1792b2222114
child 8312
4fb97110e8dc
     1.1 --- a/css-fonts/Fonts.html	Thu May 30 18:24:11 2013 -0700
     1.2 +++ b/css-fonts/Fonts.html	Fri May 31 13:36:29 2013 +0900
     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-30-may-2013>Editor's Draft 30
     1.8 +   <h2 class="no-num no-toc" id=editors-draft-31-may-2013>Editor's Draft 31
     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-20130530/">http://www.w3.org/TR/2013/ED-css3-fonts-20130530/</a> -->
    1.17 +     <!-- <dd><a href="http://www.w3.org/TR/2013/ED-css3-fonts-20130531/">http://www.w3.org/TR/2013/ED-css3-fonts-20130531/</a> -->
    1.18       
    1.19  
    1.20      <dt>Latest version:
    1.21 @@ -2127,23 +2127,26 @@
    1.22  
    1.23    <h2 id=font-resources><span class=secno>4 </span>Font Resources</h2>
    1.24  
    1.25 -  <h3 id=font-face-rule><span class=secno>4.1 </span>The
    1.26 -   <code>@font-face</code> rule</h3>
    1.27 -
    1.28 -  <p>The <code>@font-face</code> rule allows for linking to fonts that are
    1.29 -   automatically fetched and activated when needed. This allows authors to
    1.30 -   select a font that closely matches the design goals for a given page
    1.31 -   rather than limiting the font choice to a set of fonts available on all
    1.32 -   platforms. A set of font descriptors define the location of a font
    1.33 -   resource, either locally or externally, along with the style
    1.34 -   characteristics of an individual face. Multiple <code>@font-face</code>
    1.35 -   rules can be used to construct font families with a variety of faces.
    1.36 -   Using CSS font matching rules, a user agent can selectively download only
    1.37 -   those faces that are needed for a given piece of text.
    1.38 -
    1.39 -  <p>The @font-face rule consists of the @font-face at-keyword followed by a
    1.40 -   block of descriptor declarations. In terms of the grammar, this
    1.41 -   specification defines the following productions:
    1.42 +  <h3 id=font-face-rule><span class=secno>4.1 </span>The <dfn
    1.43 +   id=at-font-face-rule style="font-weight: inherit; font-style:
    1.44 +   inherit"><code>@font-face</code></dfn> rule</h3>
    1.45 +
    1.46 +  <p>The <a href="#at-font-face-rule"><code>@font-face</code></a> rule allows
    1.47 +   for linking to fonts that are automatically fetched and activated when
    1.48 +   needed. This allows authors to select a font that closely matches the
    1.49 +   design goals for a given page rather than limiting the font choice to a
    1.50 +   set of fonts available on all platforms. A set of font descriptors define
    1.51 +   the location of a font resource, either locally or externally, along with
    1.52 +   the style characteristics of an individual face. Multiple <a
    1.53 +   href="#at-font-face-rule"><code>@font-face</code></a> rules can be used to
    1.54 +   construct font families with a variety of faces. Using CSS font matching
    1.55 +   rules, a user agent can selectively download only those faces that are
    1.56 +   needed for a given piece of text.
    1.57 +
    1.58 +  <p>The <a href="#at-font-face-rule"><code>@font-face</code></a> rule
    1.59 +   consists of the <a href="#at-font-face-rule"><code>@font-face</code></a>
    1.60 +   at-keyword followed by a block of descriptor declarations. In terms of the
    1.61 +   grammar, this specification defines the following productions:
    1.62  
    1.63    <pre><dfn id=fontfacerule>font_face_rule</dfn>
    1.64    : <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.65 @@ -2162,18 +2165,18 @@
    1.66  
    1.67    <pre>@{F}{O}{N}{T}{-}{F}{A}{C}{E} {return <dfn id=fontfacesym>FONT_FACE_SYM</dfn>;}</pre>
    1.68  
    1.69 -  <p>Each <span class=index-inst id=font-face
    1.70 -   title="@font-face"><code>@font-face</code></span> rule specifies a value
    1.71 -   for every font descriptor, either implicitly or explicitly. Those not
    1.72 -   given explicit values in the rule take the initial value listed with each
    1.73 -   descriptor in this specification. These descriptors apply solely within
    1.74 -   the context of the <code>@font-face</code> rule in which they are defined,
    1.75 -   and do not apply to document language elements. There is no notion of
    1.76 -   which elements the descriptors apply to or whether the values are
    1.77 -   inherited by child elements. When a given descriptor occurs multiple times
    1.78 -   in a given <code>@font-face</code> rule, only the last descriptor
    1.79 -   declaration is used and all prior declarations for that descriptor are
    1.80 -   ignored.
    1.81 +  <p>Each <a href="#at-font-face-rule"><code>@font-face</code></a> rule
    1.82 +   specifies a value for every font descriptor, either implicitly or
    1.83 +   explicitly. Those not given explicit values in the rule take the initial
    1.84 +   value listed with each descriptor in this specification. These descriptors
    1.85 +   apply solely within the context of the <a
    1.86 +   href="#at-font-face-rule"><code>@font-face</code></a> rule in which they
    1.87 +   are defined, and do not apply to document language elements. There is no
    1.88 +   notion of which elements the descriptors apply to or whether the values
    1.89 +   are inherited by child elements. When a given descriptor occurs multiple
    1.90 +   times in a given <a href="#at-font-face-rule"><code>@font-face</code></a>
    1.91 +   rule, only the last descriptor declaration is used and all prior
    1.92 +   declarations for that descriptor are ignored.
    1.93  
    1.94    <div class=example>
    1.95     <p>To use a downloadable font called Gentium:</p>
    1.96 @@ -2192,10 +2195,10 @@
    1.97      is unavailable, the default serif font will be used.</p>
    1.98    </div>
    1.99  
   1.100 -  <p>A given set of <code>@font-face</code> rules define a set of fonts
   1.101 -   available for use within the documents that contain these rules. When font
   1.102 -   matching is done, fonts defined using these rules are considered before
   1.103 -   other available fonts on a system.
   1.104 +  <p>A given set of <a href="#at-font-face-rule"><code>@font-face</code></a>
   1.105 +   rules define a set of fonts available for use within the documents that
   1.106 +   contain these rules. When font matching is done, fonts defined using these
   1.107 +   rules are considered before other available fonts on a system.
   1.108  
   1.109    <p>Downloaded fonts are only available to documents that reference them.
   1.110     The process of activating these fonts must not make them available to
   1.111 @@ -2210,16 +2213,17 @@
   1.112  
   1.113    <p>This at-rule follows the forward-compatible parsing rules of CSS. Like
   1.114     properties in a declaration block, declarations of any descriptors that
   1.115 -   are not supported by the user agent must be ignored.
   1.116 -   <code>@font-face</code> rules require a font-family and src descriptor; if
   1.117 -   either of these are missing, the <code>@font-face</code> rule is invalid
   1.118 -   and must be ignored entirely.
   1.119 +   are not supported by the user agent must be ignored. <a
   1.120 +   href="#at-font-face-rule"><code>@font-face</code></a> rules require a
   1.121 +   font-family and src descriptor; if either of these are missing, the <a
   1.122 +   href="#at-font-face-rule"><code>@font-face</code></a> rule is invalid and
   1.123 +   must be ignored entirely.
   1.124  
   1.125    <p>In cases where user agents have limited platform resources or implement
   1.126 -   the ability to disable downloadable font resources,
   1.127 -   <code>@font-face</code> rules must simply be ignored; the behavior of
   1.128 -   individual descriptors as defined in this specification should not be
   1.129 -   altered.
   1.130 +   the ability to disable downloadable font resources, <a
   1.131 +   href="#at-font-face-rule"><code>@font-face</code></a> rules must simply be
   1.132 +   ignored; the behavior of individual descriptors as defined in this
   1.133 +   specification should not be altered.
   1.134  
   1.135    <h3 id=font-family-desc><span class=secno>4.2 </span>Font family: the <a
   1.136     href="#descdef-font-family">font-family</a> descriptor</h3>
   1.137 @@ -2244,14 +2248,15 @@
   1.138    </table>
   1.139  
   1.140    <p>This descriptor defines the font family name that will be used in all
   1.141 -   CSS font family name matching. It is required for the @font-face rule to
   1.142 -   be valid. It overrides the font family names contained in the underlying
   1.143 -   font data. If the font family name is the same as a font family available
   1.144 -   in a given user's environment, it effectively hides the underlying font
   1.145 -   for documents that use the stylesheet. This permits a web author to freely
   1.146 -   choose font-family names without worrying about conflicts with font family
   1.147 -   names present in a given user's environment. Likewise, platform
   1.148 -   substitutions for a given font family name must not be used.
   1.149 +   CSS font family name matching. It is required for the <a
   1.150 +   href="#at-font-face-rule"><code>@font-face</code></a> rule to be valid. It
   1.151 +   overrides the font family names contained in the underlying font data. If
   1.152 +   the font family name is the same as a font family available in a given
   1.153 +   user's environment, it effectively hides the underlying font for documents
   1.154 +   that use the stylesheet. This permits a web author to freely choose
   1.155 +   font-family names without worrying about conflicts with font family names
   1.156 +   present in a given user's environment. Likewise, platform substitutions
   1.157 +   for a given font family name must not be used.
   1.158  
   1.159    <h3 id=src-desc><span class=secno>4.3 </span>Font reference: the <a
   1.160     href="#descdef-src">src</a> descriptor</h3>
   1.161 @@ -2276,27 +2281,27 @@
   1.162    </table>
   1.163  
   1.164    <p>This descriptor specifies the resource containing font data. It is
   1.165 -   required for the <code>@font-face</code> rule to be valid. Its value is a
   1.166 -   prioritized, comma-separated list of external references or
   1.167 -   locally-installed font face names. When a font is needed the user agent
   1.168 -   iterates over the set of references listed, using the first one it can
   1.169 -   successfully activate. Fonts containing invalid data or local font faces
   1.170 -   that are not found are ignored and the user agent loads the next font in
   1.171 -   the list.
   1.172 +   required for the <a href="#at-font-face-rule"><code>@font-face</code></a>
   1.173 +   rule to be valid. Its value is a prioritized, comma-separated list of
   1.174 +   external references or locally-installed font face names. When a font is
   1.175 +   needed the user agent iterates over the set of references listed, using
   1.176 +   the first one it can successfully activate. Fonts containing invalid data
   1.177 +   or local font faces that are not found are ignored and the user agent
   1.178 +   loads the next font in the list.
   1.179  
   1.180    <p>As with other URLs in CSS, the URL may be relative, in which case it is
   1.181 -   resolved relative to the location of the style sheet containing the <span
   1.182 -   class=index-inst id=font-face0
   1.183 -   title="@font-face"><code>@font-face</code></span> rule. In the case of SVG
   1.184 -   fonts, the URL points to an element within a document containing SVG font
   1.185 -   definitions. If the element reference is omitted, a reference to the first
   1.186 -   defined font is implied. Similarly, font container formats that can
   1.187 +   resolved relative to the location of the style sheet containing the <a
   1.188 +   href="#at-font-face-rule"><code>@font-face</code></a> rule. In the case of
   1.189 +   SVG fonts, the URL points to an element within a document containing SVG
   1.190 +   font definitions. If the element reference is omitted, a reference to the
   1.191 +   first defined font is implied. Similarly, font container formats that can
   1.192     contain more than one font must load one and only one of the fonts for a
   1.193 -   given <code>@font-face</code> rule. Fragment identifiers are used to
   1.194 -   indicate which font to load. If a container format lacks a defined
   1.195 -   fragment identifier scheme, implementations should use a simple 1-based
   1.196 -   indexing scheme (e.g. "font-collection#1" for the first font,
   1.197 -   "font-collection#2" for the second font).
   1.198 +   given <a href="#at-font-face-rule"><code>@font-face</code></a> rule.
   1.199 +   Fragment identifiers are used to indicate which font to load. If a
   1.200 +   container format lacks a defined fragment identifier scheme,
   1.201 +   implementations should use a simple 1-based indexing scheme (e.g.
   1.202 +   "font-collection#1" for the first font, "font-collection#2" for the second
   1.203 +   font).
   1.204  
   1.205    <pre>
   1.206  src: url(fonts/simple.ttf);   /* load simple.ttf relative to stylesheet location */
   1.207 @@ -2420,11 +2425,11 @@
   1.208  }
   1.209  </pre>
   1.210  
   1.211 -  <p>Just as a <code>@font-face</code> rule specifies the characteristics of
   1.212 -   a single font within a family, the unique name used with
   1.213 -   <code>local()</code> specifies a single font, not an entire font family.
   1.214 -   Defined in terms of OpenType font data, the Postscript name is found in
   1.215 -   the font's <a
   1.216 +  <p>Just as a <a href="#at-font-face-rule"><code>@font-face</code></a> rule
   1.217 +   specifies the characteristics of a single font within a family, the unique
   1.218 +   name used with <code>local()</code> specifies a single font, not an entire
   1.219 +   font family. Defined in terms of OpenType font data, the Postscript name
   1.220 +   is found in the font's <a
   1.221     href="http://www.microsoft.com/typography/otspec/name.htm">name table</a>,
   1.222     in the name record with nameID = 6 (see <a href="#OPENTYPE"
   1.223     rel=biblioentry>[OPENTYPE]<!--{{!OPENTYPE}}--></a> for more details). The
   1.224 @@ -2498,7 +2503,8 @@
   1.225      class=css>gentium.eot</code>’ in the example below, since it is
   1.226      included in the first definition of the ‘<a href="#descdef-src"><code
   1.227      class=property>src</code></a>’ descriptor which is overridden by the
   1.228 -    second definition in the same <code>@font-face</code> rule:</p>
   1.229 +    second definition in the same <a
   1.230 +    href="#at-font-face-rule"><code>@font-face</code></a> rule:</p>
   1.231  
   1.232     <pre>
   1.233  @font-face {
   1.234 @@ -2575,14 +2581,15 @@
   1.235  
   1.236    <p>These descriptors define the characteristics of a font face and are used
   1.237     in the process of matching styles to specific faces. For a font family
   1.238 -   defined with several <code>@font-face</code> rules, user agents can either
   1.239 -   download all faces in the family or use these descriptors to selectively
   1.240 -   download font faces that match actual styles used in document. The values
   1.241 -   for these descriptors are the same as those for the corresponding font
   1.242 -   properties except that relative keywords are not allowed, ‘<a
   1.243 -   href="#bolder"><code class=property>bolder</code></a>’ and ‘<a
   1.244 -   href="#lighter"><code class=property>lighter</code></a>’. If these
   1.245 -   descriptors are omitted, initial values are assumed.
   1.246 +   defined with several <a
   1.247 +   href="#at-font-face-rule"><code>@font-face</code></a> rules, user agents
   1.248 +   can either download all faces in the family or use these descriptors to
   1.249 +   selectively download font faces that match actual styles used in document.
   1.250 +   The values for these descriptors are the same as those for the
   1.251 +   corresponding font properties except that relative keywords are not
   1.252 +   allowed, ‘<a href="#bolder"><code class=property>bolder</code></a>’
   1.253 +   and ‘<a href="#lighter"><code class=property>lighter</code></a>’. If
   1.254 +   these descriptors are omitted, initial values are assumed.
   1.255  
   1.256    <p>The value for these font face style attributes is used in place of the
   1.257     style implied by the underlying font data. This allows authors to combine
   1.258 @@ -2685,19 +2692,21 @@
   1.259    <h3 id=composite-fonts><span class=secno>4.6 </span>Using character ranges
   1.260     to define composite fonts</h3>
   1.261  
   1.262 -  <p>Multiple <code>@font-face</code> rules with different unicode ranges for
   1.263 -   the same family and style descriptor values can be used to create
   1.264 -   composite fonts that mix the glyphs from different fonts for different
   1.265 -   scripts. This can be used to combine fonts that only contain glyphs for a
   1.266 -   single script (e.g. Latin, Greek, Cyrillic) or it can be used by authors
   1.267 -   as a way of segmenting a font into fonts for commonly used characters and
   1.268 -   less frequently used characters. Since the user agent will only pull down
   1.269 -   the fonts it needs this helps reduce page bandwidth.
   1.270 -
   1.271 -  <p>If the unicode ranges overlap for a set of <code>@font-face</code> rules
   1.272 -   with the same family and style descriptor values, the rules are ordered in
   1.273 -   the reverse order they were defined; the last rule defined is the first to
   1.274 -   be checked for a given character.
   1.275 +  <p>Multiple <a href="#at-font-face-rule"><code>@font-face</code></a> rules
   1.276 +   with different unicode ranges for the same family and style descriptor
   1.277 +   values can be used to create composite fonts that mix the glyphs from
   1.278 +   different fonts for different scripts. This can be used to combine fonts
   1.279 +   that only contain glyphs for a single script (e.g. Latin, Greek, Cyrillic)
   1.280 +   or it can be used by authors as a way of segmenting a font into fonts for
   1.281 +   commonly used characters and less frequently used characters. Since the
   1.282 +   user agent will only pull down the fonts it needs this helps reduce page
   1.283 +   bandwidth.
   1.284 +
   1.285 +  <p>If the unicode ranges overlap for a set of <a
   1.286 +   href="#at-font-face-rule"><code>@font-face</code></a> rules with the same
   1.287 +   family and style descriptor values, the rules are ordered in the reverse
   1.288 +   order they were defined; the last rule defined is the first to be checked
   1.289 +   for a given character.
   1.290  
   1.291    <p>Example ranges for specific languages or characters:
   1.292  
   1.293 @@ -2722,9 +2731,10 @@
   1.294  
   1.295    <div class=example>
   1.296     <p>The BBC provides news services in a wide variety of languages, many
   1.297 -    that are not well supported across all platforms. Using an
   1.298 -    <code>@font-face</code> rule, the BBC could provide a font for any of
   1.299 -    these languages, as it already does via a manual font download.</p>
   1.300 +    that are not well supported across all platforms. Using an <a
   1.301 +    href="#at-font-face-rule"><code>@font-face</code></a> rule, the BBC could
   1.302 +    provide a font for any of these languages, as it already does via a
   1.303 +    manual font download.</p>
   1.304  
   1.305     <pre>
   1.306  @font-face {
   1.307 @@ -2829,10 +2839,10 @@
   1.308      user agent evaluates the Japanese font. The unicode-range for the
   1.309      Japanese font, U+3000-9FFF and U+ff??, does not include U+21E8, so the
   1.310      user agent does not download the Japanese font. Next the fallback font is
   1.311 -    considered. The <code>@font-face</code> rule for the fallback font does
   1.312 -    not define unicode-range so its value defaults to the range of all
   1.313 -    Unicode code points. The fallback font is downloaded and used to render
   1.314 -    the arrow character.</p>
   1.315 +    considered. The <a href="#at-font-face-rule"><code>@font-face</code></a>
   1.316 +    rule for the fallback font does not define unicode-range so its value
   1.317 +    defaults to the range of all Unicode code points. The fallback font is
   1.318 +    downloaded and used to render the arrow character.</p>
   1.319    </div>
   1.320  
   1.321    <h3 id=font-rend-desc><span class=secno>4.7 </span>Font features: the <a
   1.322 @@ -2920,9 +2930,9 @@
   1.323    </table>
   1.324  
   1.325    <p>These descriptors define initial settings that apply when the font
   1.326 -   defined by an <code>@font-face</code> rule is rendered. They do not affect
   1.327 -   font selection. Values are identical to those defined for the
   1.328 -   corresponding <a href="#propdef-font-variant"
   1.329 +   defined by an <a href="#at-font-face-rule"><code>@font-face</code></a>
   1.330 +   rule is rendered. They do not affect font selection. Values are identical
   1.331 +   to those defined for the corresponding <a href="#propdef-font-variant"
   1.332     title="font-variant!!property">‘<code
   1.333     class=property>font-variant</code>’</a> and <a
   1.334     href="#propdef-font-feature-settings"
   1.335 @@ -2942,17 +2952,18 @@
   1.336    <h3 id=font-face-loading><span class=secno>4.8 </span>Font loading
   1.337     guidelines</h3>
   1.338  
   1.339 -  <p>The <code>@font-face</code> rule is designed to allow lazy loading of
   1.340 -   font resources that are only downloaded when used within a document. A
   1.341 -   stylesheet can include <code>@font-face</code> rules for a library of
   1.342 -   fonts of which only a select set are used; user agents must only download
   1.343 -   those fonts that are referred to within the style rules applicable to a
   1.344 -   given page. User agents that download all fonts defined in
   1.345 -   <code>@font-face</code> rules without considering whether those fonts are
   1.346 -   in fact used within a page are considered non-conformant. In cases where a
   1.347 -   font might be downloaded in character fallback cases, user agents may
   1.348 -   download a font if it's listed in a font list but is not actually used for
   1.349 -   a given text run.
   1.350 +  <p>The <a href="#at-font-face-rule"><code>@font-face</code></a> rule is
   1.351 +   designed to allow lazy loading of font resources that are only downloaded
   1.352 +   when used within a document. A stylesheet can include <a
   1.353 +   href="#at-font-face-rule"><code>@font-face</code></a> rules for a library
   1.354 +   of fonts of which only a select set are used; user agents must only
   1.355 +   download those fonts that are referred to within the style rules
   1.356 +   applicable to a given page. User agents that download all fonts defined in
   1.357 +   <a href="#at-font-face-rule"><code>@font-face</code></a> rules without
   1.358 +   considering whether those fonts are in fact used within a page are
   1.359 +   considered non-conformant. In cases where a font might be downloaded in
   1.360 +   character fallback cases, user agents may download a font if it's listed
   1.361 +   in a font list but is not actually used for a given text run.
   1.362  
   1.363    <pre>
   1.364  @font-face {
   1.365 @@ -2992,15 +3003,17 @@
   1.366  -->
   1.367  
   1.368    <p>User agents must implement a same-origin restriction when loading fonts
   1.369 -   via the <code>@font-face</code> mechanism. This restriction limits the
   1.370 -   loading of fonts for a given document to fonts loaded from the same
   1.371 -   origin. Fonts can only be loaded via the same host, port, and method
   1.372 -   combination as the containing document, using the <a
   1.373 +   via the <a href="#at-font-face-rule"><code>@font-face</code></a>
   1.374 +   mechanism. This restriction limits the loading of fonts for a given
   1.375 +   document to fonts loaded from the same origin. Fonts can only be loaded
   1.376 +   via the same host, port, and method combination as the containing
   1.377 +   document, using the <a
   1.378     href="http://www.w3.org/TR/html5/browsers.html#origin">origin matching
   1.379     algorithm</a> described in the <a href="#HTML5"
   1.380     rel=biblioentry>[HTML5]<!--{{!HTML5}}--></a> specification. The origin of
   1.381 -   the stylesheet containing <code>@font-face</code> rules is not used when
   1.382 -   deciding whether a font is same origin or not, only the origin of the
   1.383 +   the stylesheet containing <a
   1.384 +   href="#at-font-face-rule"><code>@font-face</code></a> rules is not used
   1.385 +   when deciding whether a font is same origin or not, only the origin of the
   1.386     containing document is used. The restriction applies to all font types.
   1.387  
   1.388    <p>Given a document located at http://example.com/page.html, fonts defined
   1.389 @@ -3067,17 +3080,18 @@
   1.390  
   1.391    <p>As part of the font matching algorithm outlined below, user agents must
   1.392     match font family names used in style rules with actual font family names
   1.393 -   contained in fonts available in a given environment or defined via
   1.394 -   <code>@font-face</code> rules. User agents must match these names case
   1.395 -   insensitively, using the "Default Caseless Matching" algorithm outlined in
   1.396 -   the Unicode specification <a href="#UNICODE6"
   1.397 -   rel=biblioentry>[UNICODE6]<!--{{!UNICODE6}}--></a>. This algorithm is
   1.398 -   detailed in section 3.13 entitled "Default Case Algorithms". Specifically,
   1.399 -   the algorithm must be applied without normalizing the strings involved and
   1.400 -   without applying any language-specific tailorings. The case folding method
   1.401 -   specified by this algorithm uses the case mappings with status field
   1.402 -   ‘<code class=property>C</code>’ or ‘<code class=property>F</code>’
   1.403 -   in the CaseFolding.txt file of the Unicode Character Database.
   1.404 +   contained in fonts available in a given environment or defined via <a
   1.405 +   href="#at-font-face-rule"><code>@font-face</code></a> rules. User agents
   1.406 +   must match these names case insensitively, using the "Default Caseless
   1.407 +   Matching" algorithm outlined in the Unicode specification <a
   1.408 +   href="#UNICODE6" rel=biblioentry>[UNICODE6]<!--{{!UNICODE6}}--></a>. This
   1.409 +   algorithm is detailed in section 3.13 entitled "Default Case Algorithms".
   1.410 +   Specifically, the algorithm must be applied without normalizing the
   1.411 +   strings involved and without applying any language-specific tailorings.
   1.412 +   The case folding method specified by this algorithm uses the case mappings
   1.413 +   with status field ‘<code class=property>C</code>’ or ‘<code
   1.414 +   class=property>F</code>’ in the CaseFolding.txt file of the Unicode
   1.415 +   Character Database.
   1.416  
   1.417    <p class=note> Implementors should take care to verify that a given
   1.418     caseless string comparison implementation uses this precise algorithm and
   1.419 @@ -3087,14 +3101,14 @@
   1.420  
   1.421    <p class=note> For authors this means that font family names are matched
   1.422     case insensitively, whether those names exist in a platform font or in the
   1.423 -   <code>@font-face</code> rules contained in a stylesheet. Authors should
   1.424 -   take care to ensure that names use a character sequence consistent with
   1.425 -   the actual font family name, particularly when using combining characters
   1.426 -   such as diacritical marks. For example, a family name that contains an
   1.427 -   uppercase A (U+0041) followed by a combining ring (U+030A) will
   1.428 -   <strong>not</strong> match a name that looks identical but which uses the
   1.429 -   precomposed lowercase a-ring character (U+00E5) instead of the combining
   1.430 -   sequence.
   1.431 +   <a href="#at-font-face-rule"><code>@font-face</code></a> rules contained
   1.432 +   in a stylesheet. Authors should take care to ensure that names use a
   1.433 +   character sequence consistent with the actual font family name,
   1.434 +   particularly when using combining characters such as diacritical marks.
   1.435 +   For example, a family name that contains an uppercase A (U+0041) followed
   1.436 +   by a combining ring (U+030A) will <strong>not</strong> match a name that
   1.437 +   looks identical but which uses the precomposed lowercase a-ring character
   1.438 +   (U+00E5) instead of the combining sequence.
   1.439  
   1.440    <h3 id=font-style-matching><span class=secno>5.2 </span>Matching font
   1.441     styles</h3>
   1.442 @@ -3125,17 +3139,20 @@
   1.443      containing element or the Unicode range of the character.
   1.444  
   1.445     <li>For other family names, the user agent attempts to find the family
   1.446 -    name among fonts defined via <code>@font-face</code> rules and then among
   1.447 -    available system fonts, matching names with a case-insensitive comparison
   1.448 -    as outlined <a href="#font-family-casing">in the section above</a>. On
   1.449 -    systems containing fonts with multiple localized font family names, user
   1.450 -    agents must match any of these names independent of the underlying system
   1.451 -    locale or platform API used. If the font resources defined for a given
   1.452 -    face in an @font-face rule are either not available or contain invalid
   1.453 -    font data, then the face should be treated as not present in the family.
   1.454 -    If no faces are present for a family defined via @font-face rules, the
   1.455 -    family should be treated as missing; matching a platform font with the
   1.456 -    same name must not occur in this case.
   1.457 +    name among fonts defined via <a
   1.458 +    href="#at-font-face-rule"><code>@font-face</code></a> rules and then
   1.459 +    among available system fonts, matching names with a case-insensitive
   1.460 +    comparison as outlined <a href="#font-family-casing">in the section
   1.461 +    above</a>. On systems containing fonts with multiple localized font
   1.462 +    family names, user agents must match any of these names independent of
   1.463 +    the underlying system locale or platform API used. If the font resources
   1.464 +    defined for a given face in an <a
   1.465 +    href="#at-font-face-rule"><code>@font-face</code></a> rule are either not
   1.466 +    available or contain invalid font data, then the face should be treated
   1.467 +    as not present in the family. If no faces are present for a family
   1.468 +    defined via <a href="#at-font-face-rule"><code>@font-face</code></a>
   1.469 +    rules, the family should be treated as missing; matching a platform font
   1.470 +    with the same name must not occur in this case.
   1.471  
   1.472     <li>If a font family match occurs, the user agent assembles the set of
   1.473      font faces in that family and then narrows the set to a single face using
   1.474 @@ -3175,10 +3192,10 @@
   1.475        are excluded from the matching set. User agents are permitted to
   1.476        distinguish between italic and oblique faces within platform font
   1.477        families but this is not required, they may treat all italic or oblique
   1.478 -      faces as italic faces. However, within font families defined via
   1.479 -      <code>@font-face</code> rules, italic and oblique faces must be
   1.480 -      distinguished using the value of the <a href="#descdef-font-style"
   1.481 -      title="font-style!!descriptor">‘<code
   1.482 +      faces as italic faces. However, within font families defined via <a
   1.483 +      href="#at-font-face-rule"><code>@font-face</code></a> rules, italic and
   1.484 +      oblique faces must be distinguished using the value of the <a
   1.485 +      href="#descdef-font-style" title="font-style!!descriptor">‘<code
   1.486        class=property>font-style</code>’</a> descriptor.
   1.487  
   1.488       <li><a href="#propdef-font-weight"
   1.489 @@ -3230,11 +3247,12 @@
   1.490       used if the italic face doesn't support glyphs for Arabic).</p>
   1.491      <!-- resolution on the above: http://lists.w3.org/Archives/Public/www-style/2012Nov/0292.html -->
   1.492      
   1.493 -    <p>If the matched font is defined via an <code>@font-face</code> rule and
   1.494 -     needs to be downloaded, the font resource is downloaded. While the
   1.495 -     download occurs, the user agent can either wait until the font is
   1.496 -     downloaded or render once with substituted font metrics and render again
   1.497 -     once the font is downloaded.</p>
   1.498 +    <p>If the matched font is defined via an <a
   1.499 +     href="#at-font-face-rule"><code>@font-face</code></a> rule and needs to
   1.500 +     be downloaded, the font resource is downloaded. While the download
   1.501 +     occurs, the user agent can either wait until the font is downloaded or
   1.502 +     render once with substituted font metrics and render again once the font
   1.503 +     is downloaded.</p>
   1.504  
   1.505     <li>If there are no more font families to be evaluated and no matching
   1.506      face has been found, then the user agent performs a <em>system font
   1.507 @@ -4194,58 +4212,56 @@
   1.508       <td>no
   1.509    </table>
   1.510  
   1.511 -  <p>Specifies control over numerical forms.
   1.512 -
   1.513 -  <pre
   1.514 -   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.515 -
   1.516 -  <pre
   1.517 -   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.518 -
   1.519 -  <pre
   1.520 -   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.521 -
   1.522 -  <p>Individual values have the following meanings:
   1.523 -
   1.524 -  <dl>
   1.525 -   <dt><dfn id=font-variant-numeric-normal-value
   1.526 -    title="normal!!font-variant-numeric">normal</dfn>
   1.527 -
   1.528 -   <dd>None of the features listed below are enabled.
   1.529 -
   1.530 -   <dt><dfn id=lining-nums>lining-nums</dfn>
   1.531 -
   1.532 -   <dd>Enables display of lining numerals (OpenType feature: <span
   1.533 -    class=tag>lnum</span>).
   1.534 -
   1.535 -   <dt><dfn id=oldstyle-nums>oldstyle-nums</dfn>
   1.536 -
   1.537 -   <dd>Enables display of old-style numerals (OpenType feature: <span
   1.538 -    class=tag>onum</span>).
   1.539 -
   1.540 -   <dt><dfn id=proportional-nums>proportional-nums</dfn>
   1.541 -
   1.542 -   <dd>Enables display of proportional numerals (OpenType feature: <span
   1.543 -    class=tag>pnum</span>).
   1.544 -
   1.545 -   <dt><dfn id=tabular-nums>tabular-nums</dfn>
   1.546 -
   1.547 -   <dd>Enables display of tabular numerals (OpenType feature: <span
   1.548 -    class=tag>tnum</span>).
   1.549 -  </dl>
   1.550 -
   1.551 -  <p>The example below shows how these different properties can be combined
   1.552 -   to influence the rendering of tabular data with fonts that support these
   1.553 -   features. Within normal paragraph text, proportional numbers are used
   1.554 -   while tabular numbers are used so that columns of numbers line up
   1.555 -   properly:
   1.556 +  <p>Specifies control over numerical forms. The example below shows how some
   1.557 +   of these values can be combined to influence the rendering of tabular data
   1.558 +   with fonts that support these features. Within normal paragraph text,
   1.559 +   proportional numbers are used while tabular numbers are used so that
   1.560 +   columns of numbers line up properly:
   1.561  
   1.562    <div class=figure style="padding: 0; margin: auto;"><img alt="combining
   1.563     number styles" src=numberstyles.png>
   1.564     <p class=caption>Using number styles
   1.565    </div>
   1.566  
   1.567 +  <p>Possible combinations:
   1.568 +
   1.569 +  <pre
   1.570 +   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.571 +
   1.572 +  <pre
   1.573 +   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.574 +
   1.575 +  <pre
   1.576 +   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.577 +
   1.578 +  <p>Individual values have the following meanings:
   1.579 +
   1.580    <dl>
   1.581 +   <dt><dfn id=font-variant-numeric-normal-value
   1.582 +    title="normal!!font-variant-numeric">normal</dfn>
   1.583 +
   1.584 +   <dd>None of the features listed below are enabled.
   1.585 +
   1.586 +   <dt><dfn id=lining-nums>lining-nums</dfn>
   1.587 +
   1.588 +   <dd>Enables display of lining numerals (OpenType feature: <span
   1.589 +    class=tag>lnum</span>).
   1.590 +
   1.591 +   <dt><dfn id=oldstyle-nums>oldstyle-nums</dfn>
   1.592 +
   1.593 +   <dd>Enables display of old-style numerals (OpenType feature: <span
   1.594 +    class=tag>onum</span>).
   1.595 +
   1.596 +   <dt><dfn id=proportional-nums>proportional-nums</dfn>
   1.597 +
   1.598 +   <dd>Enables display of proportional numerals (OpenType feature: <span
   1.599 +    class=tag>pnum</span>).
   1.600 +
   1.601 +   <dt><dfn id=tabular-nums>tabular-nums</dfn>
   1.602 +
   1.603 +   <dd>Enables display of tabular numerals (OpenType feature: <span
   1.604 +    class=tag>tnum</span>).
   1.605 +
   1.606     <dt><dfn id=diagonal-fractions>diagonal-fractions</dfn>
   1.607  
   1.608     <dd>Enables display of lining diagonal fractions (OpenType feature: <span
   1.609 @@ -4296,6 +4312,11 @@
   1.610  &lt;p>Mix the meat with the marinade and let it sit covered in the refrigerator
   1.611  for a few hours or overnight.&lt;/p>
   1.612  </pre>
   1.613 +
   1.614 +   <p>Note that the fraction feature is only applied to values not the entire
   1.615 +    paragraph. Fonts often implement this feature using contextual rules
   1.616 +    based on the use of the slash (‘<code class=css>/</code>’) character.
   1.617 +    As such, it's not suitable for use as a paragraph-level style.</p>
   1.618    </div>
   1.619    <!-- prop: font-variant-alternates -->
   1.620  
   1.621 @@ -4368,17 +4389,30 @@
   1.622     in addition to the default glyph for that character. This property
   1.623     provides control over the selection of these alternate glyphs.
   1.624  
   1.625 -  <p>In cases where multiple alternates are possible, authors define a
   1.626 -   <code>&lt;feature-value-name&gt;</code> using the
   1.627 -   <code>@font-feature-values</code> rule described below to indicate the
   1.628 -   specific alternate to be used. The nature of these alternates is font
   1.629 -   specific, so the rule defines values for a specific font family or set of
   1.630 -   families. When a particular value has not been defined for a given family,
   1.631 -   the named value is treated as if the feature had omitted from the style
   1.632 +  <p>For many of the property values listed below, several different
   1.633 +   alternate glyphs are available. How many alternates are available and what
   1.634 +   they represent is font-specific, so these are each marked <em>font
   1.635 +   specific</em> in the value definitions below. Because the nature of these
   1.636 +   alternates is font-specific, the <a
   1.637 +   href="#at-font-feature-values-rule"><code>@font-feature-values</code></a>
   1.638 +   rule is used to define values for a specific font family or set of
   1.639 +   families that associate a font-specific numeric
   1.640 +   <code>&lt;feature-index&gt;</code> with a custom
   1.641 +   <code>&lt;feature-value-name&gt;</code>, which is then used in this
   1.642 +   property to select specific alternates:
   1.643 +
   1.644 +  <pre>@font-feature-values Noble Script { @swash { swishy: 1; flowing: 2; } }
   1.645 +
   1.646 +p {
   1.647 +  font-family: Noble Script;
   1.648 +  font-variant-alternates: swash(flowing); /* use swash alternate #2 */
   1.649 +}</pre>
   1.650 +
   1.651 +  <p>When a particular value has not been defined for a given family, the
   1.652 +   named value is treated as if the feature had been omitted from the style
   1.653     rule. If a given value is outside the range supported by a given font, the
   1.654     value is ignored. These values never apply to generic font families, nor
   1.655 -   to families selected as part of system font fallback. Values that behave
   1.656 -   this way are marked as <em>font specific</em>.
   1.657 +   to families selected as part of system font fallback.
   1.658  
   1.659    <p>Individual values have the following meanings:
   1.660  
   1.661 @@ -4388,17 +4422,6 @@
   1.662  
   1.663     <dd>None of the features listed below are enabled.
   1.664  
   1.665 -   <dt><dfn id=stylistic
   1.666 -    title=stylistic>stylistic(&lt;feature-value-name&gt;)</dfn>
   1.667 -
   1.668 -   <dd>Enables display of stylistic alternates (<em>font specific</em>,
   1.669 -    OpenType feature: <span class=tag>salt
   1.670 -    &lt;feature-value-name&gt;</span>).
   1.671 -  </dl>
   1.672 -
   1.673 -  <div class=featex><img alt="stylistic alternate example" src=salt.png></div>
   1.674 -
   1.675 -  <dl>
   1.676     <dt><dfn id=historical-forms>historical-forms</dfn>
   1.677  
   1.678     <dd>Enables display of historical forms (OpenType feature: <span
   1.679 @@ -4408,6 +4431,16 @@
   1.680    <div class=featex><img alt="historical form example" src=hist.png></div>
   1.681  
   1.682    <dl>
   1.683 +   <dt><dfn id=stylistic
   1.684 +    title=stylistic>stylistic(&lt;feature-value-name&gt;)</dfn>
   1.685 +
   1.686 +   <dd>Enables display of stylistic alternates (<em>font specific</em>,
   1.687 +    OpenType feature: <span class=tag>salt &lt;feature-index&gt;</span>).
   1.688 +  </dl>
   1.689 +
   1.690 +  <div class=featex><img alt="stylistic alternate example" src=salt.png></div>
   1.691 +
   1.692 +  <dl>
   1.693     <dt><dfn id=styleset title=styleset>styleset(&lt;feature-value-name&gt;
   1.694      #)</dfn>
   1.695  
   1.696 @@ -4450,8 +4483,8 @@
   1.697      as it distorts the semantics of the data. Font designers are encouraged
   1.698      to encode all ornaments (except those explicitly encoded in the Unicode
   1.699      Dingbats blocks, etc.) as alternates for the bullet character (U+2022) to
   1.700 -    allow authors to select the desired glyph using
   1.701 -    &lt;feature-value-name&gt;.
   1.702 +    allow authors to select the desired glyph using ‘<a
   1.703 +    href="#ornaments"><code class=property>ornaments</code></a>’.
   1.704    </dl>
   1.705  
   1.706    <div class=featex><img alt="ornaments example" src=ornm.png></div>
   1.707 @@ -4468,16 +4501,18 @@
   1.708     src=nalt.png></div>
   1.709  
   1.710    <h3 id=font-feature-values><span class=secno>6.9 </span>Defining font
   1.711 -   specific alternates: the <code>@font-feature-values</code> rule</h3>
   1.712 +   specific alternates: the <dfn id=at-font-feature-values-rule
   1.713 +   style="font-weight: inherit; font-style:
   1.714 +   inherit"><code>@font-feature-values</code></dfn> rule</h3>
   1.715  
   1.716    <p>Several of the possible values of ‘<a
   1.717     href="#propdef-font-variant-alternates"><code
   1.718     class=property>font-variant-alternates</code></a>’ listed above are
   1.719     labeled as "font specific". For these features fonts may define not just a
   1.720     single glyph but a set of alternate glyphs with an index to select a given
   1.721 -   alternate. Since these are font family specific, the
   1.722 -   <code>@font-feature-values</code> rule is used to define named-values for
   1.723 -   these indices for a given family.
   1.724 +   alternate. Since these are font family specific, the <a
   1.725 +   href="#at-font-feature-values-rule"><code>@font-feature-values</code></a>
   1.726 +   rule is used to define named-values for these indices for a given family.
   1.727  
   1.728    <p>In the case of the swash Q in the example shown above, the swash could
   1.729     be specified using these style rules:
   1.730 @@ -4624,12 +4659,13 @@
   1.731    @styleset { double-W: 14; sharp-terminals: 16 1; }
   1.732  }</pre>
   1.733  
   1.734 -  <p>If multiple <code>@font-feature-values</code> rules are defined for a
   1.735 -   given family, the resulting values defined are the union of these rules.
   1.736 -   This allows a set of named-values to be defined for a given font family
   1.737 -   globally for a site and specific additions made per-page. If the same
   1.738 -   &lt;feature-value-name&gt; is defined mulitple times for a given
   1.739 -   font-variant value, the last defined value is used.
   1.740 +  <p>If multiple <a
   1.741 +   href="#at-font-feature-values-rule"><code>@font-feature-values</code></a>
   1.742 +   rules are defined for a given family, the resulting values defined are the
   1.743 +   union of these rules. This allows a set of named-values to be defined for
   1.744 +   a given font family globally for a site and specific additions made
   1.745 +   per-page. If the same &lt;feature-value-name&gt; is defined mulitple times
   1.746 +   for a given font-variant value, the last defined value is used.
   1.747  
   1.748    <pre>
   1.749  site.css:
   1.750 @@ -5357,9 +5393,10 @@
   1.751     href="#propdef-font-feature-settings"
   1.752     title="font-feature-settings!!property">‘<code
   1.753     class=property>font-feature-settings</code>’</a> in a style rule or
   1.754 -   within an <code>@font-face</code> rule. The resolution order for the union
   1.755 -   of these settings is defined below. Features defined via CSS properties
   1.756 -   are applied on top of layout engine default features.
   1.757 +   within an <a href="#at-font-face-rule"><code>@font-face</code></a> rule.
   1.758 +   The resolution order for the union of these settings is defined below.
   1.759 +   Features defined via CSS properties are applied on top of layout engine
   1.760 +   default features.
   1.761  
   1.762    <h3 id=default-features><span class=secno>7.1 </span>Default features</h3>
   1.763  
   1.764 @@ -5403,13 +5440,15 @@
   1.765     <li>Font features enabled by default, including features required for a
   1.766      given script.
   1.767  
   1.768 -   <li>If the font is defined via an <code>@font-face</code> rule, the font
   1.769 -    features implied by the font-variant descriptor in the
   1.770 -    <code>@font-face</code> rule.
   1.771 -
   1.772 -   <li>If the font is defined via an <code>@font-face</code> rule, the font
   1.773 -    features implied by the font-feature-settings descriptor in the
   1.774 -    <code>@font-face</code> rule.
   1.775 +   <li>If the font is defined via an <a
   1.776 +    href="#at-font-face-rule"><code>@font-face</code></a> rule, the font
   1.777 +    features implied by the font-variant descriptor in the <a
   1.778 +    href="#at-font-face-rule"><code>@font-face</code></a> rule.
   1.779 +
   1.780 +   <li>If the font is defined via an <a
   1.781 +    href="#at-font-face-rule"><code>@font-face</code></a> rule, the font
   1.782 +    features implied by the font-feature-settings descriptor in the <a
   1.783 +    href="#at-font-face-rule"><code>@font-face</code></a> rule.
   1.784  
   1.785     <li>Feature settings determined by properties other than <a
   1.786      href="#propdef-font-variant" title="font-variant!!property">‘<code
   1.787 @@ -5434,10 +5473,12 @@
   1.788    </ol>
   1.789  
   1.790    <p>This ordering allows authors to set up a general set of defaults for
   1.791 -   fonts within their <code>@font-face</code> rules, then override them with
   1.792 -   property settings for specific elements. General property settings
   1.793 -   override the settings in <code>@font-face</code> rules and low-level font
   1.794 -   feature settings override <a href="#propdef-font-variant"
   1.795 +   fonts within their <a
   1.796 +   href="#at-font-face-rule"><code>@font-face</code></a> rules, then override
   1.797 +   them with property settings for specific elements. General property
   1.798 +   settings override the settings in <a
   1.799 +   href="#at-font-face-rule"><code>@font-face</code></a> rules and low-level
   1.800 +   font feature settings override <a href="#propdef-font-variant"
   1.801     title="font-variant!!property">‘<code
   1.802     class=property>font-variant</code>’</a> property settings.
   1.803  
   1.804 @@ -5466,9 +5507,9 @@
   1.805    </div>
   1.806  
   1.807    <div class=example>
   1.808 -   <p>When the font-variant descriptor is used within an
   1.809 -    <code>@font-face</code> rule, it only applies to the font defined by that
   1.810 -    rule.</p>
   1.811 +   <p>When the font-variant descriptor is used within an <a
   1.812 +    href="#at-font-face-rule"><code>@font-face</code></a> rule, it only
   1.813 +    applies to the font defined by that rule.</p>
   1.814  
   1.815     <pre>@font-face {
   1.816    font-family: MainText;
   1.817 @@ -5496,10 +5537,11 @@
   1.818    </div>
   1.819  
   1.820    <div class=example>
   1.821 -   <p>The <code>@font-face</code> rule can also be used to access font
   1.822 -    features in locally available fonts via the use of <code>local()</code>
   1.823 -    in the ‘<a href="#descdef-src"><code class=property>src</code></a>’
   1.824 -    descriptor of the <code>@font-face</code> definition:</p>
   1.825 +   <p>The <a href="#at-font-face-rule"><code>@font-face</code></a> rule can
   1.826 +    also be used to access font features in locally available fonts via the
   1.827 +    use of <code>local()</code> in the ‘<a href="#descdef-src"><code
   1.828 +    class=property>src</code></a>’ descriptor of the <a
   1.829 +    href="#at-font-face-rule"><code>@font-face</code></a> definition:</p>
   1.830  
   1.831     <pre>@font-face {
   1.832    font-family: BodyText;
   1.833 @@ -5531,8 +5573,8 @@
   1.834  span.special { font-variant-ligatures: no-discretionary-ligatures; }
   1.835  </pre>
   1.836  
   1.837 -   <p>Adding an discretionary style rule with the <code>@font-face</code>
   1.838 -    above:</p>
   1.839 +   <p>Adding an discretionary style rule with the <a
   1.840 +    href="#at-font-face-rule"><code>@font-face</code></a> above:</p>
   1.841  
   1.842     <pre>body         { font-family: main, Helvetica; }
   1.843  span         { font-feature-settings: "dlig"; }
   1.844 @@ -5560,15 +5602,17 @@
   1.845  
   1.846    <h2 id=object-model><span class=secno>8 </span>Object Model</h2>
   1.847  
   1.848 -  <p>The contents of <code>@font-face</code> and
   1.849 -   <code>@font-feature-values</code> rules can be accessed via the following
   1.850 -   extensions to the CSS Object Model.
   1.851 +  <p>The contents of <a href="#at-font-face-rule"><code>@font-face</code></a>
   1.852 +   and <a
   1.853 +   href="#at-font-feature-values-rule"><code>@font-feature-values</code></a>
   1.854 +   rules can be accessed via the following extensions to the CSS Object
   1.855 +   Model.
   1.856  
   1.857    <h3 id=om-fontface><span class=secno>8.1 </span>The <a
   1.858     href="#cssfontfacerule"><code>CSSFontFaceRule</code></a> interface</h3>
   1.859  
   1.860    <p>The <dfn id=cssfontfacerule>CSSFontFaceRule</dfn> interface represents a
   1.861 -   <code>@font-face</code> rule.
   1.862 +   <a href="#at-font-face-rule"><code>@font-face</code></a> rule.
   1.863  
   1.864    <pre class=idl>
   1.865  interface CSSFontFaceRule : CSSRule {
   1.866 @@ -5598,7 +5642,9 @@
   1.867  }</pre>
   1.868  
   1.869    <p>The <dfn id=cssfontfeaturevaluesrule>CSSFontFeatureValuesRule</dfn>
   1.870 -   interface represents a <code>@font-feature-values</code> rule.
   1.871 +   interface represents a <a
   1.872 +   href="#at-font-feature-values-rule"><code>@font-feature-values</code></a>
   1.873 +   rule.
   1.874  
   1.875    <pre class=idl>interface CSSFontFeatureValuesRule : CSSRule {
   1.876    readonly attribute DOMString familyList;
   1.877 @@ -5709,11 +5755,14 @@
   1.878     <li>Moved font load events into a separate <a
   1.879      href="http://dev.w3.org/csswg/css3-font-load-events/">spec</a>
   1.880  
   1.881 -   <li>Tightened error handling rules for <code>@font-feature-values</code>
   1.882 +   <li>Tightened error handling rules for <a
   1.883 +    href="#at-font-feature-values-rule"><code>@font-feature-values</code></a>
   1.884      rules
   1.885  
   1.886 -   <li>Added grammar productions for <code>@font-face</code> and
   1.887 -    <code>@font-feature-values</code> rules
   1.888 +   <li>Added grammar productions for <a
   1.889 +    href="#at-font-face-rule"><code>@font-face</code></a> and <a
   1.890 +    href="#at-font-feature-values-rule"><code>@font-feature-values</code></a>
   1.891 +    rules
   1.892  
   1.893     <li>Tightened definition of synthetic oblique
   1.894  
   1.895 @@ -5731,9 +5780,10 @@
   1.896     and Unicode variation selectors. The idea for supporting font features by
   1.897     using font-variant subproperties originated with Håkon Wium Lie, Adam
   1.898     Twardoch and Tal Leming. Elika Etemad supplied some of the initial design
   1.899 -   ideas for the <code>@font-feature-values</code> rule. Thanks also to House
   1.900 -   Industries for allowing the use of Ed Interlock in the discretionary
   1.901 -   ligatures example.
   1.902 +   ideas for the <a
   1.903 +   href="#at-font-feature-values-rule"><code>@font-feature-values</code></a>
   1.904 +   rule. Thanks also to House Industries for allowing the use of Ed Interlock
   1.905 +   in the discretionary ligatures example.
   1.906  
   1.907    <p>A special thanks to Robert Bringhurst for the sublime mind expansion
   1.908     that is <em>The Elements of Typographic Style</em>.
   1.909 @@ -6205,8 +6255,12 @@
   1.910     <li><var>&lt;urange&gt;</var>, <a href="#urange-value"
   1.911      title="&lt;urange&gt;"><strong>4.5</strong></a>
   1.912  
   1.913 -   <li>@font-face, <a href="#font-face" title="@font-face">4.1</a>, <a
   1.914 -    href="#font-face0" title="@font-face">4.3</a>
   1.915 +   <li><code>@font-face</code>, <a href="#at-font-face-rule"
   1.916 +    title="@font-face"><strong>4.1</strong></a>
   1.917 +
   1.918 +   <li><code>@font-feature-values</code>, <a
   1.919 +    href="#at-font-feature-values-rule"
   1.920 +    title="@font-feature-values"><strong>6.9</strong></a>
   1.921  
   1.922     <li>all-petite-caps, <a href="#all-petite-caps"
   1.923      title=all-petite-caps><strong>6.6</strong></a>

mercurial