head, link, meta, style, script, title, base {speak: never} datalist, template {speak: never} html {speak-as: normal no-punctuation} * {white-space: normal;} /** Forms **/ button, select, textarea, input, output {speak: never} /* Leave to special form entry mode */ button[type=submit] {speak: always} input[type=submit][value] {speak: always; content: attr(value)} /** Tables **/ table::before {content: 'Table'; voice-volume: x-soft} tr {cue-before: url(about:bulletpoint.wav);} td, th {cue-before: url(about:bulletpoint.wav) -1db;} /* TODO Do we actually want this feature, would take significant processing. */ th > :th /* Rhapsode-specific, selects inlined table headers */ {speak: never;} table caption {voice-volume: soft} /** Sectioning **/ footer, header {voice-volume: soft} nav {speak: never} /* Expose the links for navigation, but not narration */ h1, h2, h3, h4, h5, h6, legend, th, summary, dt {voice-stress: strong} h1 {pause: x-strong; voice-rate: x-slow} h2 {pause: strong; voice-rate: slow} h3, th, summary, legend, dt {pause: medium; voice-rate: medium} h4 {pause: weak; voice-rate: fast} h5, h6 {pause: x-weak; voice-rate: fast} h6 {voice-pitch: high} /** Text **/ hr {pause: x-strong} p, pre, samp, blockquote {pause: strong} pre, address, samp {speak-as: literal-punctuation} pre, samp, code {voice: neutral 2; white-space: pre;} [href], :link {cue-after: url(about:link.wav) !important; voice-pitch: low} :link:visited {cue-after: url(about:link.wav) -1db !important} img {voice-volume: soft; content: attr(src)} img[alt] {content: attr(alt)} b, strong {voice-rate: slow} i, em {voice-stress: strong} br {pause: medium} code {speak-as: literal-punctuation} s, del {voice-volume: x-soft} u, ins {voice-volume: loud} /** lists **/ li, dt, dd {cue-before: url(about:bulletpoint.wav); pause: strong} li::before, dt::before, dd::before {content: 'd'} /* Since the cue-before isn't coming accross */ li li, dd dt, dd dd {cue-before: url(about:bulletpoint.wav) -1db} li li li, dd dd dt, dd dd dd {cue-before: url(about:bulletpoint.wav) -2db} li li li li, dd dd dd dt, dd dd dd dd {cue-before: url(about:bulletpoint.wav) -3db} li li li li li, dd dd dd dd dt, dd dd dd dd dd { cue-before: url(about:bulletpoint.wav) -4db } li li li li li li, dd dd dd dd dd dt, dd dd dd dd dd dd { cue-before: url(about:bulletpoint.wav) -5db } ol {counter-reset: -rhaps-ol} ol li::before { counter-increment: -rhaps-ol; content: counters(-rhaps-ol, ' ') } /** HTML5 **/ abbr[title]::after {content: attr(title); voice-volume: x-soft} abbr {speak-as: spell-out} q, blockquote {voice-family: female 2} cite {voice-stress: reduce} dialog {speak: never} dialog[open] {speak: always} kbd {speak-as: spell-out} progress {content: attr(value) ' of ' attr(max)} sub {voice-rate: x-fast} sup {voice-rate: fast} var {voice-rate: slow} aside {voice-volume: soft}