[css3-speech] voice-family

http://dev.w3.org/csswg/css3-speech/#voice-props-voice-family

voice-family: [[<name> | [<age>? <gender> <non-negative number>?]],]*
               [<name> | [<age>? <gender> <non-negative number>?]]
               | preserve | inherit

A related question: what does it mean to have multiple generic font families
in the list? When would it ever fall back to the next thing in the list?
If it never falls back, then perhaps the generic voice family should be allowed
only as the last item in a family list.

If not, then to make this easier to read, I'd suggest defining <generic-voice>
up here, and then splitting it out into age/gender/variant later, similar
to how shadows are defined:
   http://www.w3.org/TR/css3-background/#the-box-shadow
That way you aren't repeating this long syntactic definition twice.

   # <age>
   #    Possible values are non-negative numbers restricted to positive
   #    integers (i.e. excluding zero), indicating the preferred age
   #    in years (since birth) of the voice.

I'd recast this as

   | <age>
   |   An <integer> indicating the preferred age in years (since birth)
   |   of the voice. Only positive integers (i.e. excluding zero) are
   |   allowed.

   # <gender>
   #   Values are voice families. Possible values are ‘male’, ‘female’ and
   #   ‘neutral’.

This is... kindof missing a description. And all the values here are about
defining voice families. How about

   | <gender>
   |   One of the keywords 'male', 'female', or 'neutral', specifying a
   |   male, female, or neutral voice, respectively.

?

   # <non-negative number>
   #   Indicates a preferred variant (e.g. "the second male child voice").
   #   Possible values are non-negative numbers restricted to integers,
   #   and excluding zero (i.e. starting from 1). The value "1" refers to
   #   the first of all matching voices.

Use <integer> as above.

   # This property value behaves similarly to ‘inherit’ when applied to the
   # root content element (defaults to the user or user-agent stylesheet).

This is strictly incorrect, since when a value is specified for the root
element it overrides the UA and user style sheets. Probably just saying

   | This value behaves as 'inherit' when applied to the root element.

is sufficient.

~fantasai

Received on Thursday, 30 June 2011 01:43:42 UTC