부록 A. 청각 스타일 시트

목차

이 장은 참고용입니다. UA는 CSS 2.2에 적합하도록 이 장의 속성을 구현할 필요는 없습니다.

A.1 미디어 유형 'aural'과 'speech'

CSS의 미래 버전에서는 음성 출력에 대해 새로운 속성과 값이 정의될 것으로 예상됩니다. 따라서 CSS 2.2는 'speech' 미디어 유형을 예약하지만 ( 7장, "미디어 유형" 참조), 여전히 어떤 속성이 이에 적용되는지 정의하지 않습니다.

이 부록의 속성은 CSS2에 도입된 'aural'이라는 미디어 유형에 적용됩니다. 'aural' 유형은 이제 더 이상 권장되지 않습니다.

이는 다음과 같은 스타일 시트가

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

유효하지만 그 의미는 CSS 2.2에서 정의되지 않는 반면,

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

더 이상 권장되지 않지만, 이 부록에서 정의됩니다.

A.2 청각 스타일 시트 소개

문서의 청각 렌더링은 이미 시각 장애인과 읽기 장애 커뮤니티에서 일반적으로 사용되며, 음성 합성과 "청각 아이콘"을 결합합니다. 종종 이러한 청각 프레젠테이션은 문서를 일반 텍스트로 변환하고 이를 스크린 리더 (화면의 모든 문자를 단순히 읽는 소프트웨어 또는 하드웨어)에 제공하여 이루어집니다. 이로 인해 문서 구조가 유지되는 경우보다 덜 효과적인 프레젠테이션이 이루어집니다. 청각 프레젠테이션을 위한 스타일 시트 속성은 시각적 속성과 함께 사용(혼합 미디어)되거나 시각적 프레젠테이션의 청각 대안으로 사용할 수 있습니다.

명백한 접근성 이점 외에도, 정보 청취를 위한 다른 큰 시장이 있습니다. 예를 들어 차량 내 사용, 산업 및 의료 문서화 시스템(인트라넷), 홈 엔터테인먼트, 그리고 읽기를 배우거나 읽기에 어려움을 겪는 사용자를 돕는 경우 등이 포함됩니다.

청각 속성을 사용할 때, 캔버스는 3차원 물리적 공간(사운드 서라운드)과 시간적 공간(다른 소리 전에, 중간에, 그리고 후에 소리를 지정할 수 있음)으로 구성됩니다. CSS 속성은 또한 작성자가 합성된 음성의 품질(음성 유형, 주파수, 억양 등)을 다양하게 설정할 수 있도록 합니다.

예제:

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 }

이는 음성 합성기가 "paul"이라는 이름의 목소리(일종의 "오디오 글꼴")로 헤더를 읽도록 지시하며, 평평한 톤으로 하지만 매우 풍부한 목소리로 읽도록 지시합니다. 헤더를 읽기 전에 주어진 URL에서 사운드 샘플이 재생됩니다. 클래스가 "heidi"인 단락은 (사운드 시스템이 공간 오디오를 지원하는 경우) 왼쪽 앞에서 나오는 것처럼 보이며, "peter" 클래스는 오른쪽에서 나오는 것처럼 보입니다. "goat" 클래스의 단락은 매우 조용하게 들립니다.

A.2.1 각도

각도 값은 텍스트에서 <angle>로 표시됩니다. 형식은 <number> 뒤에 각도 단위 식별자가 바로 따라옵니다.

각도 단위 식별자는 다음과 같습니다:

각도 값은 음수가 될 수 있습니다. 사용자 에이전트는 이를 0-360deg 범위로 정규화해야 합니다. 예를 들어, -10deg와 350deg는 동일합니다.

예를 들어, 직각은 '90deg', '100grad', 또는 '1.570796326794897rad'로 나타낼 수 있습니다.

<length>와 마찬가지로, 값이 0인 경우 단위를 생략할 수 있습니다: '0deg'는 '0'으로 작성할 수 있습니다.

A.2.2 시간

시간 값은 텍스트에서 <time>로 표시됩니다. 형식은 <number> 뒤에 시간 단위 식별자가 바로 따라옵니다.

시간 단위 식별자는 다음과 같습니다:

시간 값은 음수가 될 수 없습니다.

<length>와 마찬가지로, 값이 0인 경우 단위를 생략할 수 있습니다: '0s'는 '0'으로 작성할 수 있습니다.

A.2.3 주파수

주파수 값은 텍스트에서 <frequency>로 표시됩니다. 형식은 <number> 뒤에 주파수 단위 식별자가 바로 따라옵니다.

주파수 단위 식별자는 다음과 같습니다:

주파수 값은 음수가 될 수 없습니다.

예를 들어, 200Hz (또는 200hz)는 저음이며, 6kHz는 고음입니다.

<length>와 마찬가지로, 값이 0인 경우 단위를 생략할 수 있습니다: '0Hz'는 '0'으로 작성할 수 있습니다.

A.3 볼륨 속성: 'volume'

이름: volume
값: <number> | <percentage> | silent | x-soft | soft | medium | loud | x-loud | inherit
초기값: medium
적용 대상: 모든 요소
상속됨:
백분율: 상속된 값 참조
미디어: aural
계산값: 숫자

볼륨은 파형의 중간 볼륨을 나타냅니다. 즉, 50의 볼륨에서 강하게 변조된 음성은 훨씬 높은 피크에 도달할 수 있습니다. 전체 값은 편안함을 위해 사용자에 의해 조정될 가능성이 높습니다. 예를 들어 물리적 볼륨 컨트롤로 0과 100 값을 비례적으로 증가시키는 것처럼, 이 속성은 동적 범위를 조정합니다.

값의 의미는 다음과 같습니다:

<number>
'0'에서 '100' 사이의 숫자. '0'은 최소로 들을 수 있는 볼륨 수준을 나타내고, '100'은 최대의 편안한 수준에 해당합니다.
<percentage>
백분율 값은 상속된 값을 기준으로 계산되며, '0'에서 '100' 범위로 제한됩니다.
silent
소리가 전혀 없습니다. 값 '0'은 'silent'와 동일하지 않습니다.
x-soft
'0'과 동일합니다.
soft
'25'와 동일합니다.
medium
'50'과 동일합니다.
loud
'75'와 동일합니다.
x-loud
'100'과 동일합니다.

사용자 에이전트는 '0'과 '100'에 해당하는 값을 청취자가 설정할 수 있도록 해야 합니다. 어떤 설정도 보편적으로 적용되지 않으며, 적합한 값은 사용 중인 장비(스피커, 헤드폰), 환경(차량, 홈 시어터, 도서관), 개인 선호도에 따라 달라집니다. 몇 가지 예는 다음과 같습니다:

클라이언트 측에서 '0'과 '100' 포인트를 적절히 매핑하기만 하면, 동일한 작성자 스타일 시트를 모든 경우에 사용할 수 있습니다.

A.4 말하기 속성: 'speak'

이름: speak
값: normal | none | spell-out | inherit
초기값: normal
적용 대상: 모든 요소
상속됨:
백분율: N/A
미디어: aural
계산값: 명시된 대로

이 속성은 텍스트가 청각적으로 렌더링될지 여부와 그렇다면 어떤 방식으로 렌더링될지를 지정합니다. 가능한 값은 다음과 같습니다:

none
청각 렌더링을 억제하여 요소가 렌더링에 시간이 필요하지 않습니다. 그러나 후손 요소는 이 값을 재정의할 수 있으며 읽히게 됩니다. (요소와 그 후손 모두의 렌더링을 억제하려면 'display' 속성을 사용하십시오).
normal
언어 의존 발음 규칙을 사용하여 요소와 자식을 렌더링합니다.
spell-out
텍스트를 한 글자씩 철자합니다 (약어와 두문자어에 유용).

'volume' 속성의 값이 'silent'인 요소와 'speak' 속성의 값이 'none'인 요소의 차이를 유의하십시오. 전자는 요소 전후의 멈춤을 포함하여 말해진 것처럼 동일한 시간을 차지하지만, 소리는 생성되지 않습니다. 후자는 시간이 필요하지 않으며 렌더링되지 않습니다 (그러나 후손 요소는 렌더링될 수 있습니다).

A.5 일시정지 속성: 'pause-before', 'pause-after', 및 'pause'

이름: pause-before
값: <time> | <percentage> | inherit
초기값: 0
적용 대상: 모든 요소
상속됨: 아니요
백분율: 본문 참조
미디어: aural
계산값: time
이름: pause-after
값: <time> | <percentage> | inherit
초기값: 0
적용 대상: 모든 요소
상속됨: 아니요
백분율: 본문 참조
미디어: aural
계산값: time;;

이 속성은 요소의 내용을 말하기 전에 (또는 후에) 관찰해야 할 일시정지를 지정합니다. 값의 의미는 다음과 같습니다:

참고. CSS3에서는 일시정지가 큐와 콘텐츠 주위에 삽입되며, 그들 사이가 아닙니다. 자세한 내용은 [CSS3SPEECH]를 참조하십시오.

<time>
절대 시간 단위(초 및 밀리초)로 일시정지를 나타냅니다.
<percentage>
'speech-rate' 속성의 값을 기준으로 반대 값을 참조합니다. 예를 들어, speech-rate가 분당 120 단어(즉, 단어 하나가 0.5초 또는 500ms를 차지)라면, 'pause-before'가 100%일 경우 500ms의 일시정지가 의미하며, 'pause-before'가 20%일 경우 100ms를 의미합니다.

일시정지는 요소의 내용과 'cue-before' 또는 'cue-after' 콘텐츠 사이에 삽입됩니다.

작업자는 speech-rate에서 큰 변화가 발생하더라도 더 강력한 스타일 시트를 생성하기 위해 상대적인 단위를 사용해야 합니다.

이름: pause
값: [ [<time> | <percentage>]{1,2} ] | inherit
초기값: 개별 속성 참조
적용 대상: 모든 요소
상속됨: 아니요
백분율: 'pause-before' 및 'pause-after' 설명 참조
미디어: aural
계산값: 개별 속성 참조

'pause' 속성은 'pause-before''pause-after'를 설정하기 위한 축약형입니다. 두 개의 값이 주어지면, 첫 번째 값은 'pause-before'이고, 두 번째 값은 'pause-after'입니다. 하나의 값만 주어지면, 두 속성 모두에 적용됩니다.

예제:

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

A.6 큐 속성: 'cue-before', 'cue-after', 및 'cue'

이름: cue-before
값: <uri> | none | inherit
초기값: none
적용 대상: 모든 요소
상속됨: 아니요
백분율: N/A
미디어: aural
계산값: 절대 URI 또는 'none'
이름: cue-after
값: <uri> | none | inherit
초기값: none
적용 대상: 모든 요소
상속됨: 아니요
백분율: N/A
미디어: aural
계산값: 절대 URI 또는 'none'

청각 아이콘은 의미적 요소를 구별하는 또 다른 방법입니다. 요소를 구분하기 위해 소리가 요소의 이전 및/또는 이후에 재생될 수 있습니다. 값의 의미는 다음과 같습니다:

<uri>
URI는 청각 아이콘 리소스를 지정해야 합니다. URI가 이미지와 같은 오디오 파일이 아닌 것으로 확인되면, 해당 리소스는 무시되며 속성은 'none' 값을 가진 것처럼 처리됩니다.
none
청각 아이콘이 지정되지 않았습니다.

예제:

a {cue-before: url("bell.aiff"); cue-after: url("dong.wav") }
h1 {cue-before: url("pop.au"); cue-after: url("pop.au") }
이름: cue
값: [ <'cue-before'> || <'cue-after'> ] | inherit
초기값: 개별 속성 참조
적용 대상: 모든 요소
상속됨: 아니요
백분율: N/A
미디어: aural
계산값: 개별 속성 참조

'cue' 속성은 'cue-before''cue-after'를 설정하기 위한 축약형입니다. 두 값이 주어지면, 첫 번째 값은 'cue-before'이고, 두 번째 값은 'cue-after'입니다. 하나의 값만 주어지면, 두 속성 모두에 적용됩니다.

예제:

다음 두 규칙은 동일합니다:

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

사용자 에이전트가 청각 아이콘을 렌더링할 수 없는 경우(예: 사용자의 환경이 이를 허용하지 않는 경우), 대체 큐를 생성할 것을 권장합니다.

다른 콘텐츠 생성 기술에 대한 정보는 :before 및 :after 의사 요소 섹션을 참조하십시오. 'cue-before' 소리와 'pause-before' 간격은 ':before' 의사 요소의 콘텐츠 이전에 삽입됩니다. 마찬가지로, 'pause-after' 간격과 'cue-after' 소리는 ':after' 의사 요소의 콘텐츠 이후에 삽입됩니다.

A.7 혼합 속성: 'play-during'

이름: play-during
값: <uri> [ mix || repeat ]? | auto | none | inherit
초기값: auto
적용 대상: 모든 요소
상속됨: 아니요
백분율: N/A
미디어: aural
계산값: 절대 URI, 나머지는 명시된 대로

'cue-before''cue-after' 속성과 유사하게, 이 속성은 요소의 콘텐츠가 말해지는 동안 배경으로 재생될 소리를 지정합니다. 값의 의미는 다음과 같습니다:

<uri>
<uri>에서 지정된 소리가 요소의 콘텐츠가 말해지는 동안 배경으로 재생됩니다.
mix
이 키워드가 있을 경우, 상위 요소의 'play-during' 속성에서 상속된 소리가 계속 재생되며, <uri>에서 지정된 소리와 혼합됩니다. 'mix'가 지정되지 않은 경우, 요소의 배경 소리가 상위 요소의 소리를 대체합니다.
repeat
이 키워드가 있을 경우, 소리가 요소의 전체 기간을 채우기에 너무 짧을 경우 반복됩니다. 그렇지 않으면 소리는 한 번 재생된 후 멈춥니다. 이는 'background-repeat' 속성과 유사합니다. 소리가 요소보다 길 경우, 요소가 말해진 후 잘립니다.
auto
상위 요소의 소리가 계속 재생됩니다 (이 속성이 상속되었다면 재시작되었을 것입니다).
none
이 키워드는 무음을 의미합니다. 현재 요소 동안 상위 요소의 소리(있는 경우)는 무음 상태가 되며, 현재 요소 이후에 계속됩니다.

예제:

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

A.8 공간 속성: 'azimuth''elevation'

공간 오디오는 청각 프레젠테이션을 위한 중요한 스타일 속성입니다. 이는 현실에서처럼 여러 목소리를 자연스럽게 구별하는 방법을 제공합니다 (사람들은 일반적으로 방 안의 같은 위치에 서 있지 않습니다). 스테레오 스피커는 가로 사운드 스테이지를 생성합니다. 바이노럴 헤드폰이나 점점 더 인기를 끌고 있는 5-스피커 홈 시어터 설정은 풀 서라운드 사운드를 생성할 수 있으며, 다중 스피커 설정은 진정한 3차원 사운드 스테이지를 생성할 수 있습니다. VRML 2.0에서도 공간 오디오가 포함되어 있어 시간이 지나면서 소비자 가격의 공간 오디오 하드웨어가 더 널리 보급될 가능성이 있습니다.

이름: azimuth
값: <angle> | [[ left-side | far-left | left | center-left | center | center-right | right | far-right | right-side ] || behind ] | leftwards | rightwards | inherit
초기값: center
적용 대상: 모든 요소
상속됨:
백분율: N/A
미디어: aural
계산값: 정규화된 각도

값의 의미는 다음과 같습니다:

<angle>
위치는 '-360deg'에서 '360deg' 범위 내의 각도로 설명됩니다. '0deg' 값은 사운드 스테이지 중앙에서 바로 앞을 의미합니다. '90deg'는 오른쪽, '180deg'는 뒤쪽, '270deg'(또는 더 편리하게 '-90deg')는 왼쪽을 나타냅니다.
left-side
'270deg'와 동일합니다. 'behind'와 함께, '270deg'.
far-left
'300deg'와 동일합니다. 'behind'와 함께, '240deg'.
left
'320deg'와 동일합니다. 'behind'와 함께, '220deg'.
center-left
'340deg'와 동일합니다. 'behind'와 함께, '200deg'.
center
'0deg'와 동일합니다. 'behind'와 함께, '180deg'.
center-right
'20deg'와 동일합니다. 'behind'와 함께, '160deg'.
right
'40deg'와 동일합니다. 'behind'와 함께, '140deg'.
far-right
'60deg'와 동일합니다. 'behind'와 함께, '120deg'.
right-side
'90deg'와 동일합니다. 'behind'와 함께, '90deg'.
leftwards
현재 각도에 대해 소리를 왼쪽으로 이동시킵니다. 더 정확히 말하면, 20도를 뺍니다. 계산은 360도를 기준으로 모듈로 수행됩니다. 'leftwards'는 "반시계 방향으로 회전"으로 더 정확하게 설명되는데, 이는 상속된 방위각이 이미 청취자 뒤에 있는 경우에도 항상 20도를 빼기 때문입니다(이 경우 소리가 실제로 오른쪽으로 이동하는 것처럼 보입니다).
rightwards
현재 각도에 대해 소리를 오른쪽으로 이동시킵니다. 더 정확히 말하면, 20도를 더합니다. 계산 방법은 'leftwards'를 참조하세요.

이 속성은 동일한 신호를 다른 채널에 다른 볼륨으로 혼합하여 구현될 가능성이 가장 높습니다. 또한, 사운드 스테이지의 환상을 제공하기 위해 위상 이동, 디지털 지연, 기타 기술을 사용할 수도 있습니다. 이 효과를 달성하기 위해 사용된 정확한 방법과 사용된 스피커 수는 사용자 에이전트에 따라 다르며, 이 속성은 단순히 원하는 최종 결과를 식별합니다.

예제:

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

spatial-azimuth가 지정되고 출력 장치가 청취 위치 에서 소리를 생성할 수 없는 경우, 사용자 에이전트는 후방 반구 값을 전방 반구 값으로 변환해야 합니다. 한 가지 방법은 다음과 같습니다:

이름: elevation
값: <angle> | below | level | above | higher | lower | inherit
초기값: level
적용 대상: 모든 요소
상속됨:
백분율: N/A
미디어: aural
계산값: 정규화된 각도

이 속성의 값 의미는 다음과 같습니다:

<angle>
높이를 '-90deg'에서 '90deg' 사이의 각도로 지정합니다. '0deg'는 전방 지평선에 있으며, 이는 느슨하게 청취자와 같은 높이를 의미합니다. '90deg'는 바로 머리 위를, '-90deg'는 바로 아래를 의미합니다.
below
'-90deg'와 동일합니다.
level
'0deg'와 동일합니다.
above
'90deg'와 동일합니다.
higher
현재 높이에 10도를 더합니다.
lower
현재 높이에서 10도를 뺍니다.

이 효과를 달성하기 위해 사용된 정확한 방법과 사용된 스피커 수는 정의되지 않습니다. 이 속성은 단순히 원하는 최종 결과를 식별합니다.

예제:

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

A.9 음성 특성 속성: 'speech-rate', 'voice-family', 'pitch', 'pitch-range', 'stress', 및 'richness'

이름: speech-rate
값: <number> | x-slow | slow | medium | fast | x-fast | faster | slower | inherit
초기값: medium
적용 대상: 모든 요소
상속 여부:
백분율: N/A
미디어: aural
계산된 값: number

이 속성은 말하기 속도를 지정합니다. 절대 키워드와 상대 키워드 값 모두 허용됩니다 (예: 'font-size'). 값의 의미는 다음과 같습니다:

<number>
언어에 따라 다소 다르지만, 널리 사용되는 음성 합성기에 의해 지원되는 분당 단어 수를 지정합니다.
x-slow
분당 80단어에 해당.
slow
분당 120단어에 해당.
medium
분당 180 - 200단어에 해당.
fast
분당 300단어에 해당.
x-fast
분당 500단어에 해당.
faster
현재 말하기 속도에 분당 40단어를 추가.
slower
현재 말하기 속도에서 분당 40단어를 감소.
이름: voice-family
값: [[<specific-voice> | <generic-voice> ],]* [<specific-voice> | <generic-voice> ] | inherit
초기값: 사용자 에이전트에 따라 다름
적용 대상: 모든 요소
상속 여부:
백분율: N/A
미디어: aural
계산된 값: 지정된 대로

값은 음성 패밀리 이름의 쉼표로 구분된 우선순위 목록입니다 (예: 'font-family'). 값의 의미는 다음과 같습니다:

<generic-voice>
값은 음성 패밀리입니다. 가능한 값은 'male', 'female', 'child'입니다.
<specific-voice>
값은 특정 인스턴스입니다 (예: comedian, trinoids, carlos, lani).

예제:

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

특정 음성의 이름은 인용부호로 묶을 수 있으며, 이름이 식별자 구문 규칙을 따르지 않는 경우 반드시 인용부호로 묶어야 합니다. 또한, 두 개 이상의 단어로 구성된 이름의 특정 음성은 인용부호로 묶는 것을 권장합니다. 인용부호를 생략하면 음성 패밀리 이름 전후의 공백 문자는 무시되고, 음성 패밀리 이름 내의 공백 문자 시퀀스는 단일 공백으로 변환됩니다.

이름: pitch
값: <frequency> | x-low | low | medium | high | x-high | inherit
초기값: medium
적용 대상: 모든 요소
상속 여부:
백분율: N/A
미디어: aural
계산된 값: frequency

말하는 목소리의 평균 피치(주파수)를 지정합니다. 목소리의 평균 피치는 voice family에 따라 다릅니다. 예를 들어, 표준 남성 목소리의 평균 피치는 약 120Hz이며, 여성 목소리는 약 210Hz입니다.

값의 의미는 다음과 같습니다:

<frequency>
목소리의 평균 피치를 헤르츠(Hz)로 지정합니다.
x-low, low, medium, high, x-high
이 값들은 절대적인 주파수에 매핑되지 않으며, voice family에 따라 다릅니다. 사용자 에이전트는 voice family 및 사용자 환경에 따라 적절한 주파수로 매핑해야 합니다. 그러나 사용자 에이전트는 이러한 값을 순서대로 매핑해야 합니다 (예: 'x-low'는 'low'보다 낮은 주파수 등).
이름: pitch-range
값: <number> | inherit
초기값: 50
적용 대상: 모든 요소
상속 여부:
백분율: N/A
미디어: aural
계산된 값: 지정된 대로

평균 피치의 변화를 지정합니다. 인간 목소리의 피치는 기본 주파수에 의해 결정되며, 일반적으로 남성 목소리는 120Hz, 여성 목소리는 210Hz의 값을 가집니다. 인간 언어는 다양한 억양과 피치로 말해지며, 이러한 변화는 추가적인 의미와 강조를 전달합니다. 따라서, 매우 생동감 있는 목소리, 즉, 강한 억양이 있는 목소리는 높은 pitch range를 보입니다. 이 속성은 이러한 변화가 발생하는 범위, 즉 기본 주파수가 평균 피치에서 얼마나 벗어날 수 있는지를 지정합니다.

값의 의미는 다음과 같습니다:

<number>
'0'에서 '100' 사이의 값. pitch range가 '0'이면 평평하고 단조로운 목소리를 생성합니다. pitch range가 50이면 정상적인 억양을 생성합니다. 50 이상의 pitch range는 생동감 있는 목소리를 생성합니다.
이름: stress
값: <number> | inherit
초기값: 50
적용 대상: 모든 요소
상속 여부:
백분율: N/A
미디어: aural
계산된 값: 지정된 대로

목소리의 억양 윤곽에서 "국부적인 피크"의 높이를 지정합니다. 예를 들어, 영어는 강세가 있는 언어이며, 문장의 다른 부분이 주강세, 부강세 또는 삼차 강세로 할당됩니다. 'stress' 값은 이러한 강세 마커에서 발생하는 억양의 양을 제어합니다. 이 속성은 'pitch-range' 속성과 함께 사용되며, 개발자가 고급 청각 디스플레이를 활용할 수 있도록 제공됩니다.

값의 의미는 다음과 같습니다:

<number>
'0'에서 '100' 사이의 값. 값의 의미는 사용되는 언어에 따라 다릅니다. 예를 들어, 표준 영어 남성 목소리(평균 피치 = 122Hz)가 정상적인 억양과 강조로 말할 때의 '50' 수준과 이탈리아어 목소리의 '50' 수준은 서로 다릅니다.
이름: richness
값: <number> | inherit
초기값: 50
적용 대상: 모든 요소
상속 여부:
백분율: N/A
미디어: aural
계산된 값: 지정된 대로

말하는 목소리의 풍부함 또는 밝기를 지정합니다. 풍부한 목소리는 큰 방에서도 잘 전달되며, 부드러운 목소리는 그렇지 않습니다. ("부드러운"이라는 용어는 파형을 그렸을 때의 모양을 나타냅니다.)

값의 의미는 다음과 같습니다:

<number>
'0'에서 '100' 사이의 값. 값이 높을수록 목소리가 더 멀리 전달됩니다. 값이 낮을수록 부드럽고 감미로운 목소리가 생성됩니다.

A.10 음성 속성: 'speak-punctuation''speak-numeral'

추가 음성 속성인 'speak-header'는 아래에 설명되어 있습니다.

이름: speak-punctuation
값: code | none | inherit
초기값: none
적용 대상: 모든 요소
상속 여부:
백분율: N/A
미디어: aural
계산된 값: 지정된 대로

이 속성은 문장 부호가 어떻게 발음되는지를 지정합니다. 값의 의미는 다음과 같습니다:

code
세미콜론, 중괄호 등과 같은 문장 부호가 문자 그대로 발음됩니다.
none
문장 부호는 발음되지 않으며, 대신 다양한 멈춤으로 자연스럽게 표현됩니다.
이름: speak-numeral
값: digits | continuous | inherit
초기값: continuous
적용 대상: 모든 요소
상속 여부:
백분율: N/A
미디어: aural
계산된 값: 지정된 대로

이 속성은 숫자가 어떻게 발음되는지를 제어합니다. 값의 의미는 다음과 같습니다:

digits
숫자를 개별 숫자로 발음합니다. 따라서 "237"은 "이 삼 칠"로 발음됩니다.
continuous
숫자를 전체 수로 발음합니다. 따라서 "237"은 "이백삼십칠"로 발음됩니다. 단어 표현은 언어에 따라 달라집니다.

A.11 표의 음성 렌더링

표가 음성 생성기에 의해 읽힐 때, 데이터 셀과 헤더 셀 간의 관계는 수평 및 수직 정렬과는 다른 방식으로 표현되어야 합니다. 일부 음성 브라우저는 사용자가 2차원 공간에서 이동할 수 있도록 하여 공간적으로 표현된 관계를 매핑할 기회를 제공할 수 있습니다. 그것이 불가능한 경우, 스타일 시트는 헤더가 읽히는 지점을 지정해야 합니다.

A.11.1 헤더 읽기: 'speak-header' 속성

이름: speak-header
값: once | always | inherit
초기값: once
적용 대상: 테이블 헤더 정보를 가진 요소
상속 여부:
백분율: N/A
미디어: aural
계산된 값: 지정된 대로

이 속성은 테이블 헤더가 각 셀 전에 읽히는지, 아니면 이전 셀과 다른 헤더와 연관된 셀 앞에서만 읽히는지를 지정합니다. 값의 의미는 다음과 같습니다:

once
헤더는 일련의 셀 앞에서 한 번만 읽힙니다.
always
헤더는 관련된 각 셀 앞에서 읽힙니다.

각 문서 언어는 작성자가 헤더를 지정할 수 있도록 하는 다양한 메커니즘을 가질 수 있습니다. 예를 들어, HTML 4 ([HTML4])에서는 "headers", "scope", "axis"라는 세 가지 속성을 사용하여 헤더 정보를 지정할 수 있으며, 이러한 속성이 지정되지 않은 경우 헤더 정보를 결정하기 위한 알고리즘을 제공합니다.

MS Word에서 생성된 표 이미지   [D]

헤더 셀("San Jose" 및 "Seattle")이 데이터가 적용되는 열이나 행에 있지 않은 표의 이미지.

이 HTML 예제는 연속된 날짜 동안 두 위치(San Jose 및 Seattle)에서 식사, 호텔 및 교통비로 지출된 금액을 나타냅니다. 개념적으로, 표를 n차원 공간으로 생각할 수 있습니다. 이 공간의 헤더는 위치, 날짜, 카테고리 및 소계입니다. 일부 셀은 축을 따라 마크를 정의하고, 다른 셀은 이 공간 내의 지점에서 지출된 금액을 제공합니다. 이 표의 마크업은 다음과 같습니다:

<TABLE>
<CAPTION>여행 경비 보고서</CAPTION>
<TR>
  <TH></TH>
  <TH>식사</TH>
  <TH>호텔</TH>
  <TH>교통비</TH>
  <TH>소계</TH>
</TR>
<TR>
  <TH id="san-jose" axis="san-jose">San Jose</TH>
</TR>
<TR>
  <TH headers="san-jose">1997년 8월 25일</TH>
  <TD>37.74</TD>
  <TD>112.00</TD>
  <TD>45.00</TD>
  <TD></TD>
</TR>
...
        

이 데이터를 이와 같은 방식으로 제공함으로써, 음성 지원 브라우저가 표를 풍부하게 탐색할 수 있도록 합니다. 예를 들어, 각 셀은 목록으로 읽히며, 각 데이터 셀 앞에서 적용 가능한 헤더를 반복합니다:

  San Jose, 1997년 8월 25일, 식사:  37.74
  San Jose, 1997년 8월 25일, 호텔:  112.00
  San Jose, 1997년 8월 25일, 교통비:  45.00
 ...

또한 브라우저는 헤더가 변경될 때만 읽을 수도 있습니다:

San Jose, 1997년 8월 25일, 식사: 37.74
    호텔: 112.00
    교통비: 45.00
  1997년 8월 26일, 식사: 27.28
    호텔: 112.00
...

A.12 HTML 샘플 스타일 시트

이 스타일 시트는 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 }
}

A.13 Emacspeak

참고로, Emacs 편집기의 음성 하위 시스템인 Emacspeak에서 구현된 속성 목록은 다음과 같습니다.

(음성 속성의 구현 상태에 대한 정보를 제공해 주신 T. V. Raman께 감사드립니다.)