Rustdoc accessibility: use an icon for the [-]/[+] controls

This way, we can show the plus and minus buttons on screens, while voice
control will read off actual words "Collapse" and "Expand" instead of reading
"open brace minus close brace" and "open brace plus close brace".

Part of #87059
This commit is contained in:
Michael Howell 2021-07-16 17:24:35 -07:00 committed by Guillaume Gomez
parent 76d247c00a
commit c58246efe4
9 changed files with 69 additions and 8 deletions

View file

@ -126,13 +126,16 @@ impl Context<'_> {
emit: &[EmitType],
) -> Result<(), Error> {
let tmp;
let contents =
contents.replace("data-url(minus-17x17.png)", static_files::MINUS_PNG_DATAURL);
let contents = contents.replace("data-url(plus-17x17.png)", static_files::PLUS_PNG_DATAURL);
let contents = if minify {
tmp = if resource.extension() == Some(&OsStr::new("css")) {
minifier::css::minify(contents).map_err(|e| {
minifier::css::minify(&contents).map_err(|e| {
Error::new(format!("failed to minify CSS file: {}", e), resource.path(self))
})?
} else {
minifier::js::minify(contents)
minifier::js::minify(&contents)
};
tmp.as_bytes()
} else {

View file

@ -1508,11 +1508,33 @@ details.rustdoc-toggle > summary.hideme > span {
}
details.rustdoc-toggle > summary::before {
content: "[+]";
content: "Expand";
font-weight: 300;
font-size: 0.8em;
letter-spacing: 1px;
cursor: pointer;
width: 17px;
height: max(17px, 1.1em);
background: data-url(plus-17x17.png) no-repeat top left;
display: inline-block;
vertical-align: middle;
opacity: .5;
text-indent: 17px;
overflow: hidden;
}
details.rustdoc-toggle > summary.hideme::before {
/* "hideme" toggles already have a description when they're contracted */
content: " ";
}
details.rustdoc-toggle > summary:focus::before {
outline: dotted 1px;
}
details.rustdoc-toggle > summary:focus::before,
details.rustdoc-toggle > summary:hover::before {
opacity: 1;
}
details.rustdoc-toggle.top-doc > summary,
@ -1560,20 +1582,40 @@ details.rustdoc-toggle[open] > summary.hideme > span {
display: none;
}
details.rustdoc-toggle[open] > summary::before {
content: "[]";
display: inline;
details.rustdoc-toggle[open] > summary::before,
details.rustdoc-toggle[open] > summary.hideme::before {
width: 17px;
height: max(17px, 1.1em);
background: data-url(minus-17x17.png) no-repeat top left;
display: inline-block;
content: "Collapse";
}
details.undocumented > summary::before {
content: "[+] Show hidden undocumented items";
padding-left: 17px;
height: max(17px, 1.1em);
background: data-url(plus-17x17.png) no-repeat top left;
content: "Show hidden undocumented items";
cursor: pointer;
font-size: 16px;
font-weight: 300;
opacity: .5;
}
details.undocumented > summary:focus::before {
outline: dotted 1px;
}
details.undocumented > summary:focus::before,
details.undocumented > summary:hover::before {
opacity: 1;
}
details.undocumented[open] > summary::before {
content: "[] Hide undocumented items";
padding-left: 17px;
height: max(17px, 1.1em);
background: data-url(minus-17x17.png) no-repeat top left;
content: "Hide undocumented items";
}
/* Media Queries */

View file

@ -229,6 +229,11 @@ details.undocumented > summary::before {
color: #999;
}
details.rustdoc-toggle > summary::before,
details.undocumented > summary::before {
filter: invert(100%);
}
#crate-search {
color: #c5c5c5;
background-color: #141920;

View file

@ -194,6 +194,11 @@ details.undocumented > summary::before {
color: #999;
}
details.rustdoc-toggle > summary::before,
details.undocumented > summary::before {
filter: invert(100%);
}
#crate-search {
color: #111;
background-color: #f0f0f0;

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View file

@ -0,0 +1 @@
url(data:image/png;base64,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)

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View file

@ -0,0 +1 @@
url(data:image/png;base64,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)

View file

@ -64,6 +64,10 @@ crate static RUST_FAVICON_SVG: &[u8] = include_bytes!("static/images/favicon.svg
crate static RUST_FAVICON_PNG_16: &[u8] = include_bytes!("static/images/favicon-16x16.png");
crate static RUST_FAVICON_PNG_32: &[u8] = include_bytes!("static/images/favicon-32x32.png");
/// The pixel art buttons
crate static MINUS_PNG_DATAURL: &str = include_str!("static/images/minus-17x17.png.url");
crate static PLUS_PNG_DATAURL: &str = include_str!("static/images/plus-17x17.png.url");
crate static PAGE: &str = include_str!("templates/page.html");
/// The built-in themes given to every documentation site.