diff options
author | Joe Nelson <48225118+jonels-msft@users.noreply.github.com> | 2021-06-23 00:46:45 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-23 00:46:45 +0300 |
commit | 71d6d182cfeb7872c2399eac4a47d2f3c6b2c7d1 (patch) | |
tree | a5ffaca4bac9c1819aaa5c4bda0eafb5bd32cc4a /src | |
parent | ef9a0584ef6d43f898a2b787a541e31a79f560e8 (diff) |
Maintain aria-expanded along with .current in menu (#1151)
Use jquery setter chaining for speed
Diffstat (limited to 'src')
-rw-r--r-- | src/theme.js | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/src/theme.js b/src/theme.js index 19778a4..504fa64 100644 --- a/src/theme.js +++ b/src/theme.js @@ -145,11 +145,19 @@ function ThemeNav () { // If we found a matching link then reset current and re-apply // otherwise retain the existing match if (link.length > 0) { - $('.wy-menu-vertical .current').removeClass('current'); - link.addClass('current'); - link.closest('li.toctree-l1').parent().addClass('current'); + $('.wy-menu-vertical .current') + .removeClass('current') + .attr('aria-expanded','false'); + link.addClass('current') + .attr('aria-expanded','true'); + link.closest('li.toctree-l1') + .parent() + .addClass('current') + .attr('aria-expanded','true'); for (let i = 1; i <= 10; i++) { - link.closest('li.toctree-l' + i).addClass('current'); + link.closest('li.toctree-l' + i) + .addClass('current') + .attr('aria-expanded','true'); } link[0].scrollIntoView(); } @@ -188,13 +196,26 @@ function ThemeNav () { nav.toggleCurrent = function (elem) { var parent_li = elem.closest('li'); - parent_li.siblings('li.current').removeClass('current'); - parent_li.siblings().find('li.current').removeClass('current'); + parent_li + .siblings('li.current') + .removeClass('current') + .attr('aria-expanded','false'); + parent_li + .siblings() + .find('li.current') + .removeClass('current') + .attr('aria-expanded','false'); var children = parent_li.find('> ul li'); // Don't toggle terminal elements. if (children.length) { - children.removeClass('current'); - parent_li.toggleClass('current'); + children + .removeClass('current') + .attr('aria-expanded','false'); + parent_li + .toggleClass('current') + .attr('aria-expanded', function(i, old) { + return old == 'true' ? 'false' : 'true'; + }); } } |