Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/readthedocs/sphinx_rtd_theme.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoe Nelson <48225118+jonels-msft@users.noreply.github.com>2021-06-23 00:46:45 +0300
committerGitHub <noreply@github.com>2021-06-23 00:46:45 +0300
commit71d6d182cfeb7872c2399eac4a47d2f3c6b2c7d1 (patch)
treea5ffaca4bac9c1819aaa5c4bda0eafb5bd32cc4a /src
parentef9a0584ef6d43f898a2b787a541e31a79f560e8 (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.js37
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';
+ });
}
}