--- Fonts.src.new.html	2013-05-23 12:50:17.848201254 +0800
+++ Fonts.src.merged.html	2013-05-23 13:06:47.608158635 +0800
@@ -1850,7 +1850,7 @@
     </tr>
     <tr>
       <td>Value:</td>
-      <td><var>&lt;urange&gt;</var> #</td>
+      <td><i title="value-def-urange">&lt;urange></i>#</td>
     </tr>
     <tr>
       <td><em>Initial:</em></td>
@@ -1861,46 +1861,45 @@
 
 <p>This descriptor defines the set of Unicode codepoints that may be
 supported by the font face for which it is declared.  The descriptor
-value is a comma-delimited list of Unicode range (<var>&lt;urange&gt;</var>)
-values. The union of these
+value is a comma-delimited list of Unicode range 
+(<i title="value-def-urange">&lt;urange></i>) values. The union of these
 ranges defines the set of codepoints that serves as a hint for user
 agents when deciding whether or not to download a font resource for a
 given text run.</p>
 
-<p>Each <dfn id="urange-value"><var>&lt;urange&gt;</var></dfn> value is a
+<p>Each <dfn title="value-def-urange">&lt;urange></dfn> value is a
 <a href="http://www.w3.org/TR/CSS21/syndata.html#tokenization"><code title="UNICODE-RANGE token">UNICODE-RANGE</code></a>
 token made up of a "U+" or "u+" prefix
-followed by a codepoint range in one of the three forms listed below:</p>
+followed by a codepoint range in one of the three forms listed below.
+Ranges that do not fit one of the these three forms are invalid 
+and cause the declaration to be ignored.</p>
 
-<ul>
-  <li>a single codepoint (e.g. U+416)</li>
-  <li>an interval value range defined by two hyphen-separated codepoints
-      that indicate the inclusive start and end codepoints of a range (e.g. U+400-4ff)</li>
-  <li>a wildcard value range defined by the set of codepoints implied when 
-      trailing '?' characters signify 'any digit value' (e.g. U+4??)</li>
-</ul>
+<dl>
+  <dt>a single codepoint (e.g. U+416)</dt>
+  <dd>represented as one to six hexadecimal digits, 
+    i.e. <code>[Uu]\+[0-9a-fA-F]{1,6}</code>
+  <dt>an interval range (e.g. ''U+400-4ff'')
+  <dd>represented as two hyphen-separated codepoints (see above)
+    indicating the inclusive start and end codepoints of a range 
+    i.e. <code>[Uu]\+[0-9a-fA-F]{1,6}-[0-9a-fA-F]{1,6}</code>
+  <dt>a wildcard value range (e.g. ''U+4??'')
+  <dd>represented as one to six hexadecimal digits 
+    where up to the last five trailing digits are replaced by question marks implying ''0'' for the start of the range and ''F'' for the end of the range
+    i.e. <code>[Uu]\+[0-9a-fA-F]{<var>n</var>}[?]{<var>m</var>}</code>,
+    where 1 ≤ <var>n</var> + <var>m</var> ≤ 6.
+    For example, ''U+4FF'' is equivalent to ''U+400-4FF''.
+</dl>
 
-<p>Individual codepoints are written using hexadecimal values that correspond to
-<a href="http://www.unicode.org/charts/">Unicode character codepoints</a>.
-Valid Unicode codepoint values vary between 0 and 10FFFF inclusive.
-Digit values of codepoints are ASCII case-insensitive.  For interval
-ranges, the start and end codepoints must be valid Unicode values and
-the end codepoint must be greater than or equal to the start
-codepoint.</p>
-
-<p>Wildcard ranges specified with ‘?’ that lack an
-initial digit (e.g. "U+???") are valid and equivalent
-to a wildcard range with an initial zero digit (e.g. "U+0???" = "U+0000-0FFF").
-Wildcard ranges that extend beyond the range of valid
-Unicode codepoints are invalid.  Because of this, the maximum
-number of trailing '?' wildcard characters is four, even though
-the 
-<a href="http://www.w3.org/TR/CSS21/syndata.html#tokenization"><code title="UNICODE-RANGE token">UNICODE-RANGE</code></a>
-token accepts six.</p>
+<p>The start and end codepoints of each range must be valid
+Unicode values between 0 and 10FFFF inclusive,
+and the end codepoint must be greater than or equal 
+to the start codepoint. 
+Ranges that do not conform to these restrictions are invalid 
+and cause the declaration to be ignored.</p>
 
 <p>Within the comma-delimited list of Unicode ranges in a
-'unicode-range' descriptor declaration, ranges may overlap. Whitespace
-before or after commas is ignored.  The union of these ranges defines
+'unicode-range' descriptor declaration, ranges may overlap.
+The union of these ranges defines
 the set of codepoints for which the corresponding font may be used. 
 User agents must not download or use the font for codepoints
 outside this set.  User agents may normalize the list of ranges into a
@@ -4331,7 +4330,11 @@
     <li>Tightened error handling rules for <code>@font-feature-values</code> rules</li>
     <li>Added grammar productions for <code>@font-face</code> and <code>@font-feature-values</code> rules</li>
     <li>Tightened definition of synthetic oblique</li>
-    <li>Revised definition of 'unicode-range' descriptor</li>
+    <li>Revised definition of 'unicode-range' descriptor
+        and made the error handling stricter:
+        syntax that would have previously resulted in an empty range
+        is now invalid and causes the declaration to be ignored.
+    </li>
   </ul>
 
 <h2 class=no-num id=acknowledgments>Acknowledgments</h2>

