Wed, 05 Jun 2013 19:51:35 +0900
[css3-fonts] revise @font-feature-values rule definition
css-fonts/Fonts.html | file | annotate | diff | comparison | revisions |
1.1 --- a/css-fonts/Fonts.html Wed Jun 05 17:02:26 2013 +0900 1.2 +++ b/css-fonts/Fonts.html Wed Jun 05 19:51:35 2013 +0900 1.3 @@ -112,15 +112,15 @@ 1.4 1.5 <h1>CSS Fonts Module Level 3</h1> 1.6 1.7 - <h2 class="no-num no-toc" id=editors-draft-31-may-2013>Editor's Draft 31 1.8 - May 2013</h2> 1.9 + <h2 class="no-num no-toc" id=editors-draft-5-june-2013>Editor's Draft 5 1.10 + June 2013</h2> 1.11 1.12 <dl id=authors> 1.13 <dt>This version: 1.14 1.15 <dd><a 1.16 href="http://dev.w3.org/csswg/css-fonts/">http://dev.w3.org/csswg/css-fonts/</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 + <!-- <dd><a href="http://www.w3.org/TR/2013/ED-css3-fonts-20130605/">http://www.w3.org/TR/2013/ED-css3-fonts-20130605/</a> --> 1.19 1.20 1.21 <dt>Latest version: 1.22 @@ -372,6 +372,13 @@ 1.23 <li><a href="#font-feature-values"><span class=secno>6.9 </span>Defining 1.24 font specific alternates: the <code>@font-feature-values</code> 1.25 rule</a> 1.26 + <ul class=toc> 1.27 + <li><a href="#basic-syntax"><span class=secno>6.9.1 </span>Basic 1.28 + syntax</a> 1.29 + 1.30 + <li><a href="#multi-valued-feature-value-definitions"><span 1.31 + class=secno>6.9.2 </span>Multi-valued feature value definitions</a> 1.32 + </ul> 1.33 1.34 <li><a href="#font-variant-east-asian-prop"><span class=secno>6.10 1.35 </span>East Asian text rendering: the font-variant-east-asian 1.36 @@ -4397,9 +4404,9 @@ 1.37 1.38 <p>For many of the property values listed below, several different 1.39 alternate glyphs are available. How many alternates are available and what 1.40 - they represent is font-specific, so these are each marked <em>font 1.41 - specific</em> in the value definitions below. Because the nature of these 1.42 - alternates is font-specific, the <a 1.43 + they represent is font-specific, so these are each marked <dfn 1.44 + id=font-specific>font specific</dfn> in the value definitions below. 1.45 + Because the nature of these alternates is font-specific, the <a 1.46 href="#at-font-feature-values-rule"><code>@font-feature-values</code></a> 1.47 rule is used to define values for a specific font family or set of 1.48 families that associate a font-specific numeric 1.49 @@ -4451,8 +4458,9 @@ 1.50 <dt><dfn id=stylistic 1.51 title=stylistic>stylistic(<feature-value-name>)</dfn> 1.52 1.53 - <dd>Enables display of stylistic alternates (<em>font specific</em>, 1.54 - OpenType feature: <span class=tag>salt <feature-index></span>). 1.55 + <dd>Enables display of stylistic alternates (<a 1.56 + href="#font-specific"><em>font specific</em></a>, OpenType feature: <span 1.57 + class=tag>salt <feature-index></span>). 1.58 </dl> 1.59 1.60 <div class=featex><img alt="stylistic alternate example" src=salt.png></div> 1.61 @@ -4461,10 +4469,10 @@ 1.62 <dt><dfn id=styleset title=styleset>styleset(<feature-value-name> 1.63 #)</dfn> 1.64 1.65 - <dd>Enables display with stylistic sets (<em>font specific</em>, OpenType 1.66 - feature: <span class=tag>ss<feature-index></span> OpenType 1.67 - currently defines <span class=tag>ss01</span> through <span 1.68 - class=tag>ss20</span>). 1.69 + <dd>Enables display with stylistic sets (<a href="#font-specific"><em>font 1.70 + specific</em></a>, OpenType feature: <span 1.71 + class=tag>ss<feature-index></span> OpenType currently defines <span 1.72 + class=tag>ss01</span> through <span class=tag>ss20</span>). 1.73 </dl> 1.74 1.75 <div class=featex><img alt="styleset example" src=ssnn.png></div> 1.76 @@ -4474,16 +4482,16 @@ 1.77 title=character-variant>character-variant(<feature-value-name> 1.78 #)</dfn> 1.79 1.80 - <dd>Enables display of specific character variants (<em>font 1.81 - specific</em>, OpenType feature: <span 1.82 + <dd>Enables display of specific character variants (<a 1.83 + href="#font-specific"><em>font specific</em></a>, OpenType feature: <span 1.84 class=tag>cv<feature-index></span> OpenType currently defines <span 1.85 class=tag>cv01</span> through <span class=tag>cv99</span>). 1.86 1.87 <dt><dfn id=swash title=swash>swash(<feature-value-name>)</dfn> 1.88 1.89 - <dd>Enables display of swash glyphs (<em>font specific</em>, OpenType 1.90 - feature: <span class=tag>swsh <feature-index>, cswh 1.91 - <feature-index></span>). 1.92 + <dd>Enables display of swash glyphs (<a href="#font-specific"><em>font 1.93 + specific</em></a>, OpenType feature: <span class=tag>swsh 1.94 + <feature-index>, cswh <feature-index></span>). 1.95 </dl> 1.96 1.97 <div class=featex><img alt="swash example" src=swsh.png></div> 1.98 @@ -4493,15 +4501,16 @@ 1.99 title=ornaments>ornaments(<feature-value-name>)</dfn> 1.100 1.101 <dd>Enables replacement of default glyphs with ornaments, if provided in 1.102 - the font (<em>font specific</em>, OpenType feature: <span class=tag>ornm 1.103 - <feature-index></span>). Some fonts may offer ornament glyphs as 1.104 - alternates for a wide collection of characters; however, displaying 1.105 - arbitrary characters (e.g., alphanumerics) as ornaments is poor practice 1.106 - as it distorts the semantics of the data. Font designers are encouraged 1.107 - to encode all ornaments (except those explicitly encoded in the Unicode 1.108 - Dingbats blocks, etc.) as alternates for the bullet character (U+2022) to 1.109 - allow authors to select the desired glyph using ‘<a 1.110 - href="#ornaments"><code class=property>ornaments</code></a>’. 1.111 + the font (<a href="#font-specific"><em>font specific</em></a>, OpenType 1.112 + feature: <span class=tag>ornm <feature-index></span>). Some fonts 1.113 + may offer ornament glyphs as alternates for a wide collection of 1.114 + characters; however, displaying arbitrary characters (e.g., 1.115 + alphanumerics) as ornaments is poor practice as it distorts the semantics 1.116 + of the data. Font designers are encouraged to encode all ornaments 1.117 + (except those explicitly encoded in the Unicode Dingbats blocks, etc.) as 1.118 + alternates for the bullet character (U+2022) to allow authors to select 1.119 + the desired glyph using ‘<a href="#ornaments"><code 1.120 + class=property>ornaments</code></a>’. 1.121 </dl> 1.122 1.123 <div class=featex><img alt="ornaments example" src=ornm.png></div> 1.124 @@ -4510,8 +4519,9 @@ 1.125 <dt><dfn id=annotation 1.126 title=annotation>annotation(<feature-value-name>)</dfn> 1.127 1.128 - <dd>Enables display of alternate annotation forms (<em>font specific</em>, 1.129 - OpenType feature: <span class=tag>nalt <feature-index></span>). 1.130 + <dd>Enables display of alternate annotation forms (<a 1.131 + href="#font-specific"><em>font specific</em></a>, OpenType feature: <span 1.132 + class=tag>nalt <feature-index></span>). 1.133 </dl> 1.134 1.135 <div class=featex><img alt="alternate annotation form example" 1.136 @@ -4525,16 +4535,22 @@ 1.137 <p>Several of the possible values of ‘<a 1.138 href="#propdef-font-variant-alternates"><code 1.139 class=property>font-variant-alternates</code></a>’ listed above are 1.140 - labeled as "font specific". For these features fonts may define not just a 1.141 - single glyph but a set of alternate glyphs with an index to select a given 1.142 - alternate. Since these are font family specific, the <a 1.143 + labeled as <a href="#font-specific"><em>font specific</em></a>. For these 1.144 + features fonts may define not just a single glyph but a set of alternate 1.145 + glyphs with an index to select a given alternate. Since these are font 1.146 + family specific, the <a 1.147 href="#at-font-feature-values-rule"><code>@font-feature-values</code></a> 1.148 - rule is used to define named-values for these indices for a given family. 1.149 - 1.150 - <p>In the case of the swash Q in the example shown above, the swash could 1.151 - be specified using these style rules: 1.152 - 1.153 - <pre> 1.154 + rule is used to define named values for these indices for a given family. 1.155 + 1.156 + <p class=note>See the <a href="#om-fontfeaturevalues">object model 1.157 + reference section</a> for a description of the interfaces used to modify 1.158 + these rules via the CSS Object Model. 1.159 + 1.160 + <div class=example> 1.161 + <p>In the case of the swash Q in the example shown above, the swash could 1.162 + be specified using these style rules:</p> 1.163 + 1.164 + <pre> 1.165 1.166 @font-feature-values Jupiter Sans { 1.167 @swash { 1.168 @@ -4550,12 +4566,27 @@ 1.169 1.170 <h2>Quick</h2></pre> 1.171 1.172 - <p>When Jupiter Sans is present, the second alternate swash alternate will 1.173 - be displayed. When not present, no swash character will be shown, since 1.174 - the specific named-value "flowing" is only defined for the Jupiter Sans 1.175 - family. The @-mark indicates the name of the property value for which a 1.176 - named-value can be used. The name "flowing" is chosen by the author, the 1.177 - values specified within a given font's data. 1.178 + <p>When Jupiter Sans is present, the second alternate swash alternate will 1.179 + be displayed. When not present, no swash character will be shown, since 1.180 + the specific named value "flowing" is only defined for the Jupiter Sans 1.181 + family. The @-mark indicates the name of the property value for which a 1.182 + named value can be used. The name "flowing" is chosen by the author. The 1.183 + index that represents each alternate is defined within a given font's 1.184 + data.</p> 1.185 + </div> 1.186 + 1.187 + <h4 id=basic-syntax><span class=secno>6.9.1 </span>Basic syntax</h4> 1.188 + 1.189 + <p>An <a 1.190 + href="#at-font-feature-values-rule"><code>@font-feature-values</code></a> 1.191 + rule is composed of a list of font families followed by a block containing 1.192 + individual <a href="#featurevalueblock"><i 1.193 + title="feature_value_block">feature value blocks</i></a> that take the 1.194 + form of @-rules. Each block defines a set of named values for a specific 1.195 + font feature when a given set of font families is used. Effectively, they 1.196 + define a mapping of ⟨family, feature, ident⟩ → ⟨values⟩ where 1.197 + ⟨values⟩ are the numeric indices used for specific features defined 1.198 + for a given font. 1.199 1.200 <p>In terms of the grammar, this specification defines the following 1.201 productions: 1.202 @@ -4592,65 +4623,85 @@ 1.203 <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.204 </pre> 1.205 1.206 - <p>Feature value blocks are treated <a 1.207 - href="http://www.w3.org/TR/CSS2/syndata.html#at-rules">similar to 1.208 - at-rules</a>, they consist of everything up to the next block or 1.209 - semi-colon, whichever comes first. 1.210 - 1.211 - <p>Font feature values rules define a set of values for a specific font 1.212 - feature as used for a given set of families. Effectively, they define a 1.213 - mapping of ⟨family, feature, ident⟩ → ⟨values⟩ where 1.214 - ⟨values⟩ are the indices used for specific features defined for a 1.215 - given font. 1.216 - 1.217 - <p>The font family list uses the same syntax as that used for the <a 1.218 + <p><a href="#featurevalueblock"><i title="feature_value_block">Feature 1.219 + value blocks</i></a> are handled as <a 1.220 + href="http://www.w3.org/TR/CSS2/syndata.html#at-rules">at-rules</a>, they 1.221 + consist of everything up to the next block or semi-colon, whichever comes 1.222 + first. 1.223 + 1.224 + <p>The <a href="#fontfamilynamelist"><i title="font_family_name_list">font 1.225 + family list</i></a> is a comma-delimited list of <a 1.226 + href="#fontfamilyname"><i title="font_family_name">font family 1.227 + names</i></a> that match the definition of <a 1.228 + href="#family-name-value"><var><family-name></var></a> for the <a 1.229 href="#propdef-font-family" title="font-family!!property">‘<code 1.230 - class=property>font-family</code>’</a> property. Within feature value 1.231 - blocks, the feature type is ‘<code class=css>@</code>’ followed by the 1.232 - name of the font-specific property value (e.g. <a 1.233 - href="#swash"><code>@swash</code></a>). The feature type must match, using 1.234 - an ASCII case-insensitive comparison, one of the <em>font specific</em> 1.235 - values of the ‘<a href="#propdef-font-variant-alternates"><code 1.236 - class=property>font-variant-alternates</code></a>’ property. The values 1.237 - associated with a given idenitifier are limited to integer values 0 or 1.238 - greater. 1.239 - 1.240 - <p>If syntax errors occur within the font family list, the entire rule must 1.241 - be ignored. When syntax errors occur within a feature value definition, 1.242 - such as invalid identifiers or values, the entire feature value definition 1.243 - must be omitted, similar to the way syntax errors in style declarations 1.244 - are handled. When the <code><feature-type></code> is invalid, the 1.245 - entire associated feature value block must be ignored. 1.246 - 1.247 - <pre>@font-feature-values Bongo { 1.248 + class=property>font-family</code>’</a> property. This means that only 1.249 + named font families are allowed, rules that include generic or system 1.250 + fonts in the list of font families are syntax errors. However, if a user 1.251 + agent defines a generic font to be a specific named font (e.g. Helvetica), 1.252 + the settings associated with that family name will be used. If syntax 1.253 + errors occur within the font family list, the entire rule must be ignored. 1.254 + 1.255 + <p>Within <a href="#featurevalueblock"><i 1.256 + title="feature_value_block">feature value blocks</i></a>, the <a 1.257 + href="#featuretype"><i title="feature_type">feature type</i></a> is 1.258 + ‘<code class=css>@</code>’ followed by the name of one of the <a 1.259 + href="#font-specific"><em>font specific</em></a> property values of ‘<a 1.260 + href="#propdef-font-variant-alternates"><code 1.261 + class=property>font-variant-alternates</code></a>’ (e.g. <a 1.262 + href="#swash"><code>@swash</code></a>). The identifiers used within 1.263 + feature value definitions follow the rules of CSS user identifiers and are 1.264 + case-sensitive. They are unique only for a given set of font families and 1.265 + <a href="#featuretype"><i title="feature_type">feature type</i></a>. The 1.266 + same identifier used with a different <a href="#featuretype"><i 1.267 + title="feature_type">feature type</i></a> is treated as a separate and 1.268 + distinct value. If the same identifier is defined mulitple times for a 1.269 + given <a href="#featuretype"><i title="feature_type">feature type</i></a> 1.270 + and font family, the last defined value is used. Values associated with a 1.271 + given identifier are limited to integer values 0 or greater. 1.272 + 1.273 + <p>When syntax errors occur within a <a href="#featurevaluedefinition"><i 1.274 + title="feature_value_definition">feature value definition</i></a>, such as 1.275 + invalid identifiers or values, the entire <a 1.276 + href="#featurevaluedefinition"><i title="feature_value_definition">feature 1.277 + value definition</i></a> must be omitted, just as syntax errors in style 1.278 + declarations are handled. When the <a href="#featuretype"><i 1.279 + title="feature_type">feature type</i></a> is invalid, the entire 1.280 + associated <a href="#featurevalueblock"><i 1.281 + title="feature_value_block">feature value block</i></a> must be ignored. 1.282 + 1.283 + <div class=example> 1.284 + <p>Rules that are equivalent given syntax error handling:</p> 1.285 + 1.286 + <pre>@font-feature-values Bongo { 1.287 @swash { ornate: 1; } 1.288 annotation { boxed: 4; } /* should be @annotation! */ 1.289 @swash { double-loops: 1; flowing: -1; } /* negative value */ 1.290 @ornaments ; /* incomplete definition */ 1.291 @styleset { double-W: 14; sharp-terminals: 16 1 } /* missing ; */ 1.292 - <a href="http://www.angryalien.com/0504/shiningbunnies.html" style="text-decoration: none;">redrum</a> /* random editing mistake */ 1.293 + <a href="http://www.angryalien.com/0504/shiningbunnies.html" style="text-decoration: none; border: none;">redrum</a> /* random editing mistake */ 1.294 }</pre> 1.295 1.296 - <p>The example above is equivalent to: 1.297 - 1.298 - <pre>@font-feature-values Bongo { 1.299 + <p>The example above is equivalent to:</p> 1.300 + 1.301 + <pre>@font-feature-values Bongo { 1.302 @swash { ornate: 1; } 1.303 @swash { double-loops: 1; } 1.304 @styleset { double-W: 14; sharp-terminals: 16 1; } 1.305 }</pre> 1.306 + </div> 1.307 1.308 <p>If multiple <a 1.309 href="#at-font-feature-values-rule"><code>@font-feature-values</code></a> 1.310 - rules are defined for a given family, the resulting values defined are the 1.311 - union of these rules. This allows a set of named-values to be defined for 1.312 - a given font family globally for a site and specific additions made 1.313 - per-page. If the same <feature-value-name> is defined mulitple times 1.314 - for a given <a href="#propdef-font-variant" 1.315 - title="font-variant!!property">‘<code 1.316 - class=property>font-variant</code>’</a> value, the last defined value is 1.317 - used. 1.318 - 1.319 - <pre> 1.320 + rules are defined for a given family, the resulting values definitions are 1.321 + the union of the definitions contained within these rules. This allows a 1.322 + set of named values to be defined for a given font family globally for a 1.323 + site and specific additions made per-page. 1.324 + 1.325 + <div class=example> 1.326 + <p>Using both site-wide and per-page feature values:</p> 1.327 + 1.328 + <pre> 1.329 site.css: 1.330 1.331 @font-feature-values Mercury Serif { 1.332 @@ -4674,35 +4725,15 @@ 1.333 /* enable both the use of stacked g and alternate m */ 1.334 font-variant-alternates: styleset(stacked-g, geometric-m); 1.335 }</pre> 1.336 - 1.337 - <p>Only named font families are allowed for <font-family>, rules that 1.338 - include generic or system fonts in the list of font families are 1.339 - considered syntax errors and the contents of the rules are ignored. 1.340 - However, if a user agent defines a generic font to be a specific named 1.341 - font (e.g. Helvetica), the settings associated with that family name will 1.342 - be used. 1.343 - 1.344 - <p>For <font-variant-property-value>, only font specific property value 1.345 - names supported by the <a href="#propdef-font-variant" 1.346 - title="font-variant!!property">‘<code 1.347 - class=property>font-variant</code>’</a> property are recognized, 1.348 - definitions for other value names cause a syntax error and are ignored. 1.349 - Each property value that is font specific is clearly marked as such. 1.350 - Feature value names follow the rules of CSS user identifiers and are 1.351 - case-sensitive. They are unique only for a given set of font families and 1.352 - <a href="#propdef-font-variant" title="font-variant!!property">‘<code 1.353 - class=property>font-variant</code>’</a> property value; the same 1.354 - identifier used with a different <a href="#propdef-font-variant" 1.355 - title="font-variant!!property">‘<code 1.356 - class=property>font-variant</code>’</a> property value is treated as a 1.357 - separate and distinct value. 1.358 - 1.359 - <p>Using a commonly named value allows authors to use a single style rule 1.360 - to cover a set of fonts for which the underlying selector is different for 1.361 - each font. If either font in the example below is found, a circled number 1.362 - glyph will be used: 1.363 - 1.364 - <pre>@font-feature-values Taisho Gothic { 1.365 + </div> 1.366 + 1.367 + <div class=example> 1.368 + <p>Using a commonly named value allows authors to use a single style rule 1.369 + to cover a set of fonts for which the underlying selector is different 1.370 + for each font. If either font in the example below is found, a circled 1.371 + number glyph will be used:</p> 1.372 + 1.373 + <pre>@font-feature-values Taisho Gothic { 1.374 @annotation { boxed: 1; circled: 4; } 1.375 } 1.376 1.377 @@ -4715,21 +4746,28 @@ 1.378 font-family: Taisho Gothic, Otaru Kisa; 1.379 font-variant: annotation(circled); 1.380 }</pre> 1.381 - 1.382 - <p>Most font specific <a href="#propdef-font-variant" 1.383 - title="font-variant!!property">‘<code 1.384 - class=property>font-variant</code>’</a> property values take a single 1.385 - value (e.g. swash). The character-variant property value allows two values 1.386 - and styleset allows an unlimited number. If a larger number of values are 1.387 - assigned to a given name, a syntax error occurs and the entire 1.388 - <font-feature-values-declaration> is ignored. 1.389 + </div> 1.390 + 1.391 + <h4 id=multi-valued-feature-value-definitions><span class=secno>6.9.2 1.392 + </span>Multi-valued feature value definitions</h4> 1.393 + 1.394 + <p>Most <a href="#font-specific"><em>font specific</em></a> ‘<a 1.395 + href="#propdef-font-variant-alternates"><code 1.396 + class=property>font-variant-alternates</code></a>’ property values take 1.397 + a single value (e.g. ‘<a href="#swash"><code 1.398 + class=property>swash</code></a>’). The ‘<a 1.399 + href="#character-variant"><code 1.400 + class=property>character-variant</code></a>’ property value allows two 1.401 + values and ‘<a href="#styleset"><code 1.402 + class=property>styleset</code></a>’ allows an unlimited number. 1.403 1.404 <p>For the styleset property value, multiple values indicate the style sets 1.405 to be enabled. Values between 1 and 99 enable OpenType features <span 1.406 class=tag>ss01</span> through <span class=tag>ss99</span>. However, the 1.407 OpenType standard only officially defines <span class=tag>ss01</span> 1.408 - through <span class=tag>ss20</span>. Values greater than 99 or equal to 0 1.409 - are ignored but do not generate a syntax error when parsed. 1.410 + through <span class=tag>ss20</span>. For OpenType fonts, values greater 1.411 + than 99 or equal to 0 do not generate a syntax error when parsed but 1.412 + enable no OpenType features. 1.413 1.414 <pre>@font-feature-values Mars Serif { 1.415 @styleset { 1.416 @@ -4755,16 +4793,18 @@ 1.417 <p>For character-variant, a single value between 1 and 99 indicates the 1.418 enabling of OpenType feature <span class=tag>cv01</span> through <span 1.419 class=tag>cv99</span>. For OpenType fonts, values greater than 99 or equal 1.420 - to 0 are ignored but do not generate a syntax error when parsed. When two 1.421 - values are listed, the first value indicates the feature used and the 1.422 - second the value passed for that feature. When two value names imply 1.423 - different settings for the same underlying feature the last setting is 1.424 - used. 1.425 + to 0 are ignored but do not generate a syntax error when parsed but enable 1.426 + no OpenType features. When two values are listed, the first value 1.427 + indicates the feature used and the second the value passed for that 1.428 + feature. If more than two values are assigned to a given name, a syntax 1.429 + error occurs and the entire <a href="#featurevaluedefinition"><i 1.430 + title="feature_value_definition">feature value definition</i></a> is 1.431 + ignored. 1.432 1.433 <pre>@font-feature-values MM Greek { 1.434 @character-variant { alpha-2: 1 2; } /* implies cv01 = 2 */ 1.435 @character-variant { beta-3: 2 3; } /* implies cv02 = 3 */ 1.436 - @character-variant { epsilon: 5 3 6; } /* more than 2 values, syntax error, ignored */ 1.437 + @character-variant { epsilon: 5 3 6; } /* more than 2 values, syntax error, definition ignored */ 1.438 @character-variant { gamma: 12; } /* implies cv12 = 1 */ 1.439 @character-variant { zeta: 20 3; } /* implies cv20 = 3 */ 1.440 @character-variant { zeta-2: 20 2; } /* implies cv20 = 2 */ 1.441 @@ -4787,10 +4827,6 @@ 1.442 font-variant-alternates: character-variant(zeta-2, zeta); 1.443 }</pre> 1.444 1.445 - <p>See the <a href="#om-fontfeaturevalues">object model reference 1.446 - section</a> for a description of the interfaces used to modify these rules 1.447 - via the CSS Object Model. 1.448 - 1.449 <div class=figure><img alt="Matching text on Byzantine seals using 1.450 character variants" src=byzantineseal.png> 1.451 <p class=caption>Byzantine seal text displayed with character variants 1.452 @@ -5430,9 +5466,10 @@ 1.453 1.454 <h3 id=feature-precedence><span class=secno>7.2 </span>Feature precedence</h3> 1.455 1.456 - <p>General and font specific font feature property settings are resolved in 1.457 - the order below, in ascending precedence order. This ordering is used to 1.458 - construct a combined list of font features that affect a given text run. 1.459 + <p>General and <a href="#font-specific"><em>font specific</em></a> font 1.460 + feature property settings are resolved in the order below, in ascending 1.461 + precedence order. This ordering is used to construct a combined list of 1.462 + font features that affect a given text run. 1.463 1.464 <ol> 1.465 <li>Font features enabled by default, including features required for a 1.466 @@ -5755,7 +5792,7 @@ 1.467 <li>Moved font load events into a separate <a 1.468 href="http://dev.w3.org/csswg/css3-font-load-events/">spec</a> 1.469 1.470 - <li>Tightened error handling rules for <a 1.471 + <li>Tightened syntax rules for <a 1.472 href="#at-font-feature-values-rule"><code>@font-feature-values</code></a> 1.473 rules 1.474 1.475 @@ -6340,16 +6377,19 @@ 1.476 of"><strong>#</strong></a> 1.477 1.478 <li>feature_type, <a href="#featuretype" 1.479 - title="feature_type"><strong>6.9</strong></a> 1.480 + title="feature_type"><strong>6.9.1</strong></a> 1.481 1.482 <li>feature_value_block, <a href="#featurevalueblock" 1.483 - title="feature_value_block"><strong>6.9</strong></a> 1.484 + title="feature_value_block"><strong>6.9.1</strong></a> 1.485 1.486 <li>feature_value_definition, <a href="#featurevaluedefinition" 1.487 - title="feature_value_definition"><strong>6.9</strong></a> 1.488 + title="feature_value_definition"><strong>6.9.1</strong></a> 1.489 1.490 <li>font, <a href="#propdef-font" title=font><strong>3.7</strong></a> 1.491 1.492 + <li>font specific, <a href="#font-specific" title="font 1.493 + specific"><strong>6.8</strong></a> 1.494 + 1.495 <li>font-family 1.496 <ul> 1.497 <li>descriptor, <a href="#descdef-font-family" title="font-family, 1.498 @@ -6444,16 +6484,16 @@ 1.499 title="FONT_FACE_SYM"><strong>4.1</strong></a> 1.500 1.501 <li>font_family_name, <a href="#fontfamilyname" 1.502 - title="font_family_name"><strong>6.9</strong></a> 1.503 + title="font_family_name"><strong>6.9.1</strong></a> 1.504 1.505 <li>font_family_name_list, <a href="#fontfamilynamelist" 1.506 - title="font_family_name_list"><strong>6.9</strong></a> 1.507 + title="font_family_name_list"><strong>6.9.1</strong></a> 1.508 1.509 <li>font_feature_values_rule, <a href="#fontfeaturevaluesrule" 1.510 - title="font_feature_values_rule"><strong>6.9</strong></a> 1.511 + title="font_feature_values_rule"><strong>6.9.1</strong></a> 1.512 1.513 <li>FONT_FEATURE_VALUES_SYM, <a href="#fontfeaturevaluessym" 1.514 - title="FONT_FEATURE_VALUES_SYM"><strong>6.9</strong></a> 1.515 + title="FONT_FEATURE_VALUES_SYM"><strong>6.9.1</strong></a> 1.516 1.517 <li>full-width, <a href="#full-width" 1.518 title=full-width><strong>6.10</strong></a>