[wp-trac] [WordPress Trac] #65029: Add Keyboard Shortcut to Hide and Show Toolbar on Frontend (was: Trac Ticket: Keyboard Shortcut to Toggle Toolbar on Frontend)
WordPress Trac
noreply at wordpress.org
Tue Apr 7 15:05:25 UTC 2026
#65029: Add Keyboard Shortcut to Hide and Show Toolbar on Frontend
-------------------------+------------------------------
Reporter: apermo | Owner: (none)
Type: enhancement | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Toolbar | Version:
Severity: normal | Resolution:
Keywords: has-patch | Focuses: accessibility
-------------------------+------------------------------
Changes (by sabernhardt):
* focuses: => accessibility
Old description:
> Add a keyboard shortcut (access+w) to temporarily hide and show the
> toolbar on the frontend. This gives logged-in users a quick way to
> preview their site without the toolbar, without navigating to Profile
> settings or logging out.
>
> Description
>
> When working on a site's frontend, the toolbar covers the top 32px (46px
> on mobile) of the page. Designers, content editors, and developers
> frequently need to see the page without it — for screenshots, visual
> testing, or checking how fixed headers behave. Today the only options
> are:
>
> 1. Uncheck "Show Toolbar when viewing site" in the user profile (requires
> a page reload)
> 2. Use show_admin_bar( false ) in code (requires a code change and
> reload)
> 3. Use browser DevTools to hide the element manually
> 4. Install a plugin (e.g. https://wordpress.org/plugins/apermo-adminbar-
> toggle/)
>
> None of these are fast or convenient for a quick toggle.
>
> Proposed Solution
>
> A keyboard shortcut using the WordPress access modifier pattern:
>
> - Windows/Linux: Alt+Shift+W
> - Mac: Ctrl+Option+W
>
> The "W" key is mnemonic for "WordPress toolbar." This follows the same
> modifier pattern used by all existing WordPress keyboard shortcuts (e.g.
> access+h for help, access+d for strikethrough), ensuring consistency.
>
> Behavior
>
> - Toggle only: The shortcut hides the toolbar; pressing it again brings
> it back.
> - No persistence: The state resets on page navigation. This is
> intentional — the feature is for quick previews, not a permanent setting.
> - Frontend only: The shortcut does not work in wp-admin, where the
> toolbar is part of the fixed layout and is not optional by design (see
> #19685).
> - Smooth animation: The toolbar slides up/down with a 200ms CSS
> transition.
> - Page spacing adjusts: The --wp-admin--admin-bar--height custom property
> is set to 0px when hidden, so scroll-padding-top and the bump margin-top
> adjust automatically. No content jump.
> - Accessible: An aria-live region announces "Toolbar hidden." / "Toolbar
> visible." for screen reader users. The toolbar element gets aria-
> hidden="true" when hidden.
>
> Shortcut Conflict Analysis
>
> The access+w shortcut was chosen after an audit of all existing
> shortcuts:
>
> WordPress: The letter w is completely free in both the classic editor and
> block editor access modifier space. No WordPress core shortcut uses
> access+w.
>
> Browsers: Alt+Shift+W / Ctrl+Option+W has no known conflicts in Chrome,
> Firefox, Safari, or Edge on any platform. (By contrast, access+b — "B for
> Bar" — conflicts with Chrome/Edge's "focus bookmarks bar" on
> Windows/Linux.)
>
> Historical note: WordPress previously used Alt+Shift+W for "Distraction
> Free Writing" mode, which was removed years ago. The association with
> "toggling a UI element for focus" is fitting.
>
> Prior Art
>
> - In 2016 I released a plugin, that never good notable attention with the
> feature https://wordpress.org/plugins/apermo-adminbar/ and
> https://wordpress.org/plugins/apermo-adminbar-toggle/
> - #53184 discusses auto-hiding the toolbar but does not propose a
> keyboard shortcut.
> - No existing Trac ticket specifically requests a keyboard shortcut to
> toggle the toolbar.
>
> Implementation
>
> The patch modifies three files:
>
> 1. src/js/_enqueues/lib/admin-bar.js — Adds a keydown listener for
> access+w (frontend only), a toggleToolbar() function that toggles the wp-
> toolbar-hidden class on <html>, and screen reader announcements via a
> live region.
> 2. src/wp-includes/css/admin-bar.css — Adds the html.wp-toolbar-hidden
> rules: sets --wp-admin--admin-bar--height: 0px, overrides the bump
> margin-top, and uses transform: translateY(-100%) with visibility: hidden
> to slide the bar out.
> 3. src/wp-includes/class-wp-admin-bar.php — Adds wp_localize_script for
> the two screen reader strings (toolbarHidden, toolbarVisible).
>
> Theme Compatibility
>
> Themes that use var(--wp-admin--admin-bar--height) for their toolbar
> offset will adjust automatically. Themes that hardcode a 32px top offset
> based on the .admin-bar body class will not adjust, but this is the same
> limitation that exists when users disable the toolbar via Profile
> settings today.
>
> Themes can also use the html.wp-toolbar-hidden selector to apply custom
> styles when the toolbar is hidden.
New description:
Add a keyboard shortcut (`access+w`) to temporarily hide and show the
toolbar on the frontend. This gives logged-in users a quick way to preview
their site without the toolbar, without navigating to Profile settings or
logging out.
==== Description
When working on a site's frontend, the toolbar covers the top 32px (46px
on mobile) of the page. Designers, content editors, and developers
frequently need to see the page without it — for screenshots, visual
testing, or checking how fixed headers behave. Today the only options are:
1. Uncheck "Show Toolbar when viewing site" in the user profile (requires
a page reload)
2. Use `show_admin_bar( false )` in code (requires a code change and
reload)
3. Use browser DevTools to hide the element manually
4. Install a plugin (e.g. https://wordpress.org/plugins/apermo-adminbar-
toggle/)
None of these are fast or convenient for a quick toggle.
==== Proposed Solution
A keyboard shortcut using the WordPress access modifier pattern:
- Windows/Linux: `Alt+Shift+W`
- Mac: `Ctrl+Option+W`
The "W" key is mnemonic for "WordPress toolbar." This follows the same
modifier pattern used by all existing WordPress keyboard shortcuts (e.g.
`access+h` for help, `access+d` for strikethrough), ensuring consistency.
===== Behavior
- Toggle only: The shortcut hides the toolbar; pressing it again brings it
back.
- No persistence: The state resets on page navigation. This is intentional
— the feature is for quick previews, not a permanent setting.
- Frontend only: The shortcut does not work in `wp-admin`, where the
toolbar is part of the fixed layout and is not optional by design (see
#19685).
- Smooth animation: The toolbar slides up/down with a 200ms CSS
transition.
- Page spacing adjusts: The `--wp-admin--admin-bar--height` custom
property is set to `0px` when hidden, so `scroll-padding-top` and the bump
`margin-top` adjust automatically. No content jump.
- Accessible: An `aria-live` region announces "Toolbar hidden." / "Toolbar
visible." for screen reader users. The toolbar element gets `aria-
hidden="true"` when hidden.
==== Shortcut Conflict Analysis
The `access+w` shortcut was chosen after an audit of all existing
shortcuts:
WordPress: The letter w is completely free in both the classic editor and
block editor access modifier space. No WordPress core shortcut uses
`access+w`.
Browsers: `Alt+Shift+W `/ `Ctrl+Option+W` has no known conflicts in
Chrome, Firefox, Safari, or Edge on any platform. (By contrast, `access+b`
— "B for Bar" — conflicts with Chrome/Edge's "focus bookmarks bar" on
Windows/Linux.)
Historical note: WordPress previously used `Alt+Shift+W` for "Distraction
Free Writing" mode, which was removed years ago. The association with
"toggling a UI element for focus" is fitting.
==== Prior Art
- In 2016 I released a plugin, that never got notable attention with the
feature https://wordpress.org/plugins/apermo-adminbar/ and
https://wordpress.org/plugins/apermo-adminbar-toggle/
- #53184 discusses auto-hiding the toolbar but does not propose a keyboard
shortcut.
- No existing Trac ticket specifically requests a keyboard shortcut to
toggle the toolbar.
==== Implementation
The patch modifies three files:
1. `src/js/_enqueues/lib/admin-bar.js` — Adds a `keydown` listener for
`access+w` (frontend only), a `toggleToolbar()` function that toggles the
`wp-toolbar-hidden` class on `<html>`, and screen reader announcements via
a live region.
2. `src/wp-includes/css/admin-bar.css` — Adds the `html.wp-toolbar-hidden`
rules: sets `--wp-admin--admin-bar--height: 0px`, overrides the bump
`margin-top`, and uses `transform: translateY(-100%)` with `visibility:
hidden` to slide the bar out.
3. `src/wp-includes/class-wp-admin-bar.php` — Adds `wp_localize_script`
for the two screen reader strings (`toolbarHidden`, `toolbarVisible`).
==== Theme Compatibility
Themes that use `var(--wp-admin--admin-bar--height)` for their toolbar
offset will adjust automatically. Themes that hardcode a `32px` top offset
based on the `.admin-bar` body class will not adjust, but this is the same
limitation that exists when users disable the toolbar via Profile settings
today.
Themes can also use the `html.wp-toolbar-hidden` selector to apply custom
styles when the toolbar is hidden.
--
--
Ticket URL: <https://core.trac.wordpress.org/ticket/65029#comment:3>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list