Re: [css3-fonts] invalid ranges within unicode-range descriptor

On 05/21/2013 12:48 PM, John Daggett wrote:
>
> fantasai wrote (regarding the @font-face rule unicode-range descriptor):
>
>>     # Without any valid ranges, the descriptor is omitted.
>>
>> I disagree with this. If there aren't any valid ranges,
>> the range should be the null set, not *everything*.
>
> I think there are a couple reasons why this isn't a good idea.  I
> spec'ed the behavior above because it's roughly equivalent to the
> handling of properties with invalid values:
>
>    font-style: italic;
>    font-style: whizzy;  /* invalid value, font-style: italic used */
>
> Ignoring a descriptor when the ranges aren't valid allows future
> syntax to be added in a way that an author can also include descriptor
> declarations for older user agents.

This totally makes sense to me for the invalid ranges that we're
considering parse errors. But there's a bunch of cases that are
parsed, kept, but result in no valid range. Specifically, these
cases:
   - "ranges that descend (e.g. U+400-32f) are invalid and omitted
      rather than treated as parse errors"
   - "Ranges are clipped to the domain of Unicode code points
      (currently 0 – 10FFFF inclusive); a range entirely outside
      the domain is omitted"

If it's a parse error, sure, throw the entire declaration out.
But I find it a problem to have

   unicode-range: U+0065, U+400-32f; /* results in range U+0065   */
   unicode-range: U+400-32f;         /* results in all of Unicode */

Removing a valid <urange> expands the range! I hope you understand
why I think this makes no sense. :)

~fantasai

Received on Tuesday, 21 May 2013 06:07:20 UTC