~alcinnz/rhapsode

ref: 37c49eb4fc4e579acff478f95fc97fdc68137035 rhapsode/useragent.css -rw-r--r-- 4.7 KiB
37c49eb4 — Adrian Cochrane Document licensing of sorting sounds. 3 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
link[rel=stylesheet], meta, style, script, title, base {speak: never}
datalist, template {speak: never}
:root {
    speak-as: normal no-punctuation;
    counter-reset: -rhaps-table, -rhaps-section, -rhaps-paragraph
}
[lang] {-rhaps-lang: attr(lang)} /* Pass this info through styletree into output */
:target {-rhaps-marker: "main"}

/** 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)}

form[title] {content: attr(title)} /* Ideal UX for (inline) <form>s. */
form[alt] {content: attr(alt)}

/** Tables **/
table::before {content: "Table"; voice-volume: x-soft}
table:lang(hu)::before {content: "táblázat"}
table:lang(nl)::before {content: "tabel"}
table:lang(es)::before {content: "tabla"}
table:lang(it)::before {content: "tabella"}
table:lang(sv)::before {content: "tabell"}
table:lang(nb-NO)::before {content: "tabell"}
/* FIXME: debug why table:lang(sv)::before, table:lang(nb-NO)::before {content: "tabell"} crashes the parser */
table {counter-increment: -rhaps-table; counter-reset: -rhaps-tablerow}
tr {
    cue-before: url(about:bulletpoint.wav);
    counter-increment: -rhaps-tablerow;
    counter-reset: -rhaps-tablecol;
}
td, th {
    cue-before: url(about:bulletpoint.wav) -0.1db;
    -rhaps-marker: "-rhaps-tablecell" counter(-rhaps-table) ":" counter(-rhaps-tablerow) "x" counter(-rhaps-tablecol);
    counter-increment: -rhaps-tablecol attr(rowspan); /* TODO parse this syntax */
    counter-increment: -rhaps-tablecol;
}
td::before, th::before {
    content: counter(-rhaps-tablerow) " " counter(-rhaps-tablecol)
}
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, h2, h3, h4, h5, h6, section, aside {-rhaps-marker: -rhaps-section}
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; -rhaps-marker: -rhaps-paragraph}
pre, address, samp {speak-as: literal-punctuation}
pre, samp, code {voice: neutral 2; white-space: pre;}
:link {cue-after: url(about:link.wav) !important; voice-pitch: low}
link[rel] {content: attr(rel)}
link[rel=alternate][type] {content: -rhaps-filetype(attr(type))}
link[title] {content: attr(title)} /* [title] overrides [rel] */
:visited {cue-after: url(about:link.wav) -0.1db !important}
img {content: "Image " attr(src)}
img:lang(hu):not([alt]) {content: "kép " attr(src)}
img:lang(nl):not([alt]) {content: "afbeelding " attr(src)}
img:lang(es):not([alt]) {content: "imagen " attr(src)}
img:lang(it):not([alt]) {content: "immagine " attr(src)}
img:lang(sv):not([alt]) {content: "bild " attr(src)}
img:lang(nb-NO):not([alt]) {content: "bilde " 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;
    -rhaps-marker: -rhaps-paragraph;
}
li li, dd dt, dd dd {cue-before: url(about:bulletpoint.wav) -0.1db}
li li li, dd dd dt, dd dd dd {cue-before: url(about:bulletpoint.wav) -0.2db}
li li li li, dd dd dd dt, dd dd dd dd {cue-before: url(about:bulletpoint.wav) -0.3db}
li li li li li, dd dd dd dd dt, dd dd dd dd dd {
    cue-before: url(about:bulletpoint.wav) -0.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) -0.5db
}

ol {counter-reset: -rhaps-ol}
ol li::before {
    counter-increment: -rhaps-ol;
    content: counters(-rhaps-ol, " ") " ";
}
ul, ol {-rhaps-marker: -rhaps-section}

/** 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:not([open]) {speak: always}
kbd {speak-as: spell-out}
progress {content: -rhaps-percentage(attr(value) attr(max)) "%"}
sub {voice-rate: x-fast}
sup {voice-rate: fast}
var {voice-rate: slow}
aside {voice-volume: soft}

details > :not(summary:first-of-type) {speak: never}
details:target > *, details[open] > * {speak: always}

/* Localized into:
- English
- French (surprisingly same as English)
- Hungarian
- Dutch
- Spanish */

/** ARIA **/
[aria-hidden] {speak: never}
th[aria-sort=ascending] {cue-before: url(about:ascending.wav)}
th[aria-sort=descending] {cue-after: url(about:descending.wav)}