Wed, 22 May 2013 17:51:04 +0800
[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>[ <family-name> | <generic-family> ]# 1.109 + <td>[ <a href="#family-name-value"><var><family-name></var></a> | 1.110 + <a href="#generic-family-value"><var><generic-family></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><family-name> 1.120 + <dt><dfn id=family-name-value><var><family-name></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><generic-family> 1.126 + <dt><dfn id=generic-family-value><var><generic-family></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><family-name></code>’ type. 1.135 + matching the <a 1.136 + href="#family-name-value"><var><family-name></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><absolute-size> | <relative-size> | <length> | 1.164 - <percentage> 1.165 + <td><a href="#absolute-size-value"><var><absolute-size></var></a> 1.166 + | <a href="#relative-size-value"><var><relative-size></var></a> | 1.167 + <a href="#length-size-value"><var><length></var></a> | <a 1.168 + href="#percentage-size-value"><var><percentage></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="<absolute-size>"> 1.178 - <strong><absolute-size></strong></span></a> 1.179 - 1.180 - <dd> An <a class=value-def 1.181 - name=value-def-absolute-size><absolute-size></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><absolute-size></var></dfn> 1.185 + 1.186 + <dd> An <a 1.187 + href="#absolute-size-value"><var><absolute-size></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="<relative-size>"> 1.194 - <strong><relative-size></strong></span></a> 1.195 - 1.196 - <dd> A <a class=value-def 1.197 - name=value-def-relative-size><relative-size></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><relative-size></var></dfn> 1.202 + 1.203 + <dd> A <a href="#relative-size-value"><var><relative-size></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="<length>"><length></span> 1.217 + <dt><dfn id=length-size-value><var><length></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="<percentage>"><percentage> </span> 1.224 + <dt><dfn id=percentage-size-value><var><percentage></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 | <number> 1.233 + <td>none | auto | <a 1.234 + href="#aspect-ratio-value"><var><number></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="<number>"><number></span> 1.244 + <dt><dfn id=aspect-ratio-value><var><number></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>[ [ <‘<a href="#propdef-font-style"><code 1.262 - class=property>font-style</code></a>’> || <font-variant-css21> || 1.263 - <‘<a href="#propdef-font-weight"><code 1.264 - class=property>font-weight</code></a>’> || <‘<a 1.265 + <td>[ [ <var><‘<a href="#propdef-font-style"><code 1.266 + class=property>font-style</code></a>’></var> || <a 1.267 + href="#font-variant-css21-values"><var><font-variant-css21></var></a> 1.268 + || <var><‘<a href="#propdef-font-weight"><code 1.269 + class=property>font-weight</code></a>’></var> || <var><‘<a 1.270 href="#propdef-font-stretch"><code 1.271 - class=property>font-stretch</code></a>’> ]? <‘<a 1.272 - href="#propdef-font-size"><code class=property>font-size</code></a>’> 1.273 - [ / <‘<code class=property>line-height</code>’> ]? <‘<a 1.274 + class=property>font-stretch</code></a>’</var> ]? <var><‘<a 1.275 + href="#propdef-font-size"><code 1.276 + class=property>font-size</code></a>’></var> [ / <var><‘<code 1.277 + class=property>line-height</code>’></var> ]? <var><‘<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>’></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><font-variant-css21></var></dfn> = [normal | small-caps]</pre> 1.291 + class=prod><dfn id=font-variant-css21-values><var><font-variant-css21></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><family-name> 1.323 + <td><a href="#family-name-value"><var><family-name></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>[ <url> [format(<string>#)]? | <font-face-name> ]# 1.332 + <td>[ <url> [format(<string> #)]? | <a 1.333 + href="#font-face-name-value"><var><font-face-name></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="<font-face-name>"><a 1.343 - name=value-def-font-face-name><font-face-name></a></span> argument 1.344 + locally-installed <dfn 1.345 + id=font-face-name-value><var><font-face-name></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 <font-face-name> is a 1.348 + within a larger family. The syntax for a <a 1.349 + href="#font-face-name-value"><var><font-face-name></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><urange></dfn># 1.358 + <td><a href="#urange-value"><var><urange></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><urange></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><urange></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><urange></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><urange></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="<urange>"><a 1.451 -name="value-def-urange"><urange></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 | [ <common-lig-values> || 1.563 - <discretionary-lig-values> || <historical-lig-values> || 1.564 - <contextual-alt-values> || stylistic(<feature-value-name>) 1.565 - || historical-forms || styleset(<feature-value-name>#) || 1.566 - character-variant(<feature-value-name>#) || 1.567 - swash(<feature-value-name>) || 1.568 - ornaments(<feature-value-name>) || 1.569 - annotation(<feature-value-name>) || [ small-caps | all-small-caps 1.570 - | petite-caps | all-petite-caps | unicase | titling-caps ] || 1.571 - <numeric-figure-values> || <numeric-spacing-values> || 1.572 - <numeric-fraction-values> || ordinal || slashed-zero || 1.573 - <east-asian-variant-values> || <east-asian-width-values> || 1.574 - ruby ] 1.575 + <td>normal | none | [ <a 1.576 + href="#common-lig-values"><var><common-lig-values></var></a> || 1.577 + <a 1.578 + href="#discretionary-lig-values"><var><discretionary-lig-values></var></a> 1.579 + || <a 1.580 + href="#historical-lig-values"><var><historical-lig-values></var></a> 1.581 + || <a 1.582 + href="#contextual-alt-values"><var><contextual-alt-values></var></a> 1.583 + || <a href="#stylistic"><var 1.584 + title=stylistic>stylistic(<feature-value-name>)</var></a> || <a 1.585 + href="#historical-forms"><var>historical-forms</var></a> || <a 1.586 + href="#styleset"><var 1.587 + title=styleset>styleset(<feature-value-name> #)</var></a> || <a 1.588 + href="#character-variant"><var 1.589 + title=character-variant>character-variant(<feature-value-name> 1.590 + #)</var></a> || <a href="#swash"><var 1.591 + title=swash>swash(<feature-value-name>)</var></a> || <a 1.592 + href="#ornaments"><var 1.593 + title=ornaments>ornaments(<feature-value-name>)</var></a> || <a 1.594 + href="#annotation"><var 1.595 + title=annotation>annotation(<feature-value-name>)</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><numeric-figure-values></var></a> 1.603 + || <a 1.604 + href="#numeric-spacing-values"><var><numeric-spacing-values></var></a> 1.605 + || <a 1.606 + href="#numeric-fraction-values"><var><numeric-fraction-values></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><east-asian-variant-values></var></a> 1.610 + || <a 1.611 + href="#east-asian-width-values"><var><east-asian-width-values></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 | <feature-tag-value># 1.621 + <td>normal | <a 1.622 + href="#feature-tag-value"><var><feature-tag-value></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 | [ <common-lig-values> || 1.675 - <discretionary-lig-values> || <historical-lig-values> || 1.676 - <contextual-alt-values> ] 1.677 + <td>normal | none | [ <a 1.678 + href="#common-lig-values"><var><common-lig-values></var></a> || 1.679 + <a 1.680 + href="#discretionary-lig-values"><var><discretionary-lig-values></var></a> 1.681 + || <a 1.682 + href="#historical-lig-values"><var><historical-lig-values></var></a> 1.683 + || <a 1.684 + href="#contextual-alt-values"><var><contextual-alt-values></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><common-lig-values></var></dfn> = [ common-ligatures | no-common-ligatures ]</pre> 1.694 + class=prod><dfn id=common-lig-values><var><common-lig-values></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><discretionary-lig-values></var></dfn> = [ discretionary-ligatures | no-discretionary-ligatures ]</pre> 1.698 + class=prod><dfn id=discretionary-lig-values><var><discretionary-lig-values></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><historical-lig-values></var></dfn> = [ historical-ligatures | no-historical-ligatures ]</pre> 1.702 + class=prod><dfn id=historical-lig-values><var><historical-lig-values></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><contextual-alt-values></var></dfn> = [ contextual | no-contextual ]</pre> 1.706 + class=prod><dfn id=contextual-alt-values><var><contextual-alt-values></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 | [ <numeric-figure-values> || 1.715 - <numeric-spacing-values> || <numeric-fraction-values> || 1.716 - ordinal || slashed-zero ] 1.717 + <td>normal | [ <a 1.718 + href="#numeric-figure-values"><var><numeric-figure-values></var></a> 1.719 + || <a 1.720 + href="#numeric-spacing-values"><var><numeric-spacing-values></var></a> 1.721 + || <a 1.722 + href="#numeric-fraction-values"><var><numeric-fraction-values></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><numeric-figure-values></var></dfn> = [ lining-nums | oldstyle-nums ]</pre> 1.733 + class=prod><dfn id=numeric-figure-values><var><numeric-figure-values></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><numeric-spacing-values></var></dfn> = [ proportional-nums | tabular-nums ]</pre> 1.737 + class=prod><dfn id=numeric-spacing-values><var><numeric-spacing-values></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><numeric-fraction-values></var></dfn> = [ diagonal-fractions | stacked-fractions ]</pre> 1.741 + class=prod><dfn id=numeric-fraction-values><var><numeric-fraction-values></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(<feature-value-name>) || historical-forms 1.750 - || styleset(<feature-value-name>#) || 1.751 - character-variant(<feature-value-name>#) || 1.752 - swash(<feature-value-name>) || 1.753 - ornaments(<feature-value-name>) || 1.754 - annotation(<feature-value-name>) ] 1.755 + <td>normal | [ <a href="#stylistic" 1.756 + title=stylistic>stylistic(<feature-value-name>)</a> || <a 1.757 + href="#historical-forms">historical-forms</a> || <a href="#styleset" 1.758 + title=styleset>styleset(<feature-value-name> #)</a> || <a 1.759 + href="#character-variant" 1.760 + title=character-variant>character-variant(<feature-value-name> 1.761 + #)</a> || <a href="#swash" 1.762 + title=swash>swash(<feature-value-name>)</a> || <a 1.763 + href="#ornaments" 1.764 + title=ornaments>ornaments(<feature-value-name>)</a> || <a 1.765 + href="#annotation" 1.766 + title=annotation>annotation(<feature-value-name>)</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(<feature-value-name>)</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(<feature-value-name>#)</dfn> 1.785 + <dt><dfn id=styleset title=styleset>styleset(<feature-value-name> 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<feature-index></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(<feature-value-name>#)</dfn> 1.796 - 1.797 + <dt><dfn id=character-variant 1.798 + title=character-variant>character-variant(<feature-value-name> 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<feature-index></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(<feature-value-name>)</dfn> 1.808 + <dt><dfn id=swash title=swash>swash(<feature-value-name>)</dfn> 1.809 1.810 <dd>Enables display of swash glyphs (<em>font specific</em>, OpenType 1.811 feature: <span class=tag>swsh <feature-index>, 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(<feature-value-name>)</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(<feature-value-name>)</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 | [ <east-asian-variant-values> || 1.940 - <east-asian-width-values> || ruby ] 1.941 + <td>normal | [ <a 1.942 + href="#east-asian-variant-values"><var><east-asian-variant-values></var></a> 1.943 + || <a 1.944 + href="#east-asian-width-values"><var><east-asian-width-values></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><east-asian-variant-values></var></dfn> = [ jis78 | jis83 | jis90 | jis04 | simplified | traditional ]</pre> 1.954 + class=prod><dfn id=east-asian-variant-values><var><east-asian-variant-values></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><east-asian-width-values></var></dfn> = [ full-width | proportional-width ]</pre> 1.958 + class=prod><dfn id=east-asian-width-values><var><east-asian-width-values></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 | [ <common-lig-values> || 1.967 - <discretionary-lig-values> || <historical-lig-values> || 1.968 - <contextual-alt-values> || stylistic(<feature-value-name>) 1.969 - || historical-forms || styleset(<feature-value-name>#) || 1.970 - character-variant(<feature-value-name>#) || 1.971 - swash(<feature-value-name>) || 1.972 - ornaments(<feature-value-name>) || 1.973 - annotation(<feature-value-name>) || [ small-caps | all-small-caps 1.974 - | petite-caps | all-petite-caps | unicase | titling-caps ] || 1.975 - <numeric-figure-values> || <numeric-spacing-values> || 1.976 - <numeric-fraction-values> || ordinal || slashed-zero || 1.977 - <east-asian-variant-values> || <east-asian-width-values> || 1.978 - ruby ] 1.979 + <td>normal | none | [ <a 1.980 + href="#common-lig-values"><var><common-lig-values></var></a> || 1.981 + <a 1.982 + href="#discretionary-lig-values"><var><discretionary-lig-values></var></a> 1.983 + || <a 1.984 + href="#historical-lig-values"><var><historical-lig-values></var></a> 1.985 + || <a 1.986 + href="#contextual-alt-values"><var><contextual-alt-values></var></a> 1.987 + || <a href="#stylistic"><var 1.988 + title=stylistic>stylistic(<feature-value-name>)</var></a> || <a 1.989 + href="#historical-forms"><var>historical-forms</var></a> || <a 1.990 + href="#styleset"><var 1.991 + title=styleset>styleset(<feature-value-name> #)</var></a> || <a 1.992 + href="#character-variant"><var 1.993 + title=character-variant>character-variant(<feature-value-name> 1.994 + #)</var></a> || <a href="#swash"><var 1.995 + title=swash>swash(<feature-value-name>)</var></a> || <a 1.996 + href="#ornaments"><var 1.997 + title=ornaments>ornaments(<feature-value-name>)</var></a> || <a 1.998 + href="#annotation"><var 1.999 + title=annotation>annotation(<feature-value-name>)</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><numeric-figure-values></var></a> 1.1007 + || <a 1.1008 + href="#numeric-spacing-values"><var><numeric-spacing-values></var></a> 1.1009 + || <a 1.1010 + href="#numeric-fraction-values"><var><numeric-fraction-values></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><east-asian-variant-values></var></a> 1.1014 + || <a 1.1015 + href="#east-asian-width-values"><var><east-asian-width-values></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 | <feature-tag-value># 1.1025 + <td>normal | <a 1.1026 + href="#feature-tag-value"><var><feature-tag-value></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><feature-tag-value></var></dfn> = <string> [ <integer> | on | off ]?</pre> 1.1035 + class=prod><dfn id=feature-tag-value><var><feature-tag-value></var></dfn> = <string> [ <integer> | on | off ]?</pre> 1.1036 1.1037 <p>The <string> 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><absolute-size>, <a href="#ltabsolute-sizegt" 1.1054 + <li><var><absolute-size></var>, <a href="#absolute-size-value" 1.1055 title="<absolute-size>"><strong>3.5</strong></a> 1.1056 1.1057 - <li><var><common-lig-values></var>, <a href="#ltcommon-lig-values" 1.1058 - title="<common-lig-values>"><strong>6.4</strong></a> 1.1059 + <li><var><common-lig-values></var>, <a href="#common-lig-values" 1.1060 + title="<common-lig-values>"><strong>6.4</strong></a> 1.1061 1.1062 <li><var><contextual-alt-values></var>, <a 1.1063 - href="#ltcontextual-alt-valuesgt" 1.1064 + href="#contextual-alt-values" 1.1065 title="<contextual-alt-values>"><strong>6.4</strong></a> 1.1066 1.1067 - <li><var><discretionary-lig-values></var>, <a 1.1068 - href="#ltdiscretionary-lig-values" 1.1069 - title="<discretionary-lig-values>"><strong>6.4</strong></a> 1.1070 + <li><var><discretionary-lig-values></var>, <a 1.1071 + href="#discretionary-lig-values" 1.1072 + title="<discretionary-lig-values>"><strong>6.4</strong></a> 1.1073 1.1074 <li><var><east-asian-variant-values></var>, <a 1.1075 - href="#lteast-asian-variant-valuesgt" 1.1076 + href="#east-asian-variant-values" 1.1077 title="<east-asian-variant-values>"><strong>6.10</strong></a> 1.1078 1.1079 <li><var><east-asian-width-values></var>, <a 1.1080 - href="#lteast-asian-width-valuesgt" 1.1081 + href="#east-asian-width-values" 1.1082 title="<east-asian-width-values>"><strong>6.10</strong></a> 1.1083 1.1084 - <li><var><feature-tag-value></var>, <a href="#ltfeature-tag-valuegt" 1.1085 + <li><var><family-name></var>, <a href="#family-name-value" 1.1086 + title="<family-name>"><strong>3.1</strong></a> 1.1087 + 1.1088 + <li><var><feature-tag-value></var>, <a href="#feature-tag-value" 1.1089 title="<feature-tag-value>"><strong>6.12</strong></a> 1.1090 1.1091 - <li><font-face-name>, <a href="#ltfont-face-namegt" 1.1092 + <li><var><font-face-name></var>, <a href="#font-face-name-value" 1.1093 title="<font-face-name>"><strong>4.3</strong></a> 1.1094 1.1095 <li><var><font-variant-css21></var>, <a 1.1096 - href="#ltfont-variant-css21gt" 1.1097 + href="#font-variant-css21-values" 1.1098 title="<font-variant-css21>"><strong>3.7</strong></a> 1.1099 1.1100 - <li><var><historical-lig-values></var>, <a 1.1101 - href="#lthistorical-lig-values" 1.1102 - title="<historical-lig-values>"><strong>6.4</strong></a> 1.1103 - 1.1104 - <li><length>, <a href="#ltlengthgt" title="<length>">3.5</a> 1.1105 - 1.1106 - <li><number>, <a href="#ltnumbergt" title="<number>">3.6</a> 1.1107 + <li><var><generic-family></var>, <a href="#generic-family-value" 1.1108 + title="<generic-family>"><strong>3.1</strong></a> 1.1109 + 1.1110 + <li><var><historical-lig-values></var>, <a 1.1111 + href="#historical-lig-values" 1.1112 + title="<historical-lig-values>"><strong>6.4</strong></a> 1.1113 + 1.1114 + <li><var><length></var>, <a href="#length-size-value" 1.1115 + title="<length>"><strong>3.5</strong></a> 1.1116 + 1.1117 + <li><var><number></var>, <a href="#aspect-ratio-value" 1.1118 + title="<number>"><strong>3.6</strong></a> 1.1119 1.1120 <li><var><numeric-figure-values></var>, <a 1.1121 - href="#ltnumeric-figure-valuesgt" 1.1122 + href="#numeric-figure-values" 1.1123 title="<numeric-figure-values>"><strong>6.7</strong></a> 1.1124 1.1125 <li><var><numeric-fraction-values></var>, <a 1.1126 - href="#ltnumeric-fraction-valuesgt" 1.1127 + href="#numeric-fraction-values" 1.1128 title="<numeric-fraction-values>"><strong>6.7</strong></a> 1.1129 1.1130 <li><var><numeric-spacing-values></var>, <a 1.1131 - href="#ltnumeric-spacing-valuesgt" 1.1132 + href="#numeric-spacing-values" 1.1133 title="<numeric-spacing-values>"><strong>6.7</strong></a> 1.1134 1.1135 - <li><percentage>, <a href="#ltpercentagegt-" 1.1136 - title="<percentage>">3.5</a> 1.1137 - 1.1138 - <li><relative-size>, <a href="#ltrelative-sizegt" 1.1139 + <li><var><percentage></var>, <a href="#percentage-size-value" 1.1140 + title="<percentage>"><strong>3.5</strong></a> 1.1141 + 1.1142 + <li><var><relative-size></var>, <a href="#relative-size-value" 1.1143 title="<relative-size>"><strong>3.5</strong></a> 1.1144 1.1145 - <li><urange>, <a href="#lturange" 1.1146 - title="<urange>"><strong>4.5</strong></a> 1.1147 + <li><var><urange></var>, <a href="#urange-value" 1.1148 + title="<urange>"><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>[ [ <‘font-style’> || <font-variant-css21> || 1.1251 - <‘font-weight’> || <‘font-stretch’> ]? 1.1252 - <‘font-size’> [ / <‘line-height’> ]? 1.1253 - <‘font-family’> ] | caption | icon | menu | message-box | 1.1254 + <td>[ [ <‘font-style’> || <font-variant-css21> || 1.1255 + <‘font-weight’> || <‘font-stretch’ ]? 1.1256 + <‘font-size’> [ / <‘line-height’> ]? 1.1257 + <‘font-family’> ] | 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>[ <family-name> | <generic-family> ]# 1.1266 + <td>[ <family-name> | <generic-family> ] # 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 | <feature-tag-value># 1.1275 + <td>normal | <feature-tag-value> # 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><absolute-size> | <relative-size> | <length> | 1.1284 - <percentage> 1.1285 + <td><absolute-size> | <relative-size> | <length> | 1.1286 + <percentage> 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 | <number> 1.1295 + <td>none | auto | <number> 1.1296 1.1297 <td>none 1.1298 1.1299 @@ -6377,8 +6451,8 @@ 1.1300 <td>normal | none | [ <common-lig-values> || 1.1301 <discretionary-lig-values> || <historical-lig-values> || 1.1302 <contextual-alt-values> || stylistic(<feature-value-name>) 1.1303 - || historical-forms || styleset(<feature-value-name>#) || 1.1304 - character-variant(<feature-value-name>#) || 1.1305 + || historical-forms || styleset(<feature-value-name> #) || 1.1306 + character-variant(<feature-value-name> #) || 1.1307 swash(<feature-value-name>) || 1.1308 ornaments(<feature-value-name>) || 1.1309 annotation(<feature-value-name>) || [ 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(<feature-value-name>) || historical-forms 1.1314 - || styleset(<feature-value-name>#) || 1.1315 - character-variant(<feature-value-name>#) || 1.1316 + || styleset(<feature-value-name> #) || 1.1317 + character-variant(<feature-value-name> #) || 1.1318 swash(<feature-value-name>) || 1.1319 ornaments(<feature-value-name>) || 1.1320 annotation(<feature-value-name>) ] 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 | [ <common-lig-values> || 1.1326 - <discretionary-lig-values> || <historical-lig-values> || 1.1327 - <contextual-alt-values> ] 1.1328 + <td>normal | none | [ <common-lig-values> || 1.1329 + <discretionary-lig-values> || <historical-lig-values> || 1.1330 + <contextual-alt-values> ] 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><family-name> 1.1339 + <td><family-name> 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 | <feature-tag-value># 1.1348 + <td>normal | <feature-tag-value> # 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 | [ <common-lig-values> || 1.1357 + <td>normal | none | [ <common-lig-values> || 1.1358 <discretionary-lig-values> || <historical-lig-values> || 1.1359 <contextual-alt-values> || stylistic(<feature-value-name>) 1.1360 - || historical-forms || styleset(<feature-value-name>#) || 1.1361 - character-variant(<feature-value-name>#) || 1.1362 + || historical-forms || styleset(<feature-value-name> #) || 1.1363 + character-variant(<feature-value-name> #) || 1.1364 swash(<feature-value-name>) || 1.1365 ornaments(<feature-value-name>) || 1.1366 annotation(<feature-value-name>) || [ 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>[ <url> [format(<string>#)]? | <font-face-name> ]# 1.1372 + <td>[ <url> [format(<string> #)]? | <font-face-name> ] # 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><urange># 1.1380 + <td><urange> # 1.1381 1.1382 <td>U+0-10FFFF 1.1383 </table>