module DefaultCSS(userAgentCSS) where
userAgentCSS = unlines [
"head, link, meta, style, script, title, base {speak: never}",
"datalist, template {speak: never}",
"html {speak-as: normal no-punctuation}",
"",
"/** 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(bulletpoint.wav);}",
"td, th {cue-before: url(bulletpoint.wav) -1db;}",
"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}",
"a[href], :link {cue-before: url(link.wav); voice-pitch: low}",
":link:visited {cue-before: url(link.wav) -1db}",
"img {voice-volume: soft; content: 'Image: ' attr(src)}",
"img[alt] {content: 'Image: ' 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(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(bulletpoint.wav) -1db}",
"li li li, dd dd dt, dd dd dd {cue-before: url(bulletpoint.wav) -2db}",
"li li li li, dd dd dd dt, dd dd dd dd {cue-before: url(bulletpoint.wav) -3db}",
"li li li li li, dd dd dd dd dt, dd dd dd dd dd {",
" cue-before: url(bulletpoint.wav) -4db",
"}",
"li li li li li li, dd dd dd dd dd dt, dd dd dd dd dd dd {",
" cue-before: url(bulletpoint.wav) -5db",
"}",
"",
"ol {counter-reset: -rhaps-ol}",
"ol li::before {",
"counter-increment: -rhaps-ol;",
"content: counters(-rhaps-ol, ' ')",
"}",
"",
"",
"/** HTML6 **/",
"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}"
]