- From: Daniel Weck via cvs-syncmail <cvsmail@w3.org>
- Date: Tue, 07 Jun 2011 08:22:32 +0000
- To: public-css-commits@w3.org
Update of /sources/public/csswg/css3-speech
In directory hutz:/tmp/cvs-serv14651
Modified Files:
Overview.html Overview.src.html
Log Message:
fixed voice family names (now matches font-family and allows spaces)
added list bullet nesting level announcement.
Index: Overview.html
===================================================================
RCS file: /sources/public/csswg/css3-speech/Overview.html,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -d -r1.55 -r1.56
--- Overview.html 6 Jun 2011 21:51:31 -0000 1.55
+++ Overview.html 7 Jun 2011 08:22:30 -0000 1.56
@@ -90,13 +90,13 @@
<h1 id=top>CSS Speech Module</h1>
- <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 06 June 2011</h2>
+ <h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 07 June 2011</h2>
<dl>
<dt>This version:
<dd>
- <!--<a href="http://www.w3.org/TR/2011/WD-css3-speech-20110606">http://www.w3.org/TR/2011/ED-css3-speech-20110606/</a>-->
+ <!--<a href="http://www.w3.org/TR/2011/WD-css3-speech-20110607">http://www.w3.org/TR/2011/ED-css3-speech-20110607/</a>-->
<a
href="http://dev.w3.org/csswg/css3-speech">http://dev.w3.org/csswg/css3-speech</a>
@@ -454,8 +454,7 @@
<p class="peter">
<span class="special">Can you hear me ?</span>
I am Peter.
-</p>
- </pre>
+</p></pre>
</div>
<h2 id=aural-model><span class=secno>2. </span>The <dfn
@@ -1098,8 +1097,7 @@
<div class=example>
<pre>
-p { pause: none } /* pause-before: none; pause-after: none */
- </pre>
+p { pause: none } /* pause-before: none; pause-after: none */</pre>
</div>
<h3 id=pause-props-pause><span class=secno>5.2. </span>The ‘<a
@@ -1166,8 +1164,7 @@
<pre>
h1 { pause: 20ms; } /* pause-before: 20ms; pause-after: 20ms */
h2 { pause: 30ms 40ms; } /* pause-before: 30ms; pause-after: 40ms */
-h3 { pause-after: 10ms; } /* pause-before: <i>unspecified</i>; pause-after: 10ms */
- </pre>
+h3 { pause-after: 10ms; } /* pause-before: <i>unspecified</i>; pause-after: 10ms */</pre>
</div>
<h3 id=collapsing><span class=secno>5.3. </span>Collapsing pauses</h3>
@@ -1608,8 +1605,7 @@
cue-after: url(../clips-2/pop.au) 6dB;
}
-div.caution { cue-before: url(./audio/caution.wav) +8dB; }
- </pre>
+div.caution { cue-before: url(./audio/caution.wav) +8dB; }</pre>
</div>
<h3 id=cue-props-cue><span class=secno>7.2. </span>The ‘<a
@@ -1681,8 +1677,7 @@
h1
{
cue: url(pop.au);
-}
- </pre>
+}</pre>
</div>
<h2 id=voice-char-props><span class=secno>8. </span>Voice characteristic
@@ -1702,9 +1697,9 @@
<tr>
<td> <em>Value:</em>
- <td> [[[<name> | [<age>? <gender>]] <non-negative
- number>?],]* [[<name> | [<age>? <gender>]]
- <non-negative number>?] | preserve | inherit
+ <td> [[<name> | [<age>? <gender> <non-negative
+ number>?]],]* [<name> | [<age>? <gender>
+ <non-negative number>?]] | preserve | inherit
<tr>
<td> <em>Initial:</em>
@@ -1756,11 +1751,51 @@
<dd>
<p>Values are specific voice instances (e.g., Mike, comedian, mary,
- carlos, "valley-girl"). For compatibility with SSML, voice names do not
- contain whitespace characters, and any whitespace characters before or
- after the voice name are ignored. 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>.</p>
+ carlos2, "valley girl"). Voice names must either be given quoted as <a
+ href="#strings-def">strings</a>, or unquoted as a sequence of one or
+ more <a href="#identifier-def">identifiers</a>.</p>
+
+ <p class=note>Note that as a result, most punctuation characters, or
+ digits at the start of each token, must be escaped in unquoted voice
+ names. For example, the following declarations are invalid:</p>
+
+ <div class=example>
+ <pre>
+voice-family: john/doe; /* forward slash character should be escaped */
+voice-family: john "doe"; /* identifier sequence cannot contain strings */
+voice-family: john!; /* exclamation mark should be escaped */
+voice-family: john@doe; /* "at" character should be escaped */
+voice-family: #john; /* identifier cannot start with hash character */
+voice-family: john 1st; /* identifier cannot start with digit */</pre>
+ </div>
+
+ <p> If a sequence of identifiers is given as a voice name, the computed
+ value is the name converted to a string by joining all the identifiers
+ in the sequence by single spaces.</p>
+
+ <p> Voice names that happen to be the same as the gender keywords
+ (‘<code class=property>male</code>’, ‘<code
+ class=property>female</code>’ and ‘<code
+ class=property>neutral</code>’) or that happen to match the
+ keywords ‘<code class=property>inherit</code>’ or
+ ‘<code class=property>preserve</code>’ must be quoted to
+ disambiguate with these keywords. The keywords ‘<code
+ class=property>initial</code>’ and ‘<code
+ class=property>default</code>’ are reserved for future use and
+ must also be quoted when used as voice names.</p>
+
+ <p class=note> Note that to avoid mistakes in escaping, it is recommended
+ to quote voice names that contain white space, digits, or punctuation
+ characters other than hyphens. For example:</p>
+
+ <div class=example>
+ <pre>
+voice-family: "john doe", "Henry the-8th";</pre>
+ </div>
+
+ <p class=note> Note that in <a href="#SSML"
+ rel=biblioentry>[SSML]<!--{{!SSML}}--></a>, voice names are
+ space-separated and cannot contain whitespace characters.</p>
<dt> <strong><age></strong>
@@ -1780,8 +1815,7 @@
<dt> <strong><non-negative number></strong>
<dd>
- <p>Indicates a preferred variant (e.g. "the second male child voice" or
- "the third voice named ‘<code class=property>Mike</code>’").
+ <p>Indicates a preferred variant (e.g. "the second male child voice").
Possible values are <a href="#non-negative-number-def">non-negative
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>
@@ -1829,7 +1863,7 @@
<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
+ specified gender, age, and preferred voice variant. The actual definition
of "best match" is processor-dependent.
<li> If no voice is available for the language of the selected content, it
@@ -1870,8 +1904,7 @@
than that corresponding to the class "romeo"
(which is inherited from the "p" parent element):
<span style="voice-family: female;">Hello sir!</span>
-</p>
- </pre>
+</p></pre>
</div>
<h3 id=voice-props-voice-rate><span class=secno>8.2. </span>The ‘<a
@@ -2085,8 +2118,7 @@
h2 { voice-pitch: +30Hz relative; }
h2 { voice-pitch: 30Hz relative; } /* identical to the line above */
h3 { voice-pitch: relative -2st; } /* the swapped keyword placement is a legal syntax */
-h4 { voice-pitch: -2st; } /* Illegal syntax ! ("relative" keyword is missing) */
- </pre>
+h4 { voice-pitch: -2st; } /* Illegal syntax ! ("relative" keyword is missing) */</pre>
</div>
<h3 id=voice-props-voice-pitch-range><span class=secno>8.4. </span>The
@@ -2314,8 +2346,7 @@
<!-- The lines below demonstrate increasing levels of emphasis: -->
<p>This is a <span class="normal-emphasis">big</span> car!</p>
-<p>This is a <span class="huge-emphasis">big</span> car!!!</p>
- </pre>
+<p>This is a <span class="huge-emphasis">big</span> car!!!</p></pre>
</div>
<h2 id=duration-props><span class=secno>9. </span>Voice duration property</h2>
@@ -2431,7 +2462,9 @@
<p> For these list item styles, the user-agent defines (possibly based on
user preferences) what equivalent phrase is spoken or what audio cue is
played. List items with graphical bullets are therefore announced
- appropriately in an implementation-dependent manner.</p>
+ appropriately in an implementation-dependent manner. For hierarchical
+ lists structures, it is recommended that user-agents announce the
+ nesting depth of list items.</p>
<dt> <strong>decimal, decimal-leading-zero, lower-roman, upper-roman,
georgian, armenian</strong>
@@ -2545,8 +2578,7 @@
abbr { content: attr(title); }
...
-<abbr title="World Wide Web Consortium">W3C</abbr>
- </pre>
+<abbr title="World Wide Web Consortium">W3C</abbr></pre>
</div>
<p>In a similar way, text strings in a document can be replaced by a
@@ -2563,8 +2595,7 @@
<div class="hamlet">
To be, or not to be: that is the question:
-</div>
- </pre>
+</div></pre>
</div>
<p>Furthermore, authors (or users via a user stylesheet) may add some
@@ -2586,8 +2617,7 @@
<pre>
ul::before { content: "Start list: "; }
ul::after { content: "List end. "; }
-li::before { content: "List item: "; }
-</pre>
+li::before { content: "List item: "; }</pre>
</div>
<p>Detailed information can be found in the CSS3 Generated and Replaced
@@ -2823,9 +2853,9 @@
<tr>
<td><a class=property href="#voice-family">voice-family</a>
- <td>[[[<name> | [<age>? <gender>]] <non-negative
- number>?],]* [[<name> | [<age>? <gender>]]
- <non-negative number>?] | preserve | inherit
+ <td>[[<name> | [<age>? <gender> <non-negative
+ number>?]],]* [<name> | [<age>? <gender>
+ <non-negative number>?]] | preserve | inherit
<td>implementation-dependent
@@ -3001,6 +3031,11 @@
href="http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier">
identifier </a></dfn> <a href="#CSS21"
rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>
+
+ <li> <dfn id=strings-def> <a
+ href="http://www.w3.org/TR/CSS21/syndata.html#strings"> strings
+ </a></dfn> <a href="#CSS21"
+ rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>
</ul>
<h2 class=no-num id=index>Appendix B — Index</h2>
@@ -3083,6 +3118,8 @@
<li>speak-as, <a href="#speak-as" title=speak-as><strong>4.2.</strong></a>
+ <li>strings, <a href="#strings-def" title=strings><strong>#</strong></a>
+
<li>style sheet, <a href="#style-sheet" title="style
sheet"><strong>#</strong></a>
<ul>
@@ -3375,6 +3412,10 @@
class=property>voice-family</code></a>’ selection algorithm to
cater for language changes.
+ <li>Enabled voice-family names to contain spaces, matching ‘<code
+ class=property>font-family</code>’ syntax which is based on quoted
+ strings and concatenated identifiers.
+
<li>Added a new section to define the relationship of this specification
with CSS2.1.
Index: Overview.src.html
===================================================================
RCS file: /sources/public/csswg/css3-speech/Overview.src.html,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -d -r1.56 -r1.57
--- Overview.src.html 6 Jun 2011 21:51:31 -0000 1.56
+++ Overview.src.html 7 Jun 2011 08:22:30 -0000 1.57
@@ -217,8 +217,7 @@
<p class="peter">
<span class="special">Can you hear me ?</span>
I am Peter.
-</p>
- </pre>
+</p></pre>
</div>
<h2 id="aural-model">The <dfn id="aural-box-model">aural "box" model</dfn></h2>
<p>The CSS formatting model for aural media is based on a sequence of sounds and silences that
@@ -800,8 +799,7 @@
styles: </p>
<div class="example">
<pre>
-p { pause: none } /* pause-before: none; pause-after: none */
- </pre>
+p { pause: none } /* pause-before: none; pause-after: none */</pre>
</div>
<h3 id="pause-props-pause">The 'pause' shorthand property</h3>
<table class="propdef" summary="name: syntax">
@@ -863,8 +861,7 @@
<pre>
h1 { pause: 20ms; } /* pause-before: 20ms; pause-after: 20ms */
h2 { pause: 30ms 40ms; } /* pause-before: 30ms; pause-after: 40ms */
-h3 { pause-after: 10ms; } /* pause-before: <i>unspecified</i>; pause-after: 10ms */
- </pre>
+h3 { pause-after: 10ms; } /* pause-before: <i>unspecified</i>; pause-after: 10ms */</pre>
</div>
<h3 id="collapsing">Collapsing pauses</h3>
<p> The pause defines the minimum distance of the aural "box" to the aural "boxes" before and
@@ -1252,8 +1249,7 @@
cue-after: url(../clips-2/pop.au) 6dB;
}
-div.caution { cue-before: url(./audio/caution.wav) +8dB; }
- </pre>
+div.caution { cue-before: url(./audio/caution.wav) +8dB; }</pre>
</div>
<h3 id="cue-props-cue">The 'cue' shorthand property</h3>
<table class="propdef" summary="name: syntax">
@@ -1322,8 +1318,7 @@
h1
{
cue: url(pop.au);
-}
- </pre>
+}</pre>
</div>
<h2 id="voice-char-props">Voice characteristic properties</h2>
<h3 id="voice-props-voice-family">The 'voice-family' property</h3>
@@ -1339,9 +1334,9 @@
<td>
<em>Value:</em>
</td>
- <td> [[[<name> | [<age>? <gender>]] <non-negative number>?],]*
- [[<name> | [<age>? <gender>]] <non-negative number>?] | preserve
- | inherit </td>
+ <td> [[<name> | [<age>? <gender> <non-negative number>?]],]*
+ [<name> | [<age>? <gender> <non-negative number>?]] | preserve |
+ inherit </td>
</tr>
<tr>
<td>
@@ -1392,11 +1387,36 @@
<strong><name></strong>
</dt>
<dd>
- <p>Values are specific voice instances (e.g., Mike, comedian, mary, carlos, "valley-girl").
- For compatibility with SSML, voice names do not contain whitespace characters, and any
- whitespace characters before or after the voice name are ignored. 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>. </p>
+ <p>Values are specific voice instances (e.g., Mike, comedian, mary, carlos2, "valley girl").
+ Voice names must either be given quoted as <a href="#strings-def">strings</a>, or unquoted
+ as a sequence of one or more <a href="#identifier-def">identifiers</a>. </p>
+ <p class="note">Note that as a result, most punctuation characters, or digits at the start
+ of each token, must be escaped in unquoted voice names. For example, the following
+ declarations are invalid: </p>
+ <div class="example">
+ <pre>
+voice-family: john/doe; /* forward slash character should be escaped */
+voice-family: john "doe"; /* identifier sequence cannot contain strings */
+voice-family: john!; /* exclamation mark should be escaped */
+voice-family: john@doe; /* "at" character should be escaped */
+voice-family: #john; /* identifier cannot start with hash character */
+voice-family: john 1st; /* identifier cannot start with digit */</pre>
+ </div>
+ <p> If a sequence of identifiers is given as a voice name, the computed value is the name
+ converted to a string by joining all the identifiers in the sequence by single spaces. </p>
+ <p> Voice names that happen to be the same as the gender keywords ('male', 'female' and
+ 'neutral') or that happen to match the keywords 'inherit' or 'preserve' must be quoted to
+ disambiguate with these keywords. The keywords 'initial' and 'default' are reserved for
+ future use and must also be quoted when used as voice names. </p>
+ <p class="note"> Note that to avoid mistakes in escaping, it is recommended to quote voice
+ names that contain white space, digits, or punctuation characters other than hyphens. For
+ example: </p>
+ <div class="example">
+ <pre>
+voice-family: "john doe", "Henry the-8th";</pre>
+ </div>
+ <p class="note"> Note that in [[!SSML]], voice names are space-separated and cannot contain
+ whitespace characters.</p>
</dd>
<dt>
<strong><age></strong>
@@ -1416,10 +1436,10 @@
<strong><non-negative number></strong>
</dt>
<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">non-negative
- 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>
+ <p>Indicates a preferred variant (e.g. "the second male child voice"). Possible values are
+ <a href="#non-negative-number-def">non-negative 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>
@@ -1449,7 +1469,7 @@
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>
+ variant. The actual definition of "best match" is processor-dependent.</li>
<li> If no voice is available for the language of the selected content, it is recommended that
user-agents 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
@@ -1482,8 +1502,7 @@
than that corresponding to the class "romeo"
(which is inherited from the "p" parent element):
<span style="voice-family: female;">Hello sir!</span>
-</p>
- </pre>
+</p></pre>
</div>
<h3 id="voice-props-voice-rate">The 'voice-rate' property</h3>
<table class="propdef" summary="name: syntax">
@@ -1685,8 +1704,7 @@
h2 { voice-pitch: +30Hz relative; }
h2 { voice-pitch: 30Hz relative; } /* identical to the line above */
h3 { voice-pitch: relative -2st; } /* the swapped keyword placement is a legal syntax */
-h4 { voice-pitch: -2st; } /* Illegal syntax ! ("relative" keyword is missing) */
- </pre>
+h4 { voice-pitch: -2st; } /* Illegal syntax ! ("relative" keyword is missing) */</pre>
</div>
<h3 id="voice-props-voice-pitch-range">The 'voice-pitch-range' property</h3>
<table class="propdef" summary="name: syntax">
@@ -1905,8 +1923,7 @@
<!-- The lines below demonstrate increasing levels of emphasis: -->
<p>This is a <span class="normal-emphasis">big</span> car!</p>
-<p>This is a <span class="huge-emphasis">big</span> car!!!</p>
- </pre>
+<p>This is a <span class="huge-emphasis">big</span> car!!!</p></pre>
</div>
<h2 id="duration-props">Voice duration property</h2>
<h3 id="mixing-props-voice-duration">The 'voice-duration' property</h3>
@@ -2008,7 +2025,9 @@
<dd>
<p> For these list item styles, the user-agent defines (possibly based on user preferences)
what equivalent phrase is spoken or what audio cue is played. List items with graphical
- bullets are therefore announced appropriately in an implementation-dependent manner. </p>
+ bullets are therefore announced appropriately in an implementation-dependent manner. For
+ hierarchical lists structures, it is recommended that user-agents announce the nesting
+ depth of list items.</p>
</dd>
<dt>
<strong>decimal, decimal-leading-zero, lower-roman, upper-roman, georgian, armenian</strong>
@@ -2094,8 +2113,7 @@
abbr { content: attr(title); }
...
-<abbr title="World Wide Web Consortium">W3C</abbr>
- </pre>
+<abbr title="World Wide Web Consortium">W3C</abbr></pre>
</div>
<p>In a similar way, text strings in a document can be replaced by a previously recorded
version. In the following example - assuming the format is supported, the file is available
@@ -2109,8 +2127,7 @@
<div class="hamlet">
To be, or not to be: that is the question:
-</div>
- </pre>
+</div></pre>
</div>
<p>Furthermore, authors (or users via a user stylesheet) may add some information to ease the
understanding of structures during non-visual interaction with the document. They can do so by
@@ -2124,8 +2141,7 @@
<pre>
ul::before { content: "Start list: "; }
ul::after { content: "List end. "; }
-li::before { content: "List item: "; }
-</pre>
+li::before { content: "List item: "; }</pre>
</div>
<p>Detailed information can be found in the CSS3 Generated and Replaced Content module
[[CSS3GENCON]].</p>
@@ -2198,6 +2214,10 @@
<dfn id="identifier-def">
<a href="http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier"> identifier
</a></dfn> [[!CSS21]] </li>
+ <li>
+ <dfn id="strings-def">
+ <a href="http://www.w3.org/TR/CSS21/syndata.html#strings"> strings </a></dfn>
+ [[!CSS21]] </li>
</ul>
<h2 class="no-num" id="index">Appendix B — Index</h2>
<!--index-->
@@ -2377,6 +2397,8 @@
<li>Added the 'normal' value for voice-rate ("default" in SSML 1.1).</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>Enabled voice-family names to contain spaces, matching 'font-family' syntax which is based
+ on quoted strings and concatenated identifiers.</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"
Received on Tuesday, 7 June 2011 08:22:34 UTC