From d8282d1b383d528e6271f1b5139588ffb95c4da5 Mon Sep 17 00:00:00 2001 From: Michael Howell Date: Fri, 16 Jul 2021 17:24:35 -0700 Subject: [PATCH 1/3] 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 94a902a2d0522..f529b2f2bfcdc 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 35c767a3c77ec..2e73d96d091e7 100644 --- a/src/librustdoc/html/static/css/rustdoc.css +++ b/src/librustdoc/html/static/css/rustdoc.css @@ -1489,11 +1489,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, @@ -1541,20 +1563,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 8296c3f91ca3b..c288d0b556c35 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 599fb942dbe2a..4175e00f998f2 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 zcmV-#43P7QP)EX>4Tx04R}tkv&MmKpe$iQ>7vm1q+HeWT;LSL`5C73Pq?8YK2xEOfLNpnlvOS zE{=k0!NHHks)LKOt`4q(Aou~|=H{g6A|?JWDYS_3;J6>}?mh0_0Ya_BG^=eC&~)2O zCE{WxyCQ~O5ke38Fom$pEMr!ZlJFg0_XzOyF2=L`&;2>N)SShDfJi*U4AUlFC!XB2 z4bJ<-5muB{;&b8=lP*a7$aTfzH_io@1)do()2TV)2(egbVWovx(bR}1h@+~eQ@)V# zSmnIMSu0goAMvPXS6bmWZkNfxsT)#vvg`Uwzx2Cnp`zgz>RKS{4P zwdfJhy$xJkH#KDsxZDBypA6ZQT`5RY$mfCgGy0}1(0dDXu6n&S_Hp_Eq^Yaq4RCM> z3>PSS&F9@6t-bwwrqSOIhc$Aq`Q-Sa00006VoOIv0RI600RN!9r;`8x010qNS#tmY zE+YT{E+YYWr9XB6000McNlirurSaechcOY8BBoXX=B?DRj@#@?6;*5z6R7s*sB zq&wO4Fl>`;Ho`F~T*cz58H2VhdXAgscvVM?+%%dRjm|W_@^Yhh8a>;_5G`p%4nZ)rI=!iE53xnC6-ijh5J-jeGQdstf}T^nr+Z= z3yoWBspYOaT&cV6sfW%z_SEx$uMIog@FNT!aio!NtZi1mZ6C0vH*01xCGGge8m=<0 zJxzZ>C&C#RGfsnX76#zZMmSSZJ7QdC$~qWF)^%961Cd+o6j4c%krpiKnXp>FEFIH0%={UH$|9eMuv@m>W zwp5$4r8;s6xv?IB3u0LqDVbgaw^9R^r|U7?UfAoQV0LsPY)P0IlI*O{ue^t~m^FA;(!$WH~S{cZ?Go;=@p-Fhs-y zk>1MPWIRiZ3mrB!wT(izC!;9HH`O)^M)~HDd5tOyJI7L7Pi9#MLyB*?Vl{vhj+!|R zWKS?6=&Hyf$a9zFu4w1+E1AvP`(Q^*Rz@WZ3%`dSjp3^dYJ7%$F?uh9CTlv-h6NEqB;46p0;xwdzft^*Vfu|?XvM+f zTt{H&Ko!20U8~%(5hrUMGb}n;4lNkqPRIr#P|!8zCh73>-Sb}N+2N;)TiuvPZ*AJ^ zvawmlg~-inYRU}Tko5CHRnSnNqKvo?-c1yOK6zW~!x5l@G^ z!0!-x0DiG?P0-fn(7Kvp&{0G%E0NH93?NMiZpsxm2}UPYz|VPz&$+f|r9ihYh;GBX z)SC&ZBLE-@dI|-RHF%Y=ULdPtlT++JGb?WfN+crCh0nvxO=yGL~_U1wfbv%f+-wKa5KO zx<9x;>=8B&F2Dp$FFBKOreZTOL4C@F#B8DCfef+n6tQNEE^Bn*VlpuYf8c^1$(S=1 zIu0`KT)bd{{+V24cJ!SJOm0!J{NxuVK*8c-GC?OQK9`0F|S+~E0ISH$)^xYKl+ zwjY*nyD?)3Z4INf@SQarl$$TXh# z*_AgWP_*knq0c%{H?s^>X5|g2t>TX^NAV}l;!mGB*u5w8)9I)Kt)7tn&Aw#rPz5|l zrBXw=6|dOC_MF7_Rl6FYOJzOMDqa~IT<>8PuM&(;e(3IB)%v6!8^15vFZNxHZYuP^ z^EJ(gKH$(b(^YXP6Q?k|X>gaGbV|-7$DziSYi64q($FT31XDB|vP$XKsn#YSeN+cN zD~D26ZRBOG57@2h+ph#rZwKyAVV4A7-aF6go6bGsQk~T|d5siJBcoFnGVtq*cfos; zF+~8%*6P}QMMk%(Z%cK*2!$@MA6DM7XiG=s8$rY7;>*~TZ=|#iEmq}QRhzt#!ncAb zr0^}q9R+=txXPQFku{5^IP8jkU&>e6m0i&xM6*FkORQhHnDM_SC8ZoiRC{>{CtV>_FhNikmzF#YB~nB7?hy|2s{+b!2~}C zwbe#>DGJw@*lI^YvkCTwk`65KxVg~$g5`YG1h2V6DFSZmP16ZVl9x7TBr(+oEbjzA z=a*g(ToJ&mbH{r3j+WE002ovPDHLkV1fg@>rMaw 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 0000000000000..a05bac5d875c5 --- /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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 Td7i2U00000NkvXXu0mjf{gOu@ 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 0000000000000..dd0078d1ace7e --- /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 2ec7e66234ddd..db34d60638e8a 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. From add535decae57fa87d229d6f59927f1770d70069 Mon Sep 17 00:00:00 2001 From: Michael Howell Date: Sat, 17 Jul 2021 10:55:33 -0700 Subject: [PATCH 2/3] Pull the "Expand" / "Collapse" text to the end of the line, instead of start --- src/librustdoc/html/static/css/rustdoc.css | 24 +++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/librustdoc/html/static/css/rustdoc.css b/src/librustdoc/html/static/css/rustdoc.css index 2e73d96d091e7..c38db6170301f 100644 --- a/src/librustdoc/html/static/css/rustdoc.css +++ b/src/librustdoc/html/static/css/rustdoc.css @@ -1489,10 +1489,7 @@ details.rustdoc-toggle > summary.hideme > span { } details.rustdoc-toggle > summary::before { - content: "Expand"; - font-weight: 300; - font-size: 0.8em; - letter-spacing: 1px; + content: " "; cursor: pointer; width: 17px; height: max(17px, 1.1em); @@ -1500,13 +1497,21 @@ details.rustdoc-toggle > summary::before { display: inline-block; vertical-align: middle; opacity: .5; - text-indent: 17px; +} + +/* Screen readers see the text version at the end the line. + Visual readers see the icon at the start of the line, but small and transparent. */ +details.rustdoc-toggle > summary::after { + content: "Expand"; overflow: hidden; + width: 0; + height: 0; + position: absolute; } -details.rustdoc-toggle > summary.hideme::before { +details.rustdoc-toggle > summary.hideme::after { /* "hideme" toggles already have a description when they're contracted */ - content: " "; + content: ""; } details.rustdoc-toggle > summary:focus::before { @@ -1569,6 +1574,11 @@ details.rustdoc-toggle[open] > summary.hideme::before { height: max(17px, 1.1em); background: data-url(minus-17x17.png) no-repeat top left; display: inline-block; + content: " "; +} + +details.rustdoc-toggle[open] > summary::after, +details.rustdoc-toggle[open] > summary.hideme::after { content: "Collapse"; } From 887526cf88b298d75f6924518e38e154456e6aa0 Mon Sep 17 00:00:00 2001 From: Michael Howell Date: Sat, 17 Jul 2021 11:28:26 -0700 Subject: [PATCH 3/3] Use empty string instead of single space --- src/librustdoc/html/static/css/rustdoc.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/librustdoc/html/static/css/rustdoc.css b/src/librustdoc/html/static/css/rustdoc.css index c38db6170301f..7dc867e2a5ec3 100644 --- a/src/librustdoc/html/static/css/rustdoc.css +++ b/src/librustdoc/html/static/css/rustdoc.css @@ -1489,7 +1489,7 @@ details.rustdoc-toggle > summary.hideme > span { } details.rustdoc-toggle > summary::before { - content: " "; + content: ""; cursor: pointer; width: 17px; height: max(17px, 1.1em); @@ -1574,7 +1574,7 @@ details.rustdoc-toggle[open] > summary.hideme::before { height: max(17px, 1.1em); background: data-url(minus-17x17.png) no-repeat top left; display: inline-block; - content: " "; + content: ""; } details.rustdoc-toggle[open] > summary::after,