From c58246efe47bea09d4f3e70f536e4c9bb7770749 Mon Sep 17 00:00:00 2001 From: Michael Howell Date: Fri, 16 Jul 2021 17:24:35 -0700 Subject: [PATCH] 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 --- src/librustdoc/html/render/write_shared.rs | 7 ++- src/librustdoc/html/static/css/rustdoc.css | 54 ++++++++++++++++-- src/librustdoc/html/static/css/themes/ayu.css | 5 ++ .../html/static/css/themes/dark.css | 5 ++ .../html/static/images/minus-17x17.png | Bin 0 -> 3183 bytes .../html/static/images/minus-17x17.png.url | 1 + .../html/static/images/plus-17x17.png | Bin 0 -> 3337 bytes .../html/static/images/plus-17x17.png.url | 1 + src/librustdoc/html/static_files.rs | 4 ++ 9 files changed, 69 insertions(+), 8 deletions(-) create mode 100644 src/librustdoc/html/static/images/minus-17x17.png create mode 100644 src/librustdoc/html/static/images/minus-17x17.png.url create mode 100644 src/librustdoc/html/static/images/plus-17x17.png create mode 100644 src/librustdoc/html/static/images/plus-17x17.png.url diff --git a/src/librustdoc/html/render/write_shared.rs b/src/librustdoc/html/render/write_shared.rs index 94a902a2d05..f529b2f2bfc 100644 --- a/src/librustdoc/html/render/write_shared.rs +++ b/src/librustdoc/html/render/write_shared.rs @@ -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 { diff --git a/src/librustdoc/html/static/css/rustdoc.css b/src/librustdoc/html/static/css/rustdoc.css index 91243a4086c..ae321be09e2 100644 --- a/src/librustdoc/html/static/css/rustdoc.css +++ b/src/librustdoc/html/static/css/rustdoc.css @@ -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 */ diff --git a/src/librustdoc/html/static/css/themes/ayu.css b/src/librustdoc/html/static/css/themes/ayu.css index df386fb66a3..849924ea550 100644 --- a/src/librustdoc/html/static/css/themes/ayu.css +++ b/src/librustdoc/html/static/css/themes/ayu.css @@ -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; diff --git a/src/librustdoc/html/static/css/themes/dark.css b/src/librustdoc/html/static/css/themes/dark.css index c8a5dbdc66a..c26122e4bff 100644 --- a/src/librustdoc/html/static/css/themes/dark.css +++ b/src/librustdoc/html/static/css/themes/dark.css @@ -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; diff --git a/src/librustdoc/html/static/images/minus-17x17.png b/src/librustdoc/html/static/images/minus-17x17.png new file mode 100644 index 0000000000000000000000000000000000000000..3cdbbf5033ec412df28970edfc6da26d578252bf GIT binary patch literal 3183 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 literal 0 HcmV?d00001 diff --git a/src/librustdoc/html/static/images/minus-17x17.png.url b/src/librustdoc/html/static/images/minus-17x17.png.url new file mode 100644 index 00000000000..a05bac5d875 --- /dev/null +++ b/src/librustdoc/html/static/images/minus-17x17.png.url @@ -0,0 +1 @@ +url(data:image/png;base64,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) diff --git a/src/librustdoc/html/static/images/plus-17x17.png b/src/librustdoc/html/static/images/plus-17x17.png new file mode 100644 index 0000000000000000000000000000000000000000..fa996a147a5274789f8be9a0261bf2d7b8b49514 GIT binary patch literal 3337 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 literal 0 HcmV?d00001 diff --git a/src/librustdoc/html/static/images/plus-17x17.png.url b/src/librustdoc/html/static/images/plus-17x17.png.url new file mode 100644 index 00000000000..dd0078d1ace --- /dev/null +++ b/src/librustdoc/html/static/images/plus-17x17.png.url @@ -0,0 +1 @@ +url(data:image/png;base64,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) diff --git a/src/librustdoc/html/static_files.rs b/src/librustdoc/html/static_files.rs index 2ec7e66234d..db34d60638e 100644 --- a/src/librustdoc/html/static_files.rs +++ b/src/librustdoc/html/static_files.rs @@ -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.