fix: #3621976 Fix Accessible Menu navigation styling and duplicate Bootstrap loading

Fixes the theme-side integration for #3621976 (closed).

  • Keep one Bootstrap JavaScript bundle, matching the theme CSS version.
  • Align the Accessible Menu Tags item, caret, focus and hover colors with the navigation bar and prevent collapsed dropdowns from opening on hover.
  • Keep the navigation within the viewport down to 320 px.
  • For the Bootstrap 5 Disclosure Menu only, render parent items with children as native buttons at every nesting level. Ordinary and Top Link Disclosure menus keep their original links. This replaces a site-specific production workaround and does not depend on a hostname.
  • Add browser regression coverage for four label scripts, keyboard behavior, responsive layouts, and the Bootstrap library override, plus a Drupal unit test for the disclosure-menu preprocessing scope.

The separate keyboard integration change is Accessible Menu MR!14. Both changes were tested together in a disposable Drupal installation: 85/85 navigation checks and 13/13 touch/resize checks passed. The touch checks were browser-emulated; a physical device and screen reader were not tested.

Intermediate-width navigation and production preview

The browser regression reproduces the production header with all eight items and account links. At 1200, 1283 and 1399 px, the add link remains on the same baseline with no horizontal overflow. Browser tests: 13/13; theme JavaScript tests: 33/33. The combined theme and Accessible Menu candidates also passed 85/85 four-language navigation checks and 13/13 touch/resize checks in disposable Drupal.

The new parent-control change passed the PHP unit test (7 assertions), Drupal PHPCS, and a clean disposable install with English, Japanese, Simplified Chinese and Thai routes. Each route rendered a native Tags button. A reversible container-only preview is deployed on i.pixie.works: clicking the Tags label and pressing Enter opens the three child links; Escape closes them. The homepage and i Address return HTTP 200 and the container is healthy. This preview is not a release and will be lost if the container is recreated before an image containing the change is deployed.

The current MR pipeline must pass before review. No merge or release has been performed.

Edited by AI Yas

Merge request reports

Loading
Loading