csswg/css3-speech Overview.html,1.49,1.50 Overview.src.html,1.50,1.51

Update of /sources/public/csswg/css3-speech
In directory hutz:/tmp/cvs-serv8299

Modified Files:
	Overview.html Overview.src.html 
Log Message:
fixed 'voice-family'



Index: Overview.html
===================================================================
RCS file: /sources/public/csswg/css3-speech/Overview.html,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- Overview.html	11 May 2011 08:17:09 -0000	1.49
+++ Overview.html	11 May 2011 10:20:03 -0000	1.50
@@ -1,4 +1,5 @@
-<!-- !DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+"http://www.w3.org/TR/html4/strict.dtd">
 
 <html lang=en>
  <head>
@@ -7,6 +8,11 @@
   <link href="../default.css" rel=stylesheet type="text/css">
 
   <style type="text/css">
+      p + p
[...981 lines suppressed...]
@@ -3784,13 +3891,12 @@
    <!---->
   </dl>
   <!--end-normative-->
-
-  <dl class=bibliography>
-   <dt id=IPA>[IPA]
-
-   <dd> <a href="http://www.langsci.ucl.ac.uk/ipa/">International Phonetic
-    Association</a>
-  </dl>
+  <!-- dl class="bibliography">
+      <dt id="IPA">[IPA]</dt>
+      <dd>
+        <a href="http://www.langsci.ucl.ac.uk/ipa/">International Phonetic Association</a>
+      </dd>
+    </dl -->
 
   <h3 class=no-num id=other-references>Other references</h3>
   <!--begin-informative-->

Index: Overview.src.html
===================================================================
RCS file: /sources/public/csswg/css3-speech/Overview.src.html,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -d -r1.50 -r1.51
--- Overview.src.html	11 May 2011 08:17:09 -0000	1.50
+++ Overview.src.html	11 May 2011 10:20:03 -0000	1.51
@@ -1,10 +1,15 @@
-<!-- !DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html lang="en">
   <head>
     <title>CSS Speech Module</title>
     <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
     <link href="../default.css" rel="stylesheet" type="text/css" />
     <style type="text/css">
+      p + p
+      {
+        text-indent : 0;
+      }
+      
       *:target
       {
         border : 1px dashed #66CC66;
@@ -272,8 +277,8 @@
           <td>
             <em>Value:</em>
           </td>
-          <td>silent | [[x-soft | soft | medium | loud | x-loud] &amp;&amp; linear] |
-            [&lt;non-negative number&gt; &amp;&amp; linear] | &lt;percentage&gt; | inherit</td>
+          <td>silent | [[ x-soft | soft | medium | loud | x-loud ] &amp;&amp; linear ] | [
+            &lt;non-negative number&gt; &amp;&amp; linear ] | &lt;percentage&gt; | inherit</td>
         </tr>
         <tr>
           <td>
@@ -323,34 +328,48 @@
       <dt>
         <strong>silent</strong>
       </dt>
-      <dd> Specifies that the volume level results in no sound output at all. </dd>
+      <dd>
+        <p> Specifies that the volume level results in no sound output at all. </p>
+        <p class="note"> Note that there is a difference between an element whose 'voice-volume'
+          property has a value of 'silent', and an element whose 'speak' property has the value
+          'none'. The former takes up the same time as if it had been spoken, including any pause
+          before and after the element, but no sound is generated (descendants can override the
+          'voice-volume' value and may therefore generate audio output). Conversely, the latter
+          requires no time and is not rendered in the aural dimension (descendants can override the
+          'speak' value and may therefore generate audio output). </p>
+      </dd>
       <dt>
         <strong>linear</strong>
       </dt>
-      <dd> When present, this keyword indicates that the associated value represents a point on a
-        linear volume amplitude scale, from '0' (silent) to '100' (full volume). Otherwise, the
-        scale corresponds to monotonically non-decreasing volume levels from '0' (minimum audible)
-        to '100' (maximum tolerable), with arbitrary intermediary values that depend on the user
-        environment (see the definition of &lt;non-negative number&gt; below). </dd>
+      <dd>
+        <p> When present, this keyword indicates that the associated value represents a point on a
+          linear volume amplitude scale, from '0' (silent) to '100' (full volume). Otherwise, the
+          scale corresponds to monotonically non-decreasing volume levels from '0' (minimum audible)
+          to '100' (maximum tolerable), with arbitrary intermediary values that depend on the user
+          environment (see the definition of &lt;non-negative number&gt; below).</p>
+      </dd>
       <dt><strong>x-soft</strong>, <strong>soft</strong>, <strong>medium</strong>,
           <strong>loud</strong>, and <strong>x-loud</strong></dt>
-      <dd> This sequence of values corresponds to monotonically non-decreasing volume levels. The
-        value 'x-soft' maps to 0, 'soft' maps to 25, 'medium' maps to 50, 'loud' maps to 75 and
-        'x-loud' maps to 100. The interpretation of the corresponding numerical values depends on
-        whether the 'linear' keyword is used (see the definition of &lt;non-negative number&gt;
-        below).</dd>
+      <dd>
+        <p> This sequence of values corresponds to monotonically non-decreasing volume levels. The
+          value 'x-soft' maps to 0, 'soft' maps to 25, 'medium' maps to 50, 'loud' maps to 75 and
+          'x-loud' maps to 100. The interpretation of the corresponding numerical values depends on
+          whether the 'linear' keyword is used (see the definition of &lt;non-negative number&gt;
+          below).</p>
+      </dd>
       <dt>
         <strong>&lt;non-negative number&gt;</strong>
       </dt>
-      <dd>An integer or floating point <a href="#non-negative-number-def">positive number</a> in the
-        range '0' to '100'. The interpretation of the '0' to '100' scale depends on whether the
-        'linear' keyword is used. <p> When the 'linear' keyword not used, '0' represents the
-            <em>minimum audible</em> level, '100' corresponds to the <em>maximum tolerable</em>
-          level, and '50' corresponds to the user's <em>preferred</em> volume level. All 3 values
-          are configured by the user, or at least predefined by the user-agent. The numerical values
-          on this scale are mapped to concrete volume levels that depend on the user context, so
-          this allows authors to write a single style sheet that works in a variety of listening
-          environments. </p>
+      <dd>
+        <p>An integer or floating point <a href="#non-negative-number-def">positive number</a> in
+          the range '0' to '100'. The interpretation of the '0' to '100' scale depends on whether
+          the 'linear' keyword is used.</p>
+        <p> When the 'linear' keyword not used, '0' represents the <em>minimum audible</em> level,
+          '100' corresponds to the <em>maximum tolerable</em> level, and '50' corresponds to the
+          user's <em>preferred</em> volume level. All 3 values are configured by the user, or at
+          least predefined by the user-agent. The numerical values on this scale are mapped to
+          concrete volume levels that depend on the user context, so this allows authors to write a
+          single style sheet that works in a variety of listening environments. </p>
         <p> When the 'linear' keyword is specified, '0' maps to 'silent' and '100' maps to the
           maximum possible audio volume output (which depends on the user agent implementation,
           device capabilities, etc.). The values in between '0' and '100' are placed on a linear
@@ -363,21 +382,15 @@
       <dt>
         <strong>&lt;percentage&gt;</strong>
       </dt>
-      <dd> Only positive <a href="#percentage-def">percentage</a> values are allowed. Computed
-        values are calculated relative to the inherited value, and are then clipped to the range '0'
-        to '100'. <p class="note"> Note that a leading "+" sign does not denote an increment. For
-          example, +50% is equivalent to 50%, so the computed value equals the inherited value times
-          0.5 (divided by 2), then clipped to [0,100]. </p>
+      <dd>
+        <p> Only positive <a href="#percentage-def">percentage</a> values are allowed. Computed
+          values are calculated relative to the inherited value, and are then clipped to the range
+          '0' to '100'. The 'linear' keyword is preserved from the inherited value.</p>
+        <p class="note"> Note that a leading "+" sign does not denote an increment. For example,
+          +50% is equivalent to 50%, so the computed value equals the inherited value times 0.5
+          (divided by 2), then clipped to [0,100]. </p>
       </dd>
     </dl>
-    <p class="note"> Note that there is a difference between an element whose 'voice-volume'
-      property has a value of 'silent', and an element whose 'speak' property has the value 'none'.
-      The former takes up the same time as if it had been spoken, including any pause before and
-      after the element, but no sound is generated (descendants can override the 'voice-volume'
-      value and may therefore generate audio output). Conversely, the latter requires no time and is
-      not rendered in the aural dimension (descendants can override the 'speak' value and may
-      therefore generate audio output). </p>
-    <p>&nbsp;</p>
     <p class="note"> Unless 'linear' is used, the actual volume levels resulting from the use of the
       numerical or keyword values depend on various factors, such as the listening environment and
       personal user preferences. The effective volume variation between '0' and '100' determines the
@@ -386,18 +399,6 @@
       for the full range of volume levels (the gap between '0' and '100' is wider). Conversely,
       there may be situations whereby both '0' and '100' are set to low volume levels (for example
       when listening discretely at night). </p>
-    <!-- p>
-      'voice-volume' does not apply to <a href
-      ="#cue-props">audio cues</a> for which there is a separate means
-      to set loudness (absolute, or relative to 'voice-volume').
-      <span class="issue" id="issue-voice-cues-volume">
-      ISSUE: shouldn't audio cues be subjected to the voice-volume,
-      so that an inaudible element gets its entire content (within the aural "box" model) muted as well ?
-      The rationale is that voice-volume:silent is largely equivalent to visibility:hidden,
-      which affects border, padding and spacing (i.e. the entire content with regards to the CSS "visual" box model).
-      The audio cues should therefore only be allowed to set their volume levels <em>relatively</em> to the inherited voice-volume, not with absolute values as these may incorrectly enable audio output when the voice-volume itself is muted.
-      </span>
-      </p -->
     <h3 id="mixing-props-voice-balance">The 'voice-balance' property</h3>
     <table class="propdef" summary="name: syntax">
       <tbody>
@@ -459,34 +460,46 @@
       <dt>
         <strong>&lt;number&gt;</strong>
       </dt>
-      <dd>An integer or floating point <a href="#number-def">number</a> between '-100' and '100'.
-        For '-100' only the left channel is audible. Simarly for '100' only the right channel is
-        audible. For '0' both channels have the same level, so that the speech appears to be coming
-        from the center.</dd>
+      <dd>
+        <p>An integer or floating point <a href="#number-def">number</a> between '-100' and '100'.
+          For '-100' only the left channel is audible. Simarly for '100' only the right channel is
+          audible. For '0' both channels have the same level, so that the speech appears to be
+          coming from the center.</p>
+      </dd>
       <dt>
         <strong>left</strong>
       </dt>
-      <dd>Same as '-100'.</dd>
+      <dd>
+        <p>Same as '-100'.</p>
+      </dd>
       <dt>
         <strong>center</strong>
       </dt>
-      <dd>Same as '0'.</dd>
+      <dd>
+        <p>Same as '0'.</p>
+      </dd>
       <dt>
         <strong>right</strong>
       </dt>
-      <dd>Same as '100'.</dd>
+      <dd>
+        <p>Same as '100'.</p>
+      </dd>
       <dt>
         <strong>leftwards</strong>
       </dt>
-      <dd>Moves the sound to the left, relative to the inherited 'voice-balance'. More precisely,
-        subtract 20 from the inherited value and clip the resulting value to the range '-100' and
-        '100'.</dd>
+      <dd>
+        <p>Moves the sound to the left, relative to the inherited 'voice-balance'. More precisely,
+          subtract 20 from the inherited value and clip the resulting value to the range '-100' and
+          '100'.</p>
+      </dd>
       <dt>
         <strong>rightwards</strong>
       </dt>
-      <dd>Moves the sound to the right, relative to the inherited 'voice-balance'. More precisely,
-        add 20 to the inherited value and clip the resulting value to the range '-100' and
-        '100'.</dd>
+      <dd>
+        <p>Moves the sound to the right, relative to the inherited 'voice-balance'. More precisely,
+          add 20 to the inherited value and clip the resulting value to the range '-100' and
+          '100'.</p>
+      </dd>
     </dl>
     <p class="note"> Note that many speech synthesizers only generate mono sound, and therefore do
       not intrinsically support the 'voice-balance' property. The distribution of audio signals
@@ -558,31 +571,36 @@
       <dt>
         <strong>auto</strong>
       </dt>
-      <dd> Resolves to a computed value of 'none' when 'display' is 'none', otherwise resolves to a
-        computed value of 'auto' which yields a used value of 'normal'. <p class="note"> Note that
-          'display' is the only property defined externally to this CSS3 module that affects
-          behavior within the aural "box" model. Also note that the 'none' value of the 'display'
-          property cannot be overridden by descendants of the selected element, but the 'auto' value
-          of 'speak' can however be overridden using either of 'none' or 'normal'. </p>
+      <dd>
+        <p>Resolves to a computed value of 'none' when 'display' is 'none', otherwise resolves to a
+          computed value of 'auto' which yields a used value of 'normal'. </p>
+        <p class="note"> Note that 'display' is the only property defined externally to this CSS3
+          module that affects behavior within the aural "box" model. Also note that the 'none' value
+          of the 'display' property cannot be overridden by descendants of the selected element, but
+          the 'auto' value of 'speak' can however be overridden using either of 'none' or 'normal'.
+        </p>
       </dd>
       <dt>
         <strong>none</strong>
       </dt>
-      <dd> This value causes an element (including pauses, cues, rests and actual content) to not be
-        rendered (i.e., the element has no effect in the aural dimension). <p class="note"> Note
-          that any of the descendants of the affected element are allowed to override this value, so
-          descendants can actually take part in the aural rendering despite using 'none' at this
-          level. However, the pauses, cues, and rests of the ancestor element remain "deactivated"
-          in the aural dimension, and therefore do not contribute to the <a href="#collapsing"
-            >collapsing of pauses</a> or additive behavior of adjoining rests. </p>
+      <dd>
+        <p> This value causes an element (including pauses, cues, rests and actual content) to not
+          be rendered (i.e., the element has no effect in the aural dimension).</p>
+        <p class="note"> Note that any of the descendants of the affected element are allowed to
+          override this value, so descendants can actually take part in the aural rendering despite
+          using 'none' at this level. However, the pauses, cues, and rests of the ancestor element
+          remain "deactivated" in the aural dimension, and therefore do not contribute to the <a
+            href="#collapsing">collapsing of pauses</a> or additive behavior of adjoining rests.
+        </p>
       </dd>
       <dt>
         <strong>normal</strong>
       </dt>
-      <dd> The element is rendered aurally (regardless of its 'display' value and the 'display' and
-        'speak' values of its ancestors). <p class="note"> Note that using this value can result in
-          the element being rendered in the aural dimension even though it would not be rendered on
-          the visual canvas. </p>
+      <dd>
+        <p> The element is rendered aurally (regardless of its 'display' value and the 'display' and
+          'speak' values of its ancestors).</p>
+        <p class="note"> Note that using this value can result in the element being rendered in the
+          aural dimension even though it would not be rendered on the visual canvas. </p>
       </dd>
     </dl>
     <h3 id="speaking-props-speak-as">The 'speak-as' property</h3>
@@ -650,36 +668,46 @@
       <dt>
         <strong>normal</strong>
       </dt>
-      <dd>Uses language-dependent pronunciation rules for rendering an element and its children.
-        Punctuation is not to be spoken, but instead rendered naturally as various pauses.</dd>
+      <dd>
+        <p>Uses language-dependent pronunciation rules for rendering an element and its children.
+          Punctuation is not to be spoken, but instead rendered naturally as various pauses.</p>
+      </dd>
       <dt>
         <strong>spell-out</strong>
       </dt>
-      <dd>Spells the text one letter at a time (useful for acronyms and abbreviations). In languages
-        where accented characters are rare, it is permitted to drop accents in favor of alternative
-        unaccented spellings. As as example, in English, the word "r&ocirc;le" can also be written
-        as "role". A conforming implementation would thus be able to spell-out "r&ocirc;le" as "R O
-        L E".</dd>
+      <dd>
+        <p>Spells the text one letter at a time (useful for acronyms and abbreviations). In
+          languages where accented characters are rare, it is permitted to drop accents in favor of
+          alternative unaccented spellings. As as example, in English, the word "r&ocirc;le" can
+          also be written as "role". A conforming implementation would thus be able to spell-out
+          "r&ocirc;le" as "R O L E".</p>
+      </dd>
       <dt>
         <strong>digits</strong>
       </dt>
-      <dd>Speak numbers one digit at a time, for instance, "twelve" would be spoken as "one two",
-        and "31" as "three one".</dd>
+      <dd>
+        <p>Speak numbers one digit at a time, for instance, "twelve" would be spoken as "one two",
+          and "31" as "three one".</p>
+        <p class="note">Speech synthesizers are knowledgeable about what is and what is not a
+          number. The 'speak-as' property enables authors to control how the user-agent renders
+          numbers, and may be implemented as a preprocessing step before passing the text to the
+          actual speech synthesizer.</p>
+      </dd>
       <dt>
         <strong>literal-punctuation</strong>
       </dt>
-      <dd>Similar to 'normal' value, but punctuation such as semicolons, braces, and so on are to be
-        spoken literally.</dd>
+      <dd>
+        <p>Similar to 'normal' value, but punctuation such as semicolons, braces, and so on are to
+          be spoken literally.</p>
+      </dd>
       <dt>
         <strong>no-punctuation</strong>
       </dt>
-      <dd>Similar to 'normal' value but punctuation is not to be spoken nor rendered as various
-        pauses.</dd>
+      <dd>
+        <p>Similar to 'normal' value but punctuation is not to be spoken nor rendered as various
+          pauses.</p>
+      </dd>
     </dl>
-    <p>Speech synthesizers are knowledgeable about what is and what is not a number. The 'speak-as'
-      property gives authors the means to control how the synthesizer renders the numbers it
-      discovers in the source text, and may be implemented as a preprocessing step before passing
-      the text to the speech synthesizer.</p>
     <h2 id="pause-props">Pause properties </h2>
     <h3 id="pause-props-pause-before-after">The 'pause-before' and 'pause-after' properties</h3>
     <table class="propdef" summary="name: syntax">
@@ -798,21 +826,27 @@
       <dt>
         <strong>&lt;time&gt;</strong>
       </dt>
-      <dd>Expresses the pause in absolute time units (seconds and milliseconds, e.g. "+3s", "250ms")
-        as per the syntax of <a href="#time-def">time</a> values defined in [[!CSS3VAL]]. Only
-        positive values are allowed.</dd>
+      <dd>
+        <p>Expresses the pause in absolute time units (seconds and milliseconds, e.g. "+3s",
+          "250ms") as per the syntax of <a href="#time-def">time</a> values defined in [[!CSS3VAL]].
+          Only positive values are allowed.</p>
+      </dd>
       <dt>
         <strong>none</strong>
       </dt>
-      <dd> Equivalent to 0ms (no prosodic break in the speech output). This value can be used to
-        inhibit a prosodic break which the processor would otherwise produce. </dd>
+      <dd>
+        <p> Equivalent to 0ms (no prosodic break in the speech output). This value can be used to
+          inhibit a prosodic break which the processor would otherwise produce. </p>
+      </dd>
       <dt>
         <strong>x-weak</strong>, <strong>weak</strong>, <strong>medium</strong>,
           <strong>strong</strong>, and <strong>x-strong</strong>
       </dt>
-      <dd> Expresses the pause by the strength of the prosodic break in speech output. The exact
-        time is implementation-dependent. The values indicate monotonically non-decreasing
-        (conceptually increasing) break strength between elements. </dd>
+      <dd>
+        <p> Expresses the pause by the strength of the prosodic break in speech output. The exact
+          time is implementation-dependent. The values indicate monotonically non-decreasing
+          (conceptually increasing) break strength between elements. </p>
+      </dd>
     </dl>
     <p class="note"> Note that stronger content boundaries are typically accompanied by pauses. For
       example, the breaks between paragraphs are typically much more substantial than the breaks
@@ -1028,21 +1062,27 @@
       <dt>
         <strong>&lt;time&gt;</strong>
       </dt>
-      <dd>Expresses the rest in absolute time units (seconds and milliseconds, e.g. "+3s", "250ms")
-        as per the syntax of <a href="#time-def">time</a> values defined in [[!CSS3VAL]]. Only
-        positive values are allowed.</dd>
+      <dd>
+        <p>Expresses the rest in absolute time units (seconds and milliseconds, e.g. "+3s", "250ms")
+          as per the syntax of <a href="#time-def">time</a> values defined in [[!CSS3VAL]]. Only
+          positive values are allowed.</p>
+      </dd>
       <dt>
         <strong>none</strong>
       </dt>
-      <dd> Equivalent to 0ms (no prosodic break in the speech output). This value can be used to
-        inhibit a prosodic break which the processor would otherwise produce. </dd>
+      <dd>
+        <p> Equivalent to 0ms (no prosodic break in the speech output). This value can be used to
+          inhibit a prosodic break which the processor would otherwise produce. </p>
+      </dd>
       <dt>
         <strong>x-weak</strong>, <strong>weak</strong>, <strong>medium</strong>,
           <strong>strong</strong>, and <strong>x-strong</strong>
       </dt>
-      <dd> Expresses the rest by the strength of the prosodic break in speech output. The exact time
-        is implementation-dependent. The values indicate monotonically non-decreasing (conceptually
-        increasing) break strength between elements. </dd>
+      <dd>
+        <p> Expresses the rest by the strength of the prosodic break in speech output. The exact
+          time is implementation-dependent. The values indicate monotonically non-decreasing
+          (conceptually increasing) break strength between elements.</p>
+      </dd>
     </dl>
     <p>As opposed to <a href="#pause-props">pause properties</a>, the rest is inserted between the
       element's content and any 'cue-before' or 'cue-after' content. Adjoining rests are treated
@@ -1226,36 +1266,43 @@
       <dt>
         <strong>&lt;uri&gt;</strong>
       </dt>
-      <dd>The URI must designate an auditory icon resource. If the URI resolves to something other
-        than an audio file, such as an image, the resource is ignored and the property treated as if
-        it had the value 'none'.</dd>
+      <dd>
+        <p>The URI must designate an auditory icon resource. If the URI resolves to something other
+          than an audio file, such as an image, the resource is ignored and the property treated as
+          if it had the value 'none'.</p>
+      </dd>
       <dt>
         <strong>none</strong>
       </dt>
-      <dd>Specifies that no auditory icon is used.</dd>
+      <dd>
+        <p>Specifies that no auditory icon is used.</p>
+      </dd>
       <dt>
         <strong>&lt;percentage&gt;</strong>
       </dt>
-      <dd> The loudness of prerecorded audio cues can be adjusted relatively to the volume level of
-        synthetic speech. The default value is '100%'. Only positive <a href="#percentage-def"
-          >percentage</a> values are allowed. If the inherited value of the 'voice-volume' property
-        is 'silent', this percentage value has no effect and the volume level for the audio cue is
-        resolved to 'silent'. Otherwise, computed values are calculated relative to the inherited
-        value of the 'voice-volume' property, and are then clipped to the range '0' to '100'. Refer
-        to the 'voice-volume' property for the meaning of the numerical scale from '0' to '100'. <p
-          class="note"> Note that a leading "+" sign does not denote an increment. For example, +50%
-          is equivalent to 50%, so the computed value equals the inherited value times 0.5 (divided
-          by 2), then clipped to [0,100]. </p>
+      <dd>
+        <p> The loudness of prerecorded audio cues can be adjusted relatively to the volume level of
+          synthetic speech. The default value is '100%'. Only positive <a href="#percentage-def"
+            >percentage</a> values are allowed. If the inherited value of the 'voice-volume'
+          property is 'silent', this percentage value has no effect and the volume level for the
+          audio cue is resolved to 'silent'. Otherwise, computed values are calculated relative to
+          the inherited value of the 'voice-volume' property, and are then clipped to the range '0'
+          to '100'. Refer to the 'voice-volume' property for the meaning of the numerical scale from
+          '0' to '100'.</p>
+        <p class="note"> Note that a leading "+" sign does not denote an increment. For example,
+          +50% is equivalent to 50%, so the computed value equals the inherited value times 0.5
+          (divided by 2), then clipped to [0,100]. </p>
       </dd>
       <dt>
         <strong>silent</strong>
       </dt>
-      <dd> Specifies that the volume level results in no sound output at all. <p class="note"> Note
-          that there is a difference between an audio cue whose volume is set to 'silent' and one
-          whose value is 'none'. In the former case, the audio cue takes up the same time as if it
-          had been played, but no sound is generated. In the latter case, the there is no
-          manifestation of the audio cue at all (i.e. no time is allocated in the aural dimension
-          for the cue). </p>
+      <dd>
+        <p> Specifies that the volume level results in no sound output at all. </p>
+        <p class="note"> Note that there is a difference between an audio cue whose volume is set to
+          'silent' and one whose value is 'none'. In the former case, the audio cue takes up the
+          same time as if it had been played, but no sound is generated. In the latter case, the
+          there is no manifestation of the audio cue at all (i.e. no time is allocated in the aural
+          dimension for the cue). </p>
       </dd>
     </dl>
     <div class="example">
@@ -1534,8 +1581,8 @@
             <em>Value:</em>
           </td>
           <td> [[[&lt;name&gt; | [&lt;age&gt;? &lt;gender&gt;]] &lt;non-negative number&gt;?],]*
-            [[&lt;name&gt; | [&lt;age&gt;? &lt;gender&gt;]] &lt;non-negative number&gt;?] | inherit
-          </td>
+            [[&lt;name&gt; | [&lt;age&gt;? &lt;gender&gt;]] &lt;non-negative number&gt;?] | preserve
+            | inherit </td>
         </tr>
         <tr>
           <td>
@@ -1584,23 +1631,73 @@
       <dt>
         <strong>&lt;name&gt;</strong>
       </dt>
-      <dd>Values are specific instances (e.g., Mike, comedian, mary, carlos, "valley-girl").</dd>
+      <dd>
+        <p>Values are specific instances (e.g., Mike, comedian, mary, carlos, "valley-girl"). Values
+          can be quoted, and indeed must be quoted if any of the words that make up the name does
+          not conform to the syntax rules for <a href="#identifier-def">identifiers</a>. Any
+          whitespace characters before and after the voice name are ignored. For compatibility with
+          SSML, whitespace characters are not permitted within voice names. </p>
+      </dd>
       <dt>
         <strong>&lt;age&gt;</strong>
       </dt>
-      <dd>Possible values are 'child', 'young' and 'old'.</dd>
+      <dd>
+        <p>Possible values are 'child', 'young' and 'old'.</p>
+      </dd>
       <dt>
         <strong>&lt;gender&gt;</strong>
       </dt>
-      <dd>Values are voice families. Possible values are 'male', 'female' and 'neutral'.</dd>
+      <dd>
+        <p>Values are voice families. Possible values are 'male', 'female' and 'neutral'.</p>
+      </dd>
       <dt>
         <strong>&lt;non-negative number&gt;</strong>
       </dt>
-      <dd>Indicates a preferred variant of the voice characteristics (e.g. "the second male child
-        voice" or "the third voice named 'Mike'"). Possible values are <a
-          href="#non-negative-number-def">positive numbers</a> restricted to integers, and excluding
-        zero (i.e. starting from 1). The value "1" refers to the first of all matching voices. </dd>
+      <dd>
+        <p>Indicates a preferred variant (e.g. "the second male child voice" or "the third voice
+          named 'Mike'"). Possible values are <a href="#non-negative-number-def">positive
+            numbers</a> restricted to integers, and excluding zero (i.e. starting from 1). The value
+          "1" refers to the first of all matching voices. </p>
+      </dd>
+      <dt>
+        <strong>preserve</strong>
+      </dt>
+      <dd>
+        <p>Indicates that the 'voice-family' value gets inherited and used regardless of any
+          potential language change within the content markup (see the section below about voice
+          selection and language handling). This property value behaves similarly to 'inherit' when
+          applied to the root content element (defaults to the user or user-agent stylesheet). </p>
+        <p class="note"> Note that descendants of the selected element automatically inherit the
+          'preserve' value, unless it is explicitly overridden by other 'voice-family' values (e.g.
+          name, gender, age, etc.). </p>
+      </dd>
     </dl>
+    <h4 class="no-toc" id="voice-props-lang-handling">Voice selection, content language</h4>
+    <p>The 'voice-family' property is used to guide the selection of the speech synthesis voice. As
+      part of this selection process, speech-capable user agents must also take into account the
+      language of the selected element within the markup content. The "name", "gender", "age", and
+      preferred "index" are voice selection hints that get carried down the content hierarchy as the
+      'voice-family' property value gets inherited by descendant elements. At any point within the
+      content structure, the language takes precedence (i.e. has a higher priority) over the
+      specified CSS voice characteristics. The following list outlines the selection algorithm (note
+      that the definition of "language" is loose here, in order to cater for dialectic variants):
+      .</p>
+    <ol>
+      <li> If only a single voice is available for the language of the selected content, then this
+        voice must be used, regardless of the specified CSS voice characteristics. </li>
+      <li> If several voices are available for the language of the selected content, then the chosen
+        voice is the one that most closely matches the specified gender, age, and preferred voice
+        index. The actual definition of "best match" is processor-dependent.</li>
+      <li> If no voice is available for the language of the selected content, user-agent should
+        raise a warning to let the user know about the lack of appropriate TTS voice. </li>
+      <li>The speech synthesizer voice must be re-evaluated (i.e. the selection process must take
+        place once again) whenever either of the CSS voice characteristics change within the content
+        flow. The voice must also be re-calculated whenever the content language changes, unless the
+        'preserve' keyword is used (this may be useful in cases where embedded foreign language text
+        can be spoken using a voice not designed for this language, as demonstrated by the example
+        below). </li>
+    </ol>
+    <p>Here are a few examples:</p>
     <div class="example">
       <pre>
 h1 { voice-family: announcer, old male; }
@@ -1609,21 +1706,15 @@
 p.mercutio { voice-family: male 2; }
 p.tybalt { voice-family: male 3; }
 p.nurse { voice-family: child female; }
+
+...
+
+&lt;p class="romeo" xml:lang="en-US"&gt;
+  The french text below will be spoken with an english voice: 
+  &lt;span style="voice-family: preserve;" xml:lang="fr-FR"&gt;Bonjour monsieur !&lt;/span&gt;
+&lt;/p&gt;
             </pre>
     </div>
-    <p>Names of specific voices can be quoted, and indeed must be quoted if any of the words that
-      make up the name does not conform to the syntax rules for <a href="#identifier-def"
-        >identifiers</a>. Any whitespace characters before and after the voice name are ignored. For
-      compatibility with SSML, whitespace characters are not permitted within voice names.</p>
-    <p>The 'voice-family' property is used to guide the selection of the voice to be used for speech
-      synthesis. The overriding priority is to match the language specified by the xml:lang
-      attribute as per the XML 1.0 specification [[!XML10]], and as inherited by nested elements
-      until overridden by a further xml:lang attribute.</p>
-    <p>If there is no voice available for the requested value of xml:lang, the processor should
-      select a voice that is closest to the requested language (e.g. a variant or dialect of the
-      same language). If there are multiple such voices available, the processor should use a voice
-      that best matches the values provided with the 'voice-volume' property. It is an error if
-      there are no such matches.</p>
     <h3 id="voice-props-voice-rate">The 'voice-rate' property</h3>
     <table class="propdef" summary="name: syntax">
       <tbody>
@@ -1687,17 +1778,20 @@
       <dt>
         <strong>&lt;percentage&gt;</strong>
       </dt>
-      <dd> Only positive <a href="#percentage-def">percentage</a> values are allowed. Computed
-        values are calculated relative to the default speaking rate for the voice. <p class="note">
-          Note that a leading "+" sign does not denote an increment, for example +50% is equivalent
-          to 50% (i.e. the computed value equals the inherited value times 0.5, which is half the
-          normal rate of the voice). </p>
+      <dd>
+        <p>Only positive <a href="#percentage-def">percentage</a> values are allowed. Computed
+          values are calculated relative to the default speaking rate for the voice.</p>
+        <p class="note"> Note that a leading "+" sign does not denote an increment, for example +50%
+          is equivalent to 50% (i.e. the computed value equals the inherited value times 0.5, which
+          is half the normal rate of the voice). </p>
       </dd>
       <dt><strong>x-slow</strong>, <strong>slow</strong>, <strong>medium</strong>,
           <strong>fast</strong> and <strong>x-fast</strong></dt>
-      <dd>A sequence of monotonically non-decreasing speaking rates that are implementation and
-        voice specific. <p class="note">Note that typical values are (in words per minute) x-slow =
-          80, slow = 120, medium = between 180 and 200, fast = 500. </p>
+      <dd>
+        <p>A sequence of monotonically non-decreasing speaking rates that are implementation and
+          voice specific. </p>
+        <p class="note">Note that typical values are (in words per minute) x-slow = 80, slow = 120,
+          medium = between 180 and 200, fast = 500. </p>
       </dd>
     </dl>
     <h3 id="voice-props-voice-pitch">The 'voice-pitch' property</h3>
@@ -1764,10 +1858,12 @@
       <dt>
         <strong>&lt;frequency&gt;</strong>
       </dt>
-      <dd> Specifies the average pitch of the speaking voice using an absolute value in frequency
-        units (Hertz and kiloHertz, e.g. "100Hz", "+2kHz") as per the syntax of <a
-          href="#frequency-def">frequency</a> values defined in [[!CSS3VAL]]. Only positive values
-        are allowed. </dd>
+      <dd>
+        <p> Specifies the average pitch of the speaking voice using an absolute value in frequency
+          units (Hertz and kiloHertz, e.g. "100Hz", "+2kHz") as per the syntax of <a
+            href="#frequency-def">frequency</a> values defined in [[!CSS3VAL]]. Only positive values
+          are allowed. </p>
+      </dd>
       <!-- dd>
                 This is an absolute value that specifies the average pitch of the speaking voice in Hertz.
                 It must be &lt;non-negative number&gt; followed by the "Hz" suffix.
@@ -1775,20 +1871,22 @@
       <dt>
         <strong>&lt;percentage&gt;</strong>
       </dt>
-      <dd> Only positive <a href="#percentage-def">percentage</a> values are allowed. Computed
-        values are calculated relative to the inherited value. <p class="note"> Note that a leading
-          "+" sign does not denote an increment. For example, +50% is equivalent to 50%, so the
-          computed value equals the inherited value times 0.5 (divided by 2), which is half the
-          inherited average pitch of the voice. </p>
+      <dd>
+        <p> Only positive <a href="#percentage-def">percentage</a> values are allowed. Computed
+          values are calculated relative to the inherited value. </p>
+        <p class="note"> Note that a leading "+" sign does not denote an increment. For example,
+          +50% is equivalent to 50%, so the computed value equals the inherited value times 0.5
+          (divided by 2), which is half the inherited average pitch of the voice. </p>
       </dd>
       <dt>
         <strong>&lt;relative-change&gt;</strong>
       </dt>
-      <dd> Specifies a relative change (decrement or increment) to the inherited value. The syntax
-        of allowed values is a &lt;<a href="#number-def">number</a>&gt; (the "+" sign is optional
-        for positive numbers), followed by either of "Hz" (for Hertz) or "kHz" (for kiloHertz) or
-        "st" (for semitones), and followed by a space character and the "relative" keyword. <p
-          class="note"> Note that here, unlike the syntax of <a href="#frequency-def">frequency</a>
+      <dd>
+        <p> Specifies a relative change (decrement or increment) to the inherited value. The syntax
+          of allowed values is a &lt;<a href="#number-def">number</a>&gt; (the "+" sign is optional
+          for positive numbers), followed by either of "Hz" (for Hertz) or "kHz" (for kiloHertz) or
+          "st" (for semitones), and followed by a space character and the "relative" keyword.</p>
+        <p class="note"> Note that here, unlike the syntax of <a href="#frequency-def">frequency</a>
           values defined in [[!CSS3VAL]], the number can be positive or negative. </p>
         <p class="note"> Note that the "relative" keyword is mandatory. This is in order to
           disambiguate from &lt;frequency&gt; values which may also carry the optional "+" sign on
@@ -1796,8 +1894,10 @@
       </dd>
       <dt><strong>x-low</strong>, <strong>low</strong>, <strong>medium</strong>,
           <strong>high</strong>, <strong>x-high</strong></dt>
-      <dd>A sequence of monotonically non-decreasing pitch levels that are implementation and voice
-        specific.</dd>
+      <dd>
+        <p>A sequence of monotonically non-decreasing pitch levels that are implementation and voice
+          specific.</p>
+      </dd>
     </dl>
     <div class="example">
       <pre>
@@ -1874,36 +1974,42 @@
       <dt>
         <strong>&lt;frequency&gt;</strong>
       </dt>
-      <dd> Specifies the average pitch range of the speaking voice using an absolute value in
-        frequency units (Hertz and kiloHertz, e.g. "100Hz", "+2kHz") as per the syntax of <a
-          href="#frequency-def">frequency</a> values defined in [[!CSS3VAL]]. Only positive values
-        are allowed. <p class="note"> Low ranges produce a flat, monotonic voice. A high range
-          produces animated voices. </p>
+      <dd>
+        <p> Specifies the average pitch range of the speaking voice using an absolute value in
+          frequency units (Hertz and kiloHertz, e.g. "100Hz", "+2kHz") as per the syntax of <a
+            href="#frequency-def">frequency</a> values defined in [[!CSS3VAL]]. Only positive values
+          are allowed. </p>
+        <p class="note"> Low ranges produce a flat, monotonic voice. A high range produces animated
+          voices. </p>
       </dd>
       <dt>
         <strong>&lt;percentage&gt;</strong>
       </dt>
-      <dd> Only positive <a href="#percentage-def">percentage</a> values are allowed. Computed
-        values are calculated relative to the inherited value. <p class="note"> Note that a leading
-          "+" sign does not denote an increment. For example, +50% is equivalent to 50%, so the
-          computed value equals the inherited value times 0.5 (divided by 2), which is half the
-          inherited average pitch range of the voice. </p>
+      <dd>
+        <p> Only positive <a href="#percentage-def">percentage</a> values are allowed. Computed
+          values are calculated relative to the inherited value.</p>
+        <p class="note"> Note that a leading "+" sign does not denote an increment. For example,
+          +50% is equivalent to 50%, so the computed value equals the inherited value times 0.5
+          (divided by 2), which is half the inherited average pitch range of the voice. </p>
       </dd>
       <dt>
         <strong>&lt;relative-change&gt;</strong>
       </dt>
-      <dd> Specifies a relative change (decrement or increment) to the inherited value. The syntax
-        of allowed values is a &lt;<a href="#number-def">number</a>&gt; (note that the "+" sign is
-        optional for positive numbers), followed by either of "Hz" (for Hertz) or "st" (for
-        semitones), and followed by a space character and the "relative" keyword. <p class="note">
-          Note that the "relative" keyword is mandatory. This is in order to disambiguate from
-          &lt;frequency&gt; values which may also carry the optional "+" sign on positive values.
-        </p>
+      <dd>
+        <p> Specifies a relative change (decrement or increment) to the inherited value. The syntax
+          of allowed values is a &lt;<a href="#number-def">number</a>&gt; (note that the "+" sign is
+          optional for positive numbers), followed by either of "Hz" (for Hertz) or "st" (for
+          semitones), and followed by a space character and the "relative" keyword.</p>
+        <p class="note"> Note that the "relative" keyword is mandatory. This is in order to
+          disambiguate from &lt;frequency&gt; values which may also carry the optional "+" sign on
+          positive values. </p>
       </dd>
       <dt><strong>x-low</strong>, <strong>low</strong>, <strong>medium</strong>,
           <strong>high</strong> and <strong>x-high</strong></dt>
-      <dd>A sequence of monotonically non-decreasing pitch ranges that are implementation and
-        language-dependent.</dd>
+      <dd>
+        <p>A sequence of monotonically non-decreasing pitch ranges that are implementation and
+          language-dependent.</p>
+      </dd>
     </dl>
     <p class="note"> Note that a semitone is half of a tone (a half step) on the standard diatonic
       scale. A semitone doesn't correspond to a fixed value in Hertz: instead, the ratio between two
@@ -1971,19 +2077,27 @@
       <dt>
         <strong>normal</strong>
       </dt>
-      <dd>Represents the default emphasis produced by the speech synthesizer.</dd>
+      <dd>
+        <p>Represents the default emphasis produced by the speech synthesizer.</p>
+      </dd>
       <dt>
         <strong>none</strong>
       </dt>
-      <dd>Prevents the synthesizer from emphasizing text it would normally emphasize.</dd>
+      <dd>
+        <p>Prevents the synthesizer from emphasizing text it would normally emphasize.</p>
+      </dd>
       <dt><strong>moderate</strong> and <strong>strong</strong></dt>
-      <dd>These values are monotonically non-decreasing in strength. Their application results in
-        more emphasis than what the speech synthesizer would normally produce (i.e. more than the
-        value corresponding to 'auto'). </dd>
+      <dd>
+        <p>These values are monotonically non-decreasing in strength. Their application results in
+          more emphasis than what the speech synthesizer would normally produce (i.e. more than the
+          value corresponding to 'auto'). </p>
+      </dd>
       <dt>
         <strong>reduced</strong>
       </dt>
-      <dd>Effectively the opposite of emphasizing a word.</dd>
+      <dd>
+        <p>Effectively the opposite of emphasizing a word.</p>
+      </dd>
     </dl>
     <div class="example">
       <pre>
@@ -2075,14 +2189,18 @@
       <dt>
         <strong>auto</strong>
       </dt>
-      <dd> Resolves to a computed value corresponding to the duration of the speech synthesis when
-        using the inherited 'voice-rate'. </dd>
+      <dd>
+        <p>Resolves to a computed value corresponding to the duration of the speech synthesis when
+          using the inherited 'voice-rate'. </p>
+      </dd>
       <dt>
         <strong>&lt;time&gt;</strong>
       </dt>
-      <dd> Specifies a value in absolute time units (seconds and milliseconds, e.g. "+3s", "250ms")
-        as per the syntax of <a href="#time-def">time</a> values defined in [[!CSS3VAL]]. Only
-        positive values are allowed. </dd>
+      <dd>
+        <p> Specifies a value in absolute time units (seconds and milliseconds, e.g. "+3s", "250ms")
+          as per the syntax of <a href="#time-def">time</a> values defined in [[!CSS3VAL]]. Only
+          positive values are allowed. </p>
+      </dd>
     </dl>
     <h2 id="lists">Support for list item styles</h2>
     <p class="note">Note that this section is under construction.</p>
@@ -2653,6 +2771,7 @@
       <li>Added an "auto" value to 'voice-duration', which is the [initial] property value as
         well.</li>
       <li>Renamed voice-family fields to be consistent with SSML.</li>
+      <li>Improved the 'voice-family' selection algorithm to cater for language changes.</li>
       <li>Added a new section to define the relationship of this specification with CSS2.1.</li>
       <li>Added the missing "Computed value" line to each property definition.</li>
       <li>Cleaned-up the list of module dependencies, and removed redundant "module dependencies"
@@ -2688,12 +2807,12 @@
     <h2 class="no-num" id="references">Appendix E &mdash; References</h2>
     <h3 class="no-num">Normative references</h3>
     <!--normative-->
-    <dl class="bibliography">
+    <!-- dl class="bibliography">
       <dt id="IPA">[IPA]</dt>
       <dd>
         <a href="http://www.langsci.ucl.ac.uk/ipa/">International Phonetic Association</a>
       </dd>
-    </dl>
+    </dl -->
     <h3 class="no-num">Other references</h3>
     <!--informative-->
   </body>

Received on Wednesday, 11 May 2011 10:20:09 UTC