From 0ea2980ae5a87dd224c07d000d68852007b2e5c1 Mon Sep 17 00:00:00 2001 From: Michael Howell Date: Fri, 16 Jul 2021 08:04:49 -0700 Subject: [PATCH] feat(rustdoc): open sidebar menu when links inside it are focused Fixes #87172 Based on #87167 (which should be merged first) Preview it at https://notriddle.com/notriddle-rustdoc-test/std/index.html Co-authored-by: Guillaume Gomez --- src/librustdoc/html/static/css/rustdoc.css | 3 ++- src/test/rustdoc-gui/sidebar-mobile.goml | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/librustdoc/html/static/css/rustdoc.css b/src/librustdoc/html/static/css/rustdoc.css index 9e3ad66753133..35c767a3c77ec 100644 --- a/src/librustdoc/html/static/css/rustdoc.css +++ b/src/librustdoc/html/static/css/rustdoc.css @@ -1729,7 +1729,8 @@ details.undocumented[open] > summary::before { width: calc(100% + 30px); } - .show-it { + .show-it, .sidebar-elems:focus-within { + z-index: 2; left: 0; } diff --git a/src/test/rustdoc-gui/sidebar-mobile.goml b/src/test/rustdoc-gui/sidebar-mobile.goml index 9a1442e48a9ea..f0c9361d0806b 100644 --- a/src/test/rustdoc-gui/sidebar-mobile.goml +++ b/src/test/rustdoc-gui/sidebar-mobile.goml @@ -8,3 +8,13 @@ assert-css: (".sidebar-elems", {"display": "block", "left": "-246px"}) // Opening the sidebar menu. click: ".sidebar-menu" assert-css: (".sidebar-elems", {"display": "block", "left": "0px"}) +// Closing the sidebar menu. +click: ".sidebar-menu" +assert-css: (".sidebar-elems", {"display": "block", "left": "-246px"}) +// Force the sidebar open by focusing a link inside it. +// This makes it easier for keyboard users to get to it. +focus: ".sidebar-title" +assert-css: (".sidebar-elems", {"display": "block", "left": "0px"}) +// When we tab out of the sidebar, close it. +focus: ".search-input" +assert-css: (".sidebar-elems", {"display": "block", "left": "-246px"})