[csswg-drafts] [css-speech-1] defaults for phrasing elements and voice-character (#13808)

paceaux has just created a new issue for https://github.com/w3c/csswg-drafts:

== [css-speech-1] defaults for phrasing elements and voice-character ==
First I want to share how excited I am that there's a CSS Speech module. Considering that language originates in the verbal form and that most writing systems are based on the verbal form, I think it's long-overdue that we address how content can be consumed this way. Tone and stress are significant aspects of communication and think this module will help ensure that users don't experience a loss of information. 

With that consideration, I would like to suggest / request two things:

###  We allow the default visual distinctions of certain phrasing elements inform some default auditory distinctions:



* `em` : `voice-stress: moderate`
* `strong` : `voice-stress: strong`
* `mark` : `voice-stress: strong; voice-pitch: high`
* `small, sub, sup` : `voice-stress: reduced`
* `i, q`: `voice-balance: leftwards; pause: weak;`
* `i` : `voice-rate: slow` (an unbalanced slow voice with a pause could reflect alternate thoughts and transliterations)
* `dfn, dt`: `voice-rate: slow; pause: weak;`
* `del,s,strike`: `voice-range: low; voice-volume: x-soft` (less range and much softer, indicating contrast to regular)
* `ins`: `voice-range: `medium; voice-volume: soft `
* `u`: `voice-balance: rightwards; ¿¿speak-as: spell-out??; voice-rate: slow; `(unbalance slow voice indicating it's annotated in someway. especially if spelled out)
* `pre, code, var, samp, data`: `voice-range: x-low` (monotone could be similar to monospace)
* `kbd, data`: `speak-as: literal-punctuation;` (guarantees that !.; are read aloud)
* `var, samp`: `voice-pitch: low`
* `var`: ` pause: weak`
* `samp`: `voice-stress: moderate`
* `abbr`: `speak-as: spell-out`


### A `@voice-character at-rule and/or `voice-style` property
Certain elements carry semantics that communicate, "not the narrator's original words / phrasing" such as:

* `q`
* `blockquote`
* `samp`

We recognize quoted text in narrations because the narrator has altered their voice. Whether they read the text higher, lower, more feminine or masculine, or with a different accent. The narrator alters their dictation to indicate, "this is not the narrator's voice."

While we have all of the individual parts for a "narrator voice" and "non-narrator voice", we don't have a way to point the whole collection of attributes together so that we can apply them. 

I 

```CSS
@voice-character Narrator {
  voice-family: young neutral;
  voice-stress: normal;
  voice-pitch: medium;
  voice-range: medium;
}

@voice-character Excerpt {
  voice-family: old neutral;
  voice-stress: moderate;
  voice-pitch: high;
  voice-balance: leftwards;
}

@voice-character Code {
  voice-family: young neutral;
  voice-stress: none;
  voice-range: x-low;
}

body {
  voice-style: Narrator;
}

q, blockquote {
  voice-style: Excerpt
}
```

Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/13808 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Tuesday, 14 April 2026 17:24:21 UTC