|
58 | 58 | {% set sorted_languages = language_tuples | sort(attribute='name') %} |
59 | 59 |
|
60 | 60 | <div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="versions"> |
61 | | - <span class="rst-current-version" data-toggle="rst-current-version"> |
| 61 | + {# Use <button> so the toggle has native keyboard semantics and can |
| 62 | + carry aria-expanded. The RTD theme JS uses [data-toggle] selectors |
| 63 | + so the element type does not matter for the toggle behaviour. #} |
| 64 | + <button type="button" |
| 65 | + class="rst-current-version" |
| 66 | + data-toggle="rst-current-version" |
| 67 | + aria-expanded="false" |
| 68 | + aria-controls="rst-other-versions-user"> |
62 | 69 | 🌐 {{ language_names.get(language, language) }} |
63 | | - <span class="fa fa-caret-down"></span> |
64 | | - ☁️ {{ current_version }} |
65 | | - <span class="fa fa-caret-down"></span> |
66 | | - </span> |
67 | | - <div class="rst-other-versions"> |
| 70 | + <span class="fa fa-caret-down" aria-hidden="true"></span> |
| 71 | + ☁️ {{ current_version }} |
| 72 | + <span class="fa fa-caret-down" aria-hidden="true"></span> |
| 73 | + </button> |
| 74 | + <div id="rst-other-versions-user" class="rst-other-versions"> |
68 | 75 | <dl> |
69 | 76 | <dt>🌐 {{ _('Languages') }}</dt> |
70 | 77 | {% for lang in sorted_languages %} |
|
97 | 104 | </dl> |
98 | 105 | </div> |
99 | 106 | </div> |
| 107 | + <script> |
| 108 | + /* Keep aria-expanded in sync with the RTD theme toggle class. */ |
| 109 | + (function () { |
| 110 | + var btn = document.querySelector('.rst-current-version[aria-expanded]'); |
| 111 | + if (!btn) return; |
| 112 | + btn.addEventListener('click', function () { |
| 113 | + var expanded = this.getAttribute('aria-expanded') === 'true'; |
| 114 | + this.setAttribute('aria-expanded', expanded ? 'false' : 'true'); |
| 115 | + }); |
| 116 | + }()); |
| 117 | + </script> |
100 | 118 | {% endif %} |
0 commit comments