Contents
This chapter is informative. UAs are not required to implement the
properties of this chapter in order to conform to CSS 2.1.


We expect that in a future level of CSS there will be new
properties and values defined for speech output. Therefore
CSS ;2.1 reserves the 'speech' media type (see <a href="media.html"="">chapter 7, "Media types"</a>), but does not yet
define which properties do or do not apply to it.


The properties in this appendix apply to a media type 'aural', that
was introduced in CSS2. The type 'aural' is now deprecated.


This means that a style sheet such as



@media speech {
 body { voice-family: Paul }
}

is valid, but that its meaning is not defined by CSS ;2.1,
while



@media aural {
 body { voice-family: Paul }
}

is deprecated, but defined by this appendix.

The aural rendering of a document, already commonly used by the
blind and print-impaired communities, combines speech synthesis and
<a name="x0"=""><span class="index-def" title="auditory icon"="">"auditory icons."</span></a> Often
such aural presentation occurs by converting the document to plain
text and feeding this to a <a name="x1"=""><span class="index-def" title="screen
reader"=""><dfn="">screen reader</dfn></span></a> -- software or hardware that
simply reads all the characters on the screen. This results in less
effective presentation than would be the case if the document
structure were retained. Style sheet properties for aural presentation
may be used together with visual properties (mixed media) or as an
aural alternative to visual presentation.


Besides the obvious accessibility advantages, there are other large
markets for listening to information, including in-car use, industrial
and medical documentation systems (intranets), home entertainment, and
to help users learning to read or who have difficulty reading.


When using aural properties, the <a name="x2"=""><span class="index-inst" title="canvas"="">canvas</span></a> consists of a three-dimensional physical
space (sound surrounds) and a temporal space (one may specify sounds
before, during, and after other sounds). The CSS properties also
allow authors to vary the quality of synthesized speech (voice type,
frequency, inflection, etc.).



h1, h2, h3, h4, h5, h6 {
 voice-family: paul;
 stress: 20;
 richness: 90;
 cue-before: url("ping.au")
}
p.heidi { azimuth: center-left }
p.peter { azimuth: right }
p.goat { volume: x-soft }

This will direct the speech synthesizer to speak headers in a voice
(a kind of "audio font") called "paul", on a flat tone, but in a very
rich voice. Before speaking the headers, a sound sample will be played
from the given URL. Paragraphs with class "heidi" will appear to come
from front left (if the sound system is capable of spatial audio), and
paragraphs of class "peter" from the right. Paragraphs with class
"goat" will be very soft.

Angle values are denoted by <span class="index-def" title="<;angle>;::definition of"=""><a name="value-def-angle"=""><;angle>;</a></span> in the text.
Their format is a <span class="index-inst" title="<;number>;"=""><a name="x4" href="syndata.html#value-def-number" class="noxref"=""><span class="value-inst-number"=""><;number>;</span></a></span> immediately
followed by an angle unit identifier.


Angle unit identifiers are:
Angle values may be negative. They should be normalized to the
range 0-360deg by the user agent. For example, -10deg and 350deg are
equivalent.


For example, a right angle is '90deg' or '100grad' or
'1.570796326794897rad'.


Like for <;length>;, the unit may be omitted, if the value is
zero: '0deg' may be written as '0'.


Time values are denoted by <span class="index-def" title="<;time>;::definition of"=""><a name="value-def-time"=""><;time>;</a></span> in the
text.
Their format is a <span class="index-inst" title="<;number>;"=""><a name="x6" href="syndata.html#value-def-number" class="noxref"=""><span class="value-inst-number"=""><;number>;</span></a></span> immediately
followed by a time unit identifier.


Time unit identifiers are:
Time values may not be negative.


Like for <;length>;, the unit may be omitted, if the value is
zero: '0s' may be written as '0'.


Frequency values are denoted by <span class="index-def" title="<;frequency>;::definition of"=""><a name="value-def-frequency"=""><;frequency>;</a></span> in the text.
Their format is a <span class="index-inst" title="<;number>;"=""><a name="x8" href="syndata.html#value-def-number" class="noxref"=""><span class="value-inst-number"=""><;number>;</span></a></span> immediately
followed by a frequency unit identifier.


Frequency unit identifiers are:
Frequency values may not be negative.


For example, 200Hz (or 200hz) is a bass sound, and 6kHz
is a treble sound.


Like for <;length>;, the unit may be omitted, if the value is
zero: '0Hz' may be written as '0'.


<em="">Value:</em> ; ; | <a href="syndata.html#value-def-number" class="noxref"=""><span class="value-inst-number"=""><;number>;</span></a> | <a href="syndata.html#value-def-percentage" class="noxref"=""><span class="value-inst-percentage"=""><;percentage>;</span></a> | silent | x-soft | soft | medium | loud |
x-loud | <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | medium
 |
<em="">Applies to:</em> ; ; | all elements
 |
<em="">Inherited:</em> ; ; | yes
 |
<em="">Percentages:</em> ; ; | refer to inherited value
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | number
 |
<a name="x10"=""><span class="index-def" title="volume"="">Volume</span></a> refers to the
median volume of the waveform. In other words, a highly inflected
voice at a volume of 50 might peak well above that. The overall values
are likely to be human adjustable for comfort, for example with a
physical volume control (which would increase both the 0 and 100
values proportionately); what this property does is adjust the dynamic
range.



Values have the following meanings:
User agents should allow the values corresponding to '0' and '100'
to be set by the listener. No one setting is universally applicable;
suitable values depend on the equipment in use (speakers, headphones),
the environment (in car, home theater, library) and personal
preferences. Some examples:
The same author style sheet could be used in all cases, simply by
mapping the '0' and '100' points suitably at the client side.


<em="">Value:</em> ; ; | normal | none | spell-out | <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | normal
 |
<em="">Applies to:</em> ; ; | all elements
 |
<em="">Inherited:</em> ; ; | yes
 |
<em="">Percentages:</em> ; ; | N/A
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | as specified
 |
This property specifies whether text will be rendered aurally and
if so, in what manner. The possible values are:


Note the difference between an element whose <a href="aural.html#propdef-volume" class="noxref"=""><span class="propinst-volume"="">'volume'</span></a> property has a value of
'silent' and an element whose <a href="aural.html#propdef-speak" class="noxref"=""><span class="propinst-speak"="">'speak'</span></a> 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. The
latter requires no time and is not rendered (though its descendants
may be).


<em="">Value:</em> ; ; | <a href="aural.html#value-def-time" class="noxref"=""><span class="value-inst-time"=""><;time>;</span></a> | <a href="syndata.html#value-def-percentage" class="noxref"=""><span class="value-inst-percentage"=""><;percentage>;</span></a> | <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | 0
 |
<em="">Applies to:</em> ; ; | all elements
 |
<em="">Inherited:</em> ; ; | no
 |
<em="">Percentages:</em> ; ; | see prose
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | time
 |
<em="">Value:</em> ; ; | <a href="aural.html#value-def-time" class="noxref"=""><span class="value-inst-time"=""><;time>;</span></a> | <a href="syndata.html#value-def-percentage" class="noxref"=""><span class="value-inst-percentage"=""><;percentage>;</span></a> | <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | 0
 |
<em="">Applies to:</em> ; ; | all elements
 |
<em="">Inherited:</em> ; ; | no
 |
<em="">Percentages:</em> ; ; | see prose
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | time;;
 |
These properties specify a pause to be observed before (or after)
speaking an element's content. Values have the following
meanings:
<strong="">Note.</strong> In CSS3 pauses are inserted
around the cues and content rather than between them. See
<a href="refs.html#ref-CSS3SPEECH" rel="biblioentry" class="noxref"=""><span class="informref"="">[CSS3SPEECH]</span></a> for details.


The pause is inserted between the element's content and any <a href="aural.html#propdef-cue-before" class="noxref"=""><span class="propinst-cue-before"="">'cue-before'</span></a> or <a href="aural.html#propdef-cue-after" class="noxref"=""><span class="propinst-cue-after"="">'cue-after'</span></a> content.


Authors should use relative units to create more robust style
sheets in the face of large changes in speech-rate.
<em="">Value:</em> ; ; | [ [<a href="aural.html#value-def-time" class="noxref"=""><span class="value-inst-time"=""><;time>;</span></a> | <a href="syndata.html#value-def-percentage" class="noxref"=""><span class="value-inst-percentage"=""><;percentage>;</span></a>]{1,2} ] | <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | see individual properties
 |
<em="">Applies to:</em> ; ; | all elements
 |
<em="">Inherited:</em> ; ; | no
 |
<em="">Percentages:</em> ; ; | see descriptions of 'pause-before' and 'pause-after'
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | see individual properties
 |
The <a href="aural.html#propdef-pause" class="noxref"=""><span class="propinst-pause"="">'pause'</span></a> property is a
shorthand for setting <a href="aural.html#propdef-pause-before" class="noxref"=""><span class="propinst-pause-before"="">'pause-before'</span></a> and <a href="aural.html#propdef-pause-after" class="noxref"=""><span class="propinst-pause-after"="">'pause-after'</span></a>. If two values are
given, the first value is <a href="aural.html#propdef-pause-before" class="noxref"=""><span class="propinst-pause-before"="">'pause-before'</span></a> and the second is
<a href="aural.html#propdef-pause-after" class="noxref"=""><span class="propinst-pause-after"="">'pause-after'</span></a>. If only one
value is given, it applies to both properties.



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 unspecified; pause-after: 10ms */

<em="">Value:</em> ; ; | <a href="syndata.html#value-def-uri" class="noxref"=""><span class="value-inst-uri"=""><;uri>;</span></a> | none | <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | none
 |
<em="">Applies to:</em> ; ; | all elements
 |
<em="">Inherited:</em> ; ; | no
 |
<em="">Percentages:</em> ; ; | N/A
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | absolute URI or 'none'
 |
<em="">Value:</em> ; ; | <a href="syndata.html#value-def-uri" class="noxref"=""><span class="value-inst-uri"=""><;uri>;</span></a> | none | <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | none
 |
<em="">Applies to:</em> ; ; | all elements
 |
<em="">Inherited:</em> ; ; | no
 |
<em="">Percentages:</em> ; ; | N/A
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | absolute URI or 'none'
 |
Auditory icons are another way to distinguish semantic
elements. Sounds may be played before and/or after the element to
delimit it. Values have the following meanings:

a {cue-before: url("bell.aiff"); cue-after: url("dong.wav") }
h1 {cue-before: url("pop.au"); cue-after: url("pop.au") }

<em="">Value:</em> ; ; | [ <a href="aural.html#propdef-cue-before" class="noxref"=""><span class="propinst-cue-before"=""><;'cue-before'>;</span></a> || <a href="aural.html#propdef-cue-after" class="noxref"=""><span class="propinst-cue-after"=""><;'cue-after'>;</span></a> ] | <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | see individual properties
 |
<em="">Applies to:</em> ; ; | all elements
 |
<em="">Inherited:</em> ; ; | no
 |
<em="">Percentages:</em> ; ; | N/A
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | see individual properties
 |
The <a href="aural.html#propdef-cue" class="noxref"=""><span class="propinst-cue"="">'cue'</span></a> property is a shorthand
for setting <a href="aural.html#propdef-cue-before" class="noxref"=""><span class="propinst-cue-before"="">'cue-before'</span></a>
and <a href="aural.html#propdef-cue-after" class="noxref"=""><span class="propinst-cue-after"="">'cue-after'</span></a>. If two
values are given, the first value is <a href="aural.html#propdef-cue-before" class="noxref"=""><span class="propinst-cue-before"="">'cue-before'</span></a> and the second is
<a href="aural.html#propdef-cue-after" class="noxref"=""><span class="propinst-cue-after"="">'cue-after'</span></a>. If only one
value is given, it applies to both properties.

The following two rules are equivalent:


h1 {cue-before: url("pop.au"); cue-after: url("pop.au") }
h1 {cue: url("pop.au") }

If a user agent cannot render an auditory icon (e.g., the user's
environment does not permit it), we recommend that it produce an
alternative cue.


Please see the sections on <a href="generate.html#before-after-content"=""> the :before and :after
pseudo-elements</a> for information on other content generation
techniques. 'Cue-before' sounds and 'pause-before' gaps are inserted
before content from the ':before' pseudo-element. Similarly,
'pause-after' gaps and 'cue-after' sounds are inserted after content
from the ':after' pseudo-element.


<em="">Value:</em> ; ; | <a href="syndata.html#value-def-uri" class="noxref"=""><span class="value-inst-uri"=""><;uri>;</span></a> [ mix || repeat ]? | auto | none | <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | auto
 |
<em="">Applies to:</em> ; ; | all elements
 |
<em="">Inherited:</em> ; ; | no
 |
<em="">Percentages:</em> ; ; | N/A
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | absolute URI, rest as specified
 |
Similar to the <a href="aural.html#propdef-cue-before" class="noxref"=""><span class="propinst-cue-before"="">'cue-before'</span></a> and <a href="aural.html#propdef-cue-after" class="noxref"=""><span class="propinst-cue-after"="">'cue-after'</span></a> properties, this
property specifies a sound to be played as a background
while an element's content is spoken.
Values have the following meanings:

blockquote.sad { play-during: url("violins.aiff") }
blockquote Q { play-during: url("harp.wav") mix }
span.quiet { play-during: none }

Spatial audio is an important stylistic property for aural
presentation. It provides a natural way to tell several voices apart,
as in real life (people rarely all stand in the same spot in a
room). Stereo speakers produce a lateral sound stage. Binaural
headphones or the increasingly popular 5-speaker home theater setups
can generate full surround sound, and multi-speaker setups can create
a true three-dimensional sound stage. VRML 2.0 also includes spatial
audio, which implies that in time consumer-priced spatial audio
hardware will become more widely available.
<em="">Value:</em> ; ; | <a href="aural.html#value-def-angle" class="noxref"=""><span class="value-inst-angle"=""><;angle>;</span></a> | [[ left-side | far-left | left | center-left | center |
center-right | right | far-right | right-side ] || behind ] |
leftwards | rightwards | <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | center
 |
<em="">Applies to:</em> ; ; | all elements
 |
<em="">Inherited:</em> ; ; | yes
 |
<em="">Percentages:</em> ; ; | N/A
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | normalized angle
 |
Values have the following meanings:
This property is most likely to be implemented by mixing the same
signal into different channels at differing volumes. It might also
use phase shifting, digital delay, and other such techniques to
provide the illusion of a sound stage. The precise means used to
achieve this effect and the number of speakers used to do so are
user agent-dependent; this property merely identifies the desired end
result.



h1 { azimuth: 30deg }
td.a { azimuth: far-right } /* 60deg */
#12 { azimuth: behind far-right } /* 120deg */
p.comment { azimuth: behind } /* 180deg */

If spatial-azimuth is specified and the output device cannot
produce sounds <em="">behind</em> the listening position, user agents
should convert values in the rearwards hemisphere to forwards
hemisphere values. One method is as follows:
<em="">Value:</em> ; ; | <a href="aural.html#value-def-angle" class="noxref"=""><span class="value-inst-angle"=""><;angle>;</span></a> | below | level | above | higher | lower | <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | level
 |
<em="">Applies to:</em> ; ; | all elements
 |
<em="">Inherited:</em> ; ; | yes
 |
<em="">Percentages:</em> ; ; | N/A
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | normalized angle
 |
Values of this property have the following meanings:
The precise means used to achieve this effect and the
number of speakers used to do so are undefined. This property merely
identifies the desired end result.



h1 { elevation: above }
tr.a { elevation: 60deg }
tr.b { elevation: 30deg }
tr.c { elevation: level }

<em="">Value:</em> ; ; | <a href="syndata.html#value-def-number" class="noxref"=""><span class="value-inst-number"=""><;number>;</span></a> | x-slow | slow | medium | fast | x-fast | faster | slower
| <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | medium
 |
<em="">Applies to:</em> ; ; | all elements
 |
<em="">Inherited:</em> ; ; | yes
 |
<em="">Percentages:</em> ; ; | N/A
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | number
 |
This property specifies the speaking rate. Note that both absolute
and relative keyword values are allowed (compare with <a href="fonts.html#propdef-font-size" class="noxref"=""><span class="propinst-font-size"="">'font-size'</span></a>). Values have
the following meanings:
<em="">Value:</em> ; ; | [[<a href="aural.html#value-def-specific-voice" class="noxref"=""><span class="value-inst-specific-voice"=""><;specific-voice>;</span></a> | <a href="aural.html#value-def-generic-voice" class="noxref"=""><span class="value-inst-generic-voice"=""><;generic-voice>;</span></a> ],]* [<a href="aural.html#value-def-specific-voice" class="noxref"=""><span class="value-inst-specific-voice"=""><;specific-voice>;</span></a> |
<a href="aural.html#value-def-generic-voice" class="noxref"=""><span class="value-inst-generic-voice"=""><;generic-voice>;</span></a> ] | <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | depends on user agent
 |
<em="">Applies to:</em> ; ; | all elements
 |
<em="">Inherited:</em> ; ; | yes
 |
<em="">Percentages:</em> ; ; | N/A
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | as specified
 |
The value is a comma-separated, prioritized list of voice family
names (compare with <a href="fonts.html#propdef-font-family" class="noxref"=""><span class="propinst-font-family"="">'font-family'</span></a>). Values have the
following meanings:

h1 { voice-family: announcer, male }
p.part.romeo { voice-family: romeo, male }
p.part.juliet { voice-family: juliet, female }

Names of specific voices may 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="syndata.html#tokenization"="">identifiers</a>. It is also
recommended to quote specific voices with a name consisting of more
than one word. If quoting is omitted, any <a href="syndata.html#whitespace"="">white space</a> characters before and
after the voice family name are ignored and any sequence of white space
characters inside the voice family name is converted to a single space.


<em="">Value:</em> ; ; | <a href="aural.html#value-def-frequency" class="noxref"=""><span class="value-inst-frequency"=""><;frequency>;</span></a> | x-low | low | medium | high | x-high | <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | medium
 |
<em="">Applies to:</em> ; ; | all elements
 |
<em="">Inherited:</em> ; ; | yes
 |
<em="">Percentages:</em> ; ; | N/A
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | frequency
 |
Specifies the average pitch (a frequency) of the speaking voice. The
average pitch of a voice depends on the voice family. For example,
the average pitch for a standard male voice is around 120Hz,
but for a female voice, it's around 210Hz.
Values have the following meanings:
<em="">Value:</em> ; ; | <a href="syndata.html#value-def-number" class="noxref"=""><span class="value-inst-number"=""><;number>;</span></a> | <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | 50
 |
<em="">Applies to:</em> ; ; | all elements
 |
<em="">Inherited:</em> ; ; | yes
 |
<em="">Percentages:</em> ; ; | N/A
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | as specified
 |
Specifies variation in average pitch. The perceived pitch of a
human voice is determined by the fundamental frequency and typically
has a value of 120Hz for a male voice and 210Hz for a female voice.
Human languages are spoken with varying inflection and pitch; these
variations convey additional meaning and emphasis. Thus, a highly
animated voice, i.e., one that is heavily inflected, displays a high
pitch range. This property specifies the range over which these
variations occur, i.e., how much the fundamental frequency may deviate
from the average pitch.


Values have the following meanings:
<em="">Value:</em> ; ; | <a href="syndata.html#value-def-number" class="noxref"=""><span class="value-inst-number"=""><;number>;</span></a> | <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | 50
 |
<em="">Applies to:</em> ; ; | all elements
 |
<em="">Inherited:</em> ; ; | yes
 |
<em="">Percentages:</em> ; ; | N/A
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | as specified
 |
Specifies the height of "local peaks" in the intonation contour
of a voice. For example, English is a <strong="">stressed</strong>
language, and different parts of a sentence are assigned primary,
secondary, or tertiary stress. The value of <a href="aural.html#propdef-stress" class="noxref"=""><span class="propinst-stress"="">'stress'</span></a> controls the amount of
inflection that results from these stress markers. This property is a
companion to the <a href="aural.html#propdef-pitch-range" class="noxref"=""><span class="propinst-pitch-range"="">'pitch-range'</span></a> property and is
provided to allow developers to exploit higher-end auditory displays.


Values have the following meanings:
<em="">Value:</em> ; ; | <a href="syndata.html#value-def-number" class="noxref"=""><span class="value-inst-number"=""><;number>;</span></a> | <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | 50
 |
<em="">Applies to:</em> ; ; | all elements
 |
<em="">Inherited:</em> ; ; | yes
 |
<em="">Percentages:</em> ; ; | N/A
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | as specified
 |
Specifies the richness, or brightness, of the speaking voice. A
rich voice will "carry" in a large room, a smooth voice will not.
(The term "smooth" refers to how the wave form looks when drawn.)


Values have the following meanings:
An additional speech property, <a href="aural.html#propdef-speak-header" class="noxref"=""><span class="propinst-speak-header"="">'speak-header'</span></a>, is
described below.


<em="">Value:</em> ; ; | code | none | <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | none
 |
<em="">Applies to:</em> ; ; | all elements
 |
<em="">Inherited:</em> ; ; | yes
 |
<em="">Percentages:</em> ; ; | N/A
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | as specified
 |
This property specifies how punctuation is spoken. Values have the
following meanings:
<em="">Value:</em> ; ; | digits | continuous | <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | continuous
 |
<em="">Applies to:</em> ; ; | all elements
 |
<em="">Inherited:</em> ; ; | yes
 |
<em="">Percentages:</em> ; ; | N/A
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | as specified
 |
This property controls how numerals are spoken. Values have the
following meanings:
When a table is spoken by a speech generator, the relation between
the data cells and the header cells must be expressed in a different
way than by horizontal and vertical alignment. Some speech browsers
may allow a user to move around in the 2-dimensional space, thus
giving them the opportunity to map out the spatially represented
relations. When that is not possible, the style sheet must specify at
which points the headers are spoken.
<em="">Value:</em> ; ; | once | always | <a href="cascade.html#value-def-inherit" class="noxref"=""><span class="value-inst-inherit"="">inherit</span></a>
 |
<em="">Initial:</em> ; ; | once
 |
<em="">Applies to:</em> ; ; | elements that have table header information
 |
<em="">Inherited:</em> ; ; | yes
 |
<em="">Percentages:</em> ; ; | N/A
 |
<em="">Media:</em> ; ; | aural |
<em="">Computed ;value:</em> ; ; | as specified
 |
This property specifies whether table headers
are spoken before every
cell, or only before a cell when that cell is associated with a
different header than the previous cell. Values have
the following meanings:
Each document language may have different mechanisms that allow
authors to specify headers. For example, in HTML 4 (<a href="refs.html#ref-HTML4" rel="biblioentry" class="noxref"=""><span class="normref"="">[HTML4]</span></a>),
it is possible to specify header information with three different
attributes ("headers", "scope", and "axis"), and the specification
gives an algorithm for determining header information when these
attributes have not been specified.
 ; ; ;<a name="img-table1" href="/wg_8714b7f1589aa0f6c92979708057c4a57/en/es/www.w3.org/images/longdesc/table1-desc.html" title="Long description of example illustrating a table of
travel expenses"="">[D]</a>
This HTML example presents the money spent on meals, hotels and
transport in two locations (San Jose and Seattle) for successive
days. Conceptually, you can think of the table in terms of an
n-dimensional space. The headers of this space are: location, day,
category and subtotal. Some cells define marks along an axis while
others give money spent at points within this space. The markup
for this table is:

<;TABLE>;
<;CAPTION>;Travel Expense Report<;/CAPTION>;
<;TR>;
 <;TH>;<;/TH>;
 <;TH>;Meals<;/TH>;
 <;TH>;Hotels<;/TH>;
 <;TH>;Transport<;/TH>;
 <;TH>;subtotal<;/TH>;
<;/TR>;
<;TR>;
 <;TH id="san-jose" axis="san-jose">;San Jose<;/TH>;
<;/TR>;
<;TR>;
 <;TH headers="san-jose">;25-Aug-97<;/TH>;
 <;TD>;37.74<;/TD>;
 <;TD>;112.00<;/TD>;
 <;TD>;45.00<;/TD>;
 <;TD>;<;/TD>;
<;/TR>;
<;TR>;
 <;TH headers="san-jose">;26-Aug-97<;/TH>;
 <;TD>;27.28<;/TD>;
 <;TD>;112.00<;/TD>;
 <;TD>;45.00<;/TD>;
 <;TD>;<;/TD>;
<;/TR>;
<;TR>;
 <;TH headers="san-jose">;subtotal<;/TH>;
 <;TD>;65.02<;/TD>;
 <;TD>;224.00<;/TD>;
 <;TD>;90.00<;/TD>;
 <;TD>;379.02<;/TD>;
<;/TR>;
<;TR>;
 <;TH id="seattle" axis="seattle">;Seattle<;/TH>;
<;/TR>;
<;TR>;
 <;TH headers="seattle">;27-Aug-97<;/TH>;
 <;TD>;96.25<;/TD>;
 <;TD>;109.00<;/TD>;
 <;TD>;36.00<;/TD>;
 <;TD>;<;/TD>;
<;/TR>;
<;TR>;
 <;TH headers="seattle">;28-Aug-97<;/TH>;
 <;TD>;35.00<;/TD>;
 <;TD>;109.00<;/TD>;
 <;TD>;36.00<;/TD>;
 <;TD>;<;/TD>;
<;/TR>;
<;TR>;
 <;TH headers="seattle">;subtotal<;/TH>;
 <;TD>;131.25<;/TD>;
 <;TD>;218.00<;/TD>;
 <;TD>;72.00<;/TD>;
 <;TD>;421.25<;/TD>;
<;/TR>;
<;TR>;
 <;TH>;Totals<;/TH>;
 <;TD>;196.27<;/TD>;
 <;TD>;442.00<;/TD>;
 <;TD>;162.00<;/TD>;
 <;TD>;800.27<;/TD>;
<;/TR>;
<;/TABLE>;

By providing the data model in this way, authors make it
possible for speech enabled-browsers to explore the table in
rich ways, e.g., each cell could be spoken as a list, repeating the
applicable headers before each data cell:

 San Jose, 25-Aug-97, Meals: 37.74
 San Jose, 25-Aug-97, Hotels: 112.00
 San Jose, 25-Aug-97, Transport: 45.00
 ...

The browser could also speak the headers only when they change:

San Jose, 25-Aug-97, Meals: 37.74
 Hotels: 112.00
 Transport: 45.00
 26-Aug-97, Meals: 27.28
 Hotels: 112.00
...

This style sheet describes a possible rendering of HTML 4:



@media aural {
h1, h2, h3, 
h4, h5, h6 { voice-family: paul, male; stress: 20; richness: 90 }
h1 { pitch: x-low; pitch-range: 90 }
h2 { pitch: x-low; pitch-range: 80 }
h3 { pitch: low; pitch-range: 70 }
h4 { pitch: medium; pitch-range: 60 }
h5 { pitch: medium; pitch-range: 50 }
h6 { pitch: medium; pitch-range: 40 }
li, dt, dd { pitch: medium; richness: 60 }
dt { stress: 80 }
pre, code, tt { pitch: medium; pitch-range: 0; stress: 0; richness: 80 }
em { pitch: medium; pitch-range: 60; stress: 60; richness: 50 }
strong { pitch: medium; pitch-range: 60; stress: 90; richness: 90 }
dfn { pitch: high; pitch-range: 60; stress: 60 }
s, strike { richness: 0 }
i { pitch: medium; pitch-range: 60; stress: 60; richness: 50 }
b { pitch: medium; pitch-range: 60; stress: 90; richness: 90 }
u { richness: 0 }
a:link { voice-family: harry, male }
a:visited { voice-family: betty, female }
a:active { voice-family: betty, female; pitch-range: 80; pitch: x-high }
}

For information, here is the list of properties implemented by
Emacspeak, a speech subsystem for the Emacs editor.


(We thank T. V. Raman for the information about implementation
status of aural properties.)