~alcinnz/rhapsode

ref: 2b90b1d25c0d8ede97d661da6485c781bc4cca19 rhapsode/useragent.css -rw-r--r-- 4.6 KiB
2b90b1d2 — Adrian Cochrane Repair broken useragent stylesheets. FIXME: Why is this syntax broken? 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
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}