From 7a26f7ec15596a90c6a1a7d8dbe52cebe6c0fd22 Mon Sep 17 00:00:00 2001
From: alexisben <alexiben7@gmail.com>
Date: Thu, 28 Jul 2022 16:27:22 +0200
Subject: [PATCH] a11y on main menu

---
 assets/js/theme/nav/mainMenu.js           | 13 ++++++++++---
 assets/sass/_theme/design-system/nav.sass |  4 ++--
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/assets/js/theme/nav/mainMenu.js b/assets/js/theme/nav/mainMenu.js
index 61f3badc..a43851bd 100644
--- a/assets/js/theme/nav/mainMenu.js
+++ b/assets/js/theme/nav/mainMenu.js
@@ -47,9 +47,16 @@ class MainMenu {
         document.documentElement.classList.toggle(CLASSES.menusOpened);
     }
 
-    toggleDropdown (button) {
-        const isExpanded = button.getAttribute('aria-expanded') === 'true';
-        button.setAttribute('aria-expanded', !isExpanded);
+    toggleDropdown (clickedButton) {
+        const isExpanded = clickedButton.getAttribute('aria-expanded') === 'true';
+        // Close all dropdowns except selected
+        this.dropdownsButtons.forEach(button => {
+            if (clickedButton === button) {
+                clickedButton.setAttribute('aria-expanded', !isExpanded);
+            } else {
+                button.setAttribute('aria-expanded', 'false');
+            }
+        });
     }
 
     onScroll () {
diff --git a/assets/sass/_theme/design-system/nav.sass b/assets/sass/_theme/design-system/nav.sass
index 6d38a562..ce2ac2ae 100644
--- a/assets/sass/_theme/design-system/nav.sass
+++ b/assets/sass/_theme/design-system/nav.sass
@@ -46,8 +46,8 @@
                 display: block
             &:last-child a
                 padding-right: 0
-        li.has-children:hover
-            .dropdown-menu
+        li.has-children
+            a[aria-expanded="true"] + .dropdown-menu
                 display: block
 
     .nav-level-2
-- 
GitLab