Skip to content

Commit 21f5553

Browse files
committed
fixed voice family names (now matches font-family and allows spaces)
added list bullet nesting level announcement.
1 parent 8df2e60 commit 21f5553

2 files changed

Lines changed: 138 additions & 75 deletions

File tree

css3-speech/Overview.html

Lines changed: 80 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -90,13 +90,13 @@
9090

9191
<h1 id=top>CSS Speech Module</h1>
9292

93-
<h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 06 June 2011</h2>
93+
<h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 07 June 2011</h2>
9494

9595
<dl>
9696
<dt>This version:
9797

9898
<dd>
99-
<!--<a href="http://www.w3.org/TR/2011/WD-css3-speech-20110606">http://www.w3.org/TR/2011/ED-css3-speech-20110606/</a>-->
99+
<!--<a href="http://www.w3.org/TR/2011/WD-css3-speech-20110607">http://www.w3.org/TR/2011/ED-css3-speech-20110607/</a>-->
100100
<a
101101
href="http://dev.w3.org/csswg/css3-speech">http://dev.w3.org/csswg/css3-speech</a>
102102

@@ -454,8 +454,7 @@ <h3 id=example><span class=secno>1.3. </span>CSS Speech Example</h3>
454454
&lt;p class="peter"&gt;
455455
&lt;span class="special"&gt;Can you hear me ?&lt;/span&gt;
456456
I am Peter.
457-
&lt;/p&gt;
458-
</pre>
457+
&lt;/p&gt;</pre>
459458
</div>
460459

461460
<h2 id=aural-model><span class=secno>2. </span>The <dfn
@@ -1098,8 +1097,7 @@ <h3 id=pause-props-pause-before-after><span class=secno>5.1. </span>The
10981097

10991098
<div class=example>
11001099
<pre>
1101-
p { pause: none } /* pause-before: none; pause-after: none */
1102-
</pre>
1100+
p { pause: none } /* pause-before: none; pause-after: none */</pre>
11031101
</div>
11041102

11051103
<h3 id=pause-props-pause><span class=secno>5.2. </span>The &lsquo;<a
@@ -1166,8 +1164,7 @@ <h3 id=pause-props-pause><span class=secno>5.2. </span>The &lsquo;<a
11661164
<pre>
11671165
h1 { pause: 20ms; } /* pause-before: 20ms; pause-after: 20ms */
11681166
h2 { pause: 30ms 40ms; } /* pause-before: 30ms; pause-after: 40ms */
1169-
h3 { pause-after: 10ms; } /* pause-before: <i>unspecified</i>; pause-after: 10ms */
1170-
</pre>
1167+
h3 { pause-after: 10ms; } /* pause-before: <i>unspecified</i>; pause-after: 10ms */</pre>
11711168
</div>
11721169

11731170
<h3 id=collapsing><span class=secno>5.3. </span>Collapsing pauses</h3>
@@ -1608,8 +1605,7 @@ <h3 id=cue-props-cue-before-after><span class=secno>7.1. </span>The
16081605
cue-after: url(../clips-2/pop.au) 6dB;
16091606
}
16101607

1611-
div.caution { cue-before: url(./audio/caution.wav) +8dB; }
1612-
</pre>
1608+
div.caution { cue-before: url(./audio/caution.wav) +8dB; }</pre>
16131609
</div>
16141610

16151611
<h3 id=cue-props-cue><span class=secno>7.2. </span>The &lsquo;<a
@@ -1681,8 +1677,7 @@ <h3 id=cue-props-cue><span class=secno>7.2. </span>The &lsquo;<a
16811677
h1
16821678
{
16831679
cue: url(pop.au);
1684-
}
1685-
</pre>
1680+
}</pre>
16861681
</div>
16871682

16881683
<h2 id=voice-char-props><span class=secno>8. </span>Voice characteristic
@@ -1702,9 +1697,9 @@ <h3 id=voice-props-voice-family><span class=secno>8.1. </span>The &lsquo;<a
17021697
<tr>
17031698
<td> <em>Value:</em>
17041699

1705-
<td> [[[&lt;name&gt; | [&lt;age&gt;? &lt;gender&gt;]] &lt;non-negative
1706-
number&gt;?],]* [[&lt;name&gt; | [&lt;age&gt;? &lt;gender&gt;]]
1707-
&lt;non-negative number&gt;?] | preserve | inherit
1700+
<td> [[&lt;name&gt; | [&lt;age&gt;? &lt;gender&gt; &lt;non-negative
1701+
number&gt;?]],]* [&lt;name&gt; | [&lt;age&gt;? &lt;gender&gt;
1702+
&lt;non-negative number&gt;?]] | preserve | inherit
17081703

17091704
<tr>
17101705
<td> <em>Initial:</em>
@@ -1756,11 +1751,51 @@ <h3 id=voice-props-voice-family><span class=secno>8.1. </span>The &lsquo;<a
17561751

17571752
<dd>
17581753
<p>Values are specific voice instances (e.g., Mike, comedian, mary,
1759-
carlos, "valley-girl"). For compatibility with SSML, voice names do not
1760-
contain whitespace characters, and any whitespace characters before or
1761-
after the voice name are ignored. Values can be quoted, and indeed must
1762-
be quoted if any of the words that make up the name does not conform to
1763-
the syntax rules for <a href="#identifier-def">identifiers</a>.</p>
1754+
carlos2, "valley girl"). Voice names must either be given quoted as <a
1755+
href="#strings-def">strings</a>, or unquoted as a sequence of one or
1756+
more <a href="#identifier-def">identifiers</a>.</p>
1757+
1758+
<p class=note>Note that as a result, most punctuation characters, or
1759+
digits at the start of each token, must be escaped in unquoted voice
1760+
names. For example, the following declarations are invalid:</p>
1761+
1762+
<div class=example>
1763+
<pre>
1764+
voice-family: john/doe; /* forward slash character should be escaped */
1765+
voice-family: john "doe"; /* identifier sequence cannot contain strings */
1766+
voice-family: john!; /* exclamation mark should be escaped */
1767+
voice-family: john@doe; /* "at" character should be escaped */
1768+
voice-family: #john; /* identifier cannot start with hash character */
1769+
voice-family: john 1st; /* identifier cannot start with digit */</pre>
1770+
</div>
1771+
1772+
<p> If a sequence of identifiers is given as a voice name, the computed
1773+
value is the name converted to a string by joining all the identifiers
1774+
in the sequence by single spaces.</p>
1775+
1776+
<p> Voice names that happen to be the same as the gender keywords
1777+
(&lsquo;<code class=property>male</code>&rsquo;, &lsquo;<code
1778+
class=property>female</code>&rsquo; and &lsquo;<code
1779+
class=property>neutral</code>&rsquo;) or that happen to match the
1780+
keywords &lsquo;<code class=property>inherit</code>&rsquo; or
1781+
&lsquo;<code class=property>preserve</code>&rsquo; must be quoted to
1782+
disambiguate with these keywords. The keywords &lsquo;<code
1783+
class=property>initial</code>&rsquo; and &lsquo;<code
1784+
class=property>default</code>&rsquo; are reserved for future use and
1785+
must also be quoted when used as voice names.</p>
1786+
1787+
<p class=note> Note that to avoid mistakes in escaping, it is recommended
1788+
to quote voice names that contain white space, digits, or punctuation
1789+
characters other than hyphens. For example:</p>
1790+
1791+
<div class=example>
1792+
<pre>
1793+
voice-family: "john doe", "Henry the-8th";</pre>
1794+
</div>
1795+
1796+
<p class=note> Note that in <a href="#SSML"
1797+
rel=biblioentry>[SSML]<!--{{!SSML}}--></a>, voice names are
1798+
space-separated and cannot contain whitespace characters.</p>
17641799

17651800
<dt> <strong>&lt;age&gt;</strong>
17661801

@@ -1780,8 +1815,7 @@ <h3 id=voice-props-voice-family><span class=secno>8.1. </span>The &lsquo;<a
17801815
<dt> <strong>&lt;non-negative number&gt;</strong>
17811816

17821817
<dd>
1783-
<p>Indicates a preferred variant (e.g. "the second male child voice" or
1784-
"the third voice named &lsquo;<code class=property>Mike</code>&rsquo;").
1818+
<p>Indicates a preferred variant (e.g. "the second male child voice").
17851819
Possible values are <a href="#non-negative-number-def">non-negative
17861820
numbers</a> restricted to integers, and excluding zero (i.e. starting
17871821
from 1). The value "1" refers to the first of all matching voices.</p>
@@ -1829,7 +1863,7 @@ <h4 class=no-toc id=voice-props-lang-handling><span class=secno>8.1.1.
18291863

18301864
<li> If several voices are available for the language of the selected
18311865
content, then the chosen voice is the one that most closely matches the
1832-
specified gender, age, and preferred voice index. The actual definition
1866+
specified gender, age, and preferred voice variant. The actual definition
18331867
of "best match" is processor-dependent.
18341868

18351869
<li> If no voice is available for the language of the selected content, it
@@ -1870,8 +1904,7 @@ <h4 class=no-toc id=voice-props-lang-handling><span class=secno>8.1.1.
18701904
than that corresponding to the class "romeo"
18711905
(which is inherited from the "p" parent element):
18721906
&lt;span style="voice-family: female;"&gt;Hello sir!&lt;/span&gt;
1873-
&lt;/p&gt;
1874-
</pre>
1907+
&lt;/p&gt;</pre>
18751908
</div>
18761909

18771910
<h3 id=voice-props-voice-rate><span class=secno>8.2. </span>The &lsquo;<a
@@ -2085,8 +2118,7 @@ <h3 id=voice-props-voice-pitch><span class=secno>8.3. </span>The &lsquo;<a
20852118
h2 { voice-pitch: +30Hz relative; }
20862119
h2 { voice-pitch: 30Hz relative; } /* identical to the line above */
20872120
h3 { voice-pitch: relative -2st; } /* the swapped keyword placement is a legal syntax */
2088-
h4 { voice-pitch: -2st; } /* Illegal syntax ! ("relative" keyword is missing) */
2089-
</pre>
2121+
h4 { voice-pitch: -2st; } /* Illegal syntax ! ("relative" keyword is missing) */</pre>
20902122
</div>
20912123

20922124
<h3 id=voice-props-voice-pitch-range><span class=secno>8.4. </span>The
@@ -2314,8 +2346,7 @@ <h3 id=voice-props-voice-pitch-range><span class=secno>8.4. </span>The
23142346

23152347
&lt;!-- The lines below demonstrate increasing levels of emphasis: --&gt;
23162348
&lt;p&gt;This is a &lt;span class="normal-emphasis"&gt;big&lt;/span&gt; car!&lt;/p&gt;
2317-
&lt;p&gt;This is a &lt;span class="huge-emphasis"&gt;big&lt;/span&gt; car!!!&lt;/p&gt;
2318-
</pre>
2349+
&lt;p&gt;This is a &lt;span class="huge-emphasis"&gt;big&lt;/span&gt; car!!!&lt;/p&gt;</pre>
23192350
</div>
23202351

23212352
<h2 id=duration-props><span class=secno>9. </span>Voice duration property</h2>
@@ -2431,7 +2462,9 @@ <h2 id=lists><span class=secno>10. </span>List items and counters styles</h2>
24312462
<p> For these list item styles, the user-agent defines (possibly based on
24322463
user preferences) what equivalent phrase is spoken or what audio cue is
24332464
played. List items with graphical bullets are therefore announced
2434-
appropriately in an implementation-dependent manner.</p>
2465+
appropriately in an implementation-dependent manner. For hierarchical
2466+
lists structures, it is recommended that user-agents announce the
2467+
nesting depth of list items.</p>
24352468

24362469
<dt> <strong>decimal, decimal-leading-zero, lower-roman, upper-roman,
24372470
georgian, armenian</strong>
@@ -2545,8 +2578,7 @@ <h2 id=content><span class=secno>12. </span>Inserted and replaced content</h2>
25452578
abbr { content: attr(title); }
25462579
...
25472580

2548-
&lt;abbr title="World Wide Web Consortium"&gt;W3C&lt;/abbr&gt;
2549-
</pre>
2581+
&lt;abbr title="World Wide Web Consortium"&gt;W3C&lt;/abbr&gt;</pre>
25502582
</div>
25512583

25522584
<p>In a similar way, text strings in a document can be replaced by a
@@ -2563,8 +2595,7 @@ <h2 id=content><span class=secno>12. </span>Inserted and replaced content</h2>
25632595

25642596
&lt;div class="hamlet"&gt;
25652597
To be, or not to be: that is the question:
2566-
&lt;/div&gt;
2567-
</pre>
2598+
&lt;/div&gt;</pre>
25682599
</div>
25692600

25702601
<p>Furthermore, authors (or users via a user stylesheet) may add some
@@ -2586,8 +2617,7 @@ <h2 id=content><span class=secno>12. </span>Inserted and replaced content</h2>
25862617
<pre>
25872618
ul::before { content: "Start list: "; }
25882619
ul::after { content: "List end. "; }
2589-
li::before { content: "List item: "; }
2590-
</pre>
2620+
li::before { content: "List item: "; }</pre>
25912621
</div>
25922622

25932623
<p>Detailed information can be found in the CSS3 Generated and Replaced
@@ -2823,9 +2853,9 @@ <h2 class=no-num id=property-index>Appendix A &mdash; Property index</h2>
28232853
<tr>
28242854
<td><a class=property href="#voice-family">voice-family</a>
28252855

2826-
<td>[[[&lt;name&gt; | [&lt;age&gt;? &lt;gender&gt;]] &lt;non-negative
2827-
number&gt;?],]* [[&lt;name&gt; | [&lt;age&gt;? &lt;gender&gt;]]
2828-
&lt;non-negative number&gt;?] | preserve | inherit
2856+
<td>[[&lt;name&gt; | [&lt;age&gt;? &lt;gender&gt; &lt;non-negative
2857+
number&gt;?]],]* [&lt;name&gt; | [&lt;age&gt;? &lt;gender&gt;
2858+
&lt;non-negative number&gt;?]] | preserve | inherit
28292859

28302860
<td>implementation-dependent
28312861

@@ -3001,6 +3031,11 @@ <h2 class=no-num id=property-index>Appendix A &mdash; Property index</h2>
30013031
href="http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier">
30023032
identifier </a></dfn> &nbsp;&nbsp; <a href="#CSS21"
30033033
rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>
3034+
3035+
<li> <dfn id=strings-def> <a
3036+
href="http://www.w3.org/TR/CSS21/syndata.html#strings"> strings
3037+
</a></dfn> &nbsp;&nbsp; <a href="#CSS21"
3038+
rel=biblioentry>[CSS21]<!--{{!CSS21}}--></a>
30043039
</ul>
30053040

30063041
<h2 class=no-num id=index>Appendix B &mdash; Index</h2>
@@ -3083,6 +3118,8 @@ <h2 class=no-num id=index>Appendix B &mdash; Index</h2>
30833118
<li>speak-as, <a href="#speak-as" title=speak-as><strong>4.2.</strong></a>
30843119

30853120

3121+
<li>strings, <a href="#strings-def" title=strings><strong>#</strong></a>
3122+
30863123
<li>style sheet, <a href="#style-sheet" title="style
30873124
sheet"><strong>#</strong></a>
30883125
<ul>
@@ -3375,6 +3412,10 @@ <h2 class=no-num id=changes>Appendix D &mdash; Changes from previous draft</h2>
33753412
class=property>voice-family</code></a>&rsquo; selection algorithm to
33763413
cater for language changes.
33773414

3415+
<li>Enabled voice-family names to contain spaces, matching &lsquo;<code
3416+
class=property>font-family</code>&rsquo; syntax which is based on quoted
3417+
strings and concatenated identifiers.
3418+
33783419
<li>Added a new section to define the relationship of this specification
33793420
with CSS2.1.
33803421

0 commit comments

Comments
 (0)