@@ -13,7 +13,7 @@ Previous Version: http://www.w3.org/TR/2013/WD-css-syntax-3-20130919/
1313Editor : Tab Atkins Jr., Google, http://xanthir.com/contact/
1414Editor : Simon Sapin, Mozilla, http://exyr.org/about/
1515Abstract : This module describes, in general terms, the basic structure and syntax of CSS stylesheets. It defines, in detail, the syntax and parsing of CSS - how to turn a stream of bytes into a meaningful stylesheet.
16- Ignored Terms : <keyframes-name>, <keyframe-rule>, <keyframe-selector>, <translation-value>, <media-query-list>
16+ Ignored Terms : <keyframes-name>, <keyframe-rule>, <keyframe-selector>, <translation-value>, <media-query-list>, <unicode-range-token>
1717Link Defaults : css-text-decor-3 (property) text-decoration, css-color-3 (property) color, css-transforms-1 (function) translatex()
1818</pre>
1919
@@ -431,7 +431,6 @@ Tokenization</h2>
431431 <dfn><number-token></dfn> ,
432432 <dfn><percentage-token></dfn> ,
433433 <dfn><dimension-token></dfn> ,
434- <dfn><unicode-range-token></dfn> ,
435434 <dfn><include-match-token></dfn> ,
436435 <dfn><dash-match-token></dfn> ,
437436 <dfn><prefix-match-token></dfn> ,
@@ -463,13 +462,6 @@ Tokenization</h2>
463462 <<number-token>> , <<percentage-token>> , and <<dimension-token>> have a representation composed of one or more <a>code points</a> , and a numeric value.
464463 <<number-token>> and <<dimension-token>> additionally have a type flag set to either "integer" or "number". The type flag defaults to "integer" if not otherwise set.
465464 <<dimension-token>> additionally have a unit composed of one or more <a>code points</a> .
466-
467- <li>
468- <<unicode-range-token>> has
469- a <dfn id=unicode-range-start title="start of the range">start</dfn>
470- and an <dfn id=unicode-range-end title="end of the range">end</dfn> ,
471- a pair of integers.
472-
473465 </ul>
474466
475467 Note: The type flag of hash tokens is used in the Selectors syntax [[SELECT]] .
@@ -700,34 +692,6 @@ Token Railroad Diagrams</h3>
700692 T: %
701693 </pre>
702694
703- <dt id="unicode-range-token-diagram"> <<unicode-range-token>>
704- <dd>
705- <pre class='railroad'>
706- Choice:
707- T: U
708- T: u
709- T: +
710- Choice:
711- Plus:
712- N: hex digit
713- C: 1-6 times
714- Seq:
715- Star:
716- N: hex digit
717- C: 1-5 times
718- Plus:
719- T: ?
720- C: 1 to (6 - digits) times
721- Seq:
722- Plus:
723- N: hex digit
724- C: 1-6 times
725- T: -
726- Plus:
727- N: hex digit
728- C: 1-6 times
729- </pre>
730-
731695 <dt id="include-match-token-diagram"> <<include-match-token>>
732696 <dd>
733697 <pre class='railroad'>
@@ -3338,43 +3302,39 @@ Serialization</h2>
33383302 <th> number
33393303 <th> percentage
33403304 <th> dimension
3341- <th> unicode range
33423305 <th> CDC
33433306 <th> (
33443307 <th> ?
33453308 <tr>
33463309 <th> ident
3347- <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗ <td>
3310+ <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗ <td>
33483311 <tr>
33493312 <th> at-keyword
3350- <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗ <td> <td>
3313+ <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> <td>
33513314 <tr>
33523315 <th> hash
3353- <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗ <td> <td>
3316+ <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> <td>
33543317 <tr>
33553318 <th> dimension
3356- <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗ <td> <td>
3319+ <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> <td>
33573320 <tr>
33583321 <th> #
3359- <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗ <td> <td> <td>
3322+ <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> <td> <td>
33603323 <tr>
33613324 <th> -
3362- <td> ✗<td> ✗<td> ✗<td> ✗<td> <td> ✗<td> ✗<td> ✗<td> ✗ <td> <td> <td>
3325+ <td> ✗<td> ✗<td> ✗<td> ✗<td> <td> ✗<td> ✗<td> ✗<td> <td> <td>
33633326 <tr>
33643327 <th> number
3365- <td> ✗<td> ✗<td> ✗<td> ✗<td> <td> ✗<td> ✗<td> ✗<td> ✗ <td> <td> <td>
3328+ <td> ✗<td> ✗<td> ✗<td> ✗<td> <td> ✗<td> ✗<td> ✗<td> <td> <td>
33663329 <tr>
33673330 <th> @
3368- <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> <td> <td> <td> ✗<td> <td> <td>
3369- <tr>
3370- <th> unicode range
3371- <td> ✗<td> ✗<td> <td> <td> <td> ✗<td> ✗<td> ✗<td> <td> <td> <td> ✗
3331+ <td> ✗<td> ✗<td> ✗<td> ✗<td> ✗<td> <td> <td> <td> <td> <td>
33723332 <tr>
33733333 <th> .
3374- <td> <td> <td> <td> <td> <td> ✗<td> ✗<td> ✗<td> <td> <td> <td>
3334+ <td> <td> <td> <td> <td> <td> ✗<td> ✗<td> ✗<td> <td> <td>
33753335 <tr>
33763336 <th> +
3377- <td> <td> <td> <td> <td> <td> ✗<td> ✗<td> ✗<td> <td> <td> <td>
3337+ <td> <td> <td> <td> <td> <td> ✗<td> ✗<td> ✗<td> <td> <td>
33783338 </table>
33793339
33803340 <table class='data'>
@@ -3560,8 +3520,15 @@ Changes from CSS 2.1 and Selectors Level 3</h3>
35603520 e.g. two consecutive <<ident-token>> s.
35613521
35623522 <li>
3563- The <<unicode-range-token>> is now more restrictive,
3564- and doesn't include non-sensical patterns that the 2.1 definition allowed.
3523+ The <<unicode-range-token>> was removed,
3524+ as it was low value and occasionally actively harmful.
3525+ (''u+a { font-weight: bold; }'' was an invalid selector, for example...)
3526+
3527+ Instead, a <<urange>> production was added,
3528+ based on token patterns.
3529+ It is technically looser than what 2.1 allowed
3530+ (any number of digits and ? characters),
3531+ but not in any way that should impact its use in practice.
35653532
35663533 <li>
35673534 Apply the <a href="http://www.w3.org/TR/CSS21/syndata.html#unexpected-eof">EOF error handling rule</a> in the tokenizer
0 commit comments