Pending

User tests: Successful: Unsuccessful:

avatar LadySolveig
LadySolveig
2 Mar 2026

Further improvements from #47268 / #47269.

  • I read the Generative AI policy and my contribution is either not created with the help of AI or is compatible with the policy and GNU/GPL 2 or later.

Summary of Changes

  • Improved accessibility (WCAG) - collapsible menu items that have no URL now render as button instead of a
    Items that do carry a URL keep the element as a fallback.
  • SSR - active path detection - fixes issue with flickering icons on page load.
  • Improved ARIA support - aria-expanded, aria-controls, aria-current="page
  • Replaced MetisMenu with a native Joomla web component
    metismenujs is replaced by a new joomla-admin-menu web component, built on a reusable joomla-menu-base base component that provides can be reused across other menu contexts in the future.

joomla-admin-menu

  • Extends joomla-menu-base - inherits all keyboard navigation, ARIA wiring, and submenu
    toggle logic, only adds admin-sidebar-specific behaviour on top
  • CSS height transitions on open/close - overrides openSubmenu() / closeSubmenu() for animation and a 400 ms safety fallback in case the event never fires (e.g. prefers-reduced-motion or display:none)
  • Sidebar collapse toggle - wires up the #menu-collapse button and dispatches a joomla:menu-toggle custom event
  • Hover popout for collapsed sidebar - fly-out submenu
  • Client-side active detection fallback - fallback for SSR
  • Backwards-compatibility shim - on connect, migrates old mm-collapse/mm-show class
    names (from MetisMenu) to submenu-collapse/submenu-show, so existing template overrides
    using the old class names continue to work with the new component

joomla-menu-base (Reusable base class)

  • Reusable base class, intended to be extended by concrete components (e.g. joomla-admin-menu)
  • Configurable via menu-selector attribute
  • ARIA wiring on connect, sets aria-controls / aria-expanded automatically - SSR values are respected and not overwritten
  • Submenu toggle with open/close hooks — openSubmenu() and closeSubmenu() are overridable so
    subclasses can add transitions or animations without reimplementing the toggle logic
  • Keyboard navigation — full arrow-key, Home/End, Enter, Space and Escape support (see table below)
  • RTL-aware - ArrowLeft/ArrowRight swap direction when dir="rtl" is set on <html>
  • Lifecycle hooks - onConnected() and onDisconnected() are empty methods subclasses, override without needing to call super

Key bindings

Key: ArrowDown
Action: Move focus to next visible item
────────────────────────────────────────
Key: ArrowUp
Action: Move focus to previous visible item
────────────────────────────────────────
Key: ArrowRight
Action: Move focus to next (previous in RTL)
────────────────────────────────────────
Key: ArrowLeft
Action: Move focus to previous (next in RTL)
────────────────────────────────────────
Key: Enter
Context: .has-arrow, <a>.has-arrow
Action: Toggle submenu (<a> -> browser fires click, navigation blocked)
────────────────────────────────────────
Key: Space
Context: .has-arrow item
Action: Toggle submenu, prevent page scroll
────────────────────────────────────────
Key: Escape
Context: Item with open submenu
Action: Close own submenu, keep focus on trigger
────────────────────────────────────────
Key: Escape
Context: Item inside a submenu
Action: Close parent submenu, move focus to parent trigger
────────────────────────────────────────
Key: Home
Action: Focus first item in the current <ul>
────────────────────────────────────────
Key: End
Action: Focus last item in the current <ul>

Testing Instructions

[!IMPORTANT]
For this to test an update of the media asset is required, please use the prebuilt packages or run npm install.

Actual result BEFORE applying this Pull Request

TBD

Expected result AFTER applying this Pull Request

TBD

Link to documentations

Please select:

  • Documentation link for guide.joomla.org:

  • No documentation changes for guide.joomla.org needed

  • Pull Request link for manual.joomla.org:

  • No documentation changes for manual.joomla.org needed

avatar LadySolveig LadySolveig - open - 2 Mar 2026
avatar LadySolveig LadySolveig - change - 2 Mar 2026
Status New Pending
avatar joomla-cms-bot joomla-cms-bot - change - 2 Mar 2026
Category Modules Administration JavaScript Repository NPM Change
avatar LadySolveig LadySolveig - change - 2 Mar 2026
Title
[6.2] admin menu remove metismenu
[6.2] Admin menu improvements - SSR active path - Accessibility
avatar LadySolveig LadySolveig - edited - 2 Mar 2026
avatar LadySolveig LadySolveig - change - 2 Mar 2026
The description was changed
avatar LadySolveig LadySolveig - edited - 2 Mar 2026
avatar LadySolveig LadySolveig - change - 2 Mar 2026
The description was changed
avatar LadySolveig LadySolveig - edited - 2 Mar 2026
avatar LadySolveig LadySolveig - change - 2 Mar 2026
The description was changed
avatar LadySolveig LadySolveig - edited - 2 Mar 2026
avatar LadySolveig LadySolveig - change - 2 Mar 2026
Title
[6.2] Admin menu improvements - SSR active path - Accessibility
[6.2] Admin menu improvements - accessibility and modernization
avatar LadySolveig LadySolveig - edited - 2 Mar 2026
avatar LadySolveig LadySolveig - change - 2 Mar 2026
Title
[6.2] Admin menu improvements - accessibility and modernization
[6.2] Admin menu sidebar improvements - accessibility and modernization
avatar LadySolveig LadySolveig - edited - 2 Mar 2026
avatar LadySolveig LadySolveig - change - 2 Mar 2026
The description was changed
avatar LadySolveig LadySolveig - edited - 2 Mar 2026
avatar LadySolveig LadySolveig - change - 2 Mar 2026
The description was changed
avatar LadySolveig LadySolveig - edited - 2 Mar 2026
avatar LadySolveig LadySolveig - change - 2 Mar 2026
The description was changed
avatar LadySolveig LadySolveig - edited - 2 Mar 2026
avatar LadySolveig LadySolveig - change - 2 Mar 2026
The description was changed
avatar LadySolveig LadySolveig - edited - 2 Mar 2026
avatar LadySolveig LadySolveig - change - 2 Mar 2026
The description was changed
avatar LadySolveig LadySolveig - edited - 2 Mar 2026
avatar LadySolveig LadySolveig - change - 2 Mar 2026
The description was changed
avatar LadySolveig LadySolveig - edited - 2 Mar 2026
avatar LadySolveig LadySolveig - change - 2 Mar 2026
The description was changed
avatar LadySolveig LadySolveig - edited - 2 Mar 2026
avatar brianteeman
brianteeman - comment - 2 Mar 2026

As this is a significant reworking of the admin menu it would be great if some of the existing bugs with the admin menu are fixed with this.

#34067
#38142
#32273
#45490
#44785

There may be more

avatar LadySolveig
LadySolveig - comment - 2 Mar 2026

Thank you for the list 👍🏼
Some of them could already be resolved, I will go through the list and try to mark and also resolve as mutch as possible on the go.
Thank you very much for your input.

avatar brianteeman
brianteeman - comment - 2 Mar 2026

yes i thought they might be

avatar github-actions[bot]
github-actions[bot] - comment - 3 Mar 2026

This pull request has conflicts, please resolve those before we can evaluate the pull request.

Add a Comment

Login with GitHub to post a comment