From 40ac3a9343e9653ad5a15b06741e55f67322eeb2 Mon Sep 17 00:00:00 2001 From: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> Date: Fri, 12 Dec 2025 17:27:12 +0000 Subject: [PATCH] gh-138122: Tachyon Flamegraph: Make toggle keyboard accesible and adjust sidebar collapse CSS (#142638) --- .../_flamegraph_assets/flamegraph.css | 26 +++++++------------ .../sampling/_flamegraph_assets/flamegraph.js | 11 ++++++++ .../flamegraph_template.html | 19 +++++++++----- .../sampling/_shared_assets/base.css | 1 + 4 files changed, 35 insertions(+), 22 deletions(-) diff --git a/Lib/profiling/sampling/_flamegraph_assets/flamegraph.css b/Lib/profiling/sampling/_flamegraph_assets/flamegraph.css index 2940f263f7ff..03eb2274d23e 100644 --- a/Lib/profiling/sampling/_flamegraph_assets/flamegraph.css +++ b/Lib/profiling/sampling/_flamegraph_assets/flamegraph.css @@ -275,16 +275,8 @@ body.resizing-sidebar { } /* View Mode Section */ -.view-mode-section { - padding-bottom: 20px; - border-bottom: 1px solid var(--border); -} - -.view-mode-section .section-title { - margin-bottom: 12px; -} - -.view-mode-section .toggle-switch { +.view-mode-section .section-content { + display: flex; justify-content: center; } @@ -316,7 +308,7 @@ body.resizing-sidebar { } .section-content { - transition: max-height var(--transition-normal), opacity var(--transition-normal); + transition: max-height var(--transition-slow) ease-out, opacity var(--transition-normal) ease-out, padding var(--transition-normal) ease-out; max-height: 1000px; opacity: 1; } @@ -324,7 +316,9 @@ body.resizing-sidebar { .collapsible.collapsed .section-content { max-height: 0; opacity: 0; - margin-bottom: -10px; + padding-top: 0; + pointer-events: none; + transition: max-height var(--transition-slow) ease-in, opacity var(--transition-normal) ease-in, padding var(--transition-normal) ease-in; } /* -------------------------------------------------------------------------- @@ -634,10 +628,6 @@ body.resizing-sidebar { Legend -------------------------------------------------------------------------- */ -.legend-section { - margin-top: auto; - padding-top: 12px; -} .legend { display: flex; @@ -1023,3 +1013,7 @@ body.resizing-sidebar { border-color: #8e44ad; box-shadow: 0 0 8px rgba(142, 68, 173, 0.3); } + +.toggle-switch:focus-visible { + border-radius: 4px; +} diff --git a/Lib/profiling/sampling/_flamegraph_assets/flamegraph.js b/Lib/profiling/sampling/_flamegraph_assets/flamegraph.js index 6345320bd255..17fd95af8595 100644 --- a/Lib/profiling/sampling/_flamegraph_assets/flamegraph.js +++ b/Lib/profiling/sampling/_flamegraph_assets/flamegraph.js @@ -1302,6 +1302,17 @@ function initFlamegraph() { } } +// Keyboard shortcut: Enter/Space activates toggle switches +document.addEventListener('keydown', function(e) { + if (e.target.tagName === 'INPUT' || e.target.tagName === 'TEXTAREA') { + return; + } + if ((e.key === 'Enter' || e.key === ' ') && e.target.classList.contains('toggle-switch')) { + e.preventDefault(); + e.target.click(); + } +}); + if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", initFlamegraph); } else { diff --git a/Lib/profiling/sampling/_flamegraph_assets/flamegraph_template.html b/Lib/profiling/sampling/_flamegraph_assets/flamegraph_template.html index 02855563f83f..936c9adfc8c5 100644 --- a/Lib/profiling/sampling/_flamegraph_assets/flamegraph_template.html +++ b/Lib/profiling/sampling/_flamegraph_assets/flamegraph_template.html @@ -102,12 +102,19 @@ -