Skip to content

Commit c133db0

Browse files
committed
A11Y: Add title attribute to theme switcher
This will add a `<title>` attribute to the SVG generated by font awesome, which will in turn update the Accessibility tree, which will now be - button "light/dark" focusable: true focused: bool - image: $title-text Should fix Quansight-Labs/czi-scientific-python-mgmt#76
1 parent 26fd0fb commit c133db0

File tree

4 files changed

+21
-13
lines changed

4 files changed

+21
-13
lines changed
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{# Displays an icon to switch between light mode, dark mode, and auto (use browser's setting). #}
22
{# As the theme switcher will only work when JavaScript is enabled, we hide it with `pst-js-only`. #}
3-
<button class="btn btn-sm nav-link pst-navbar-icon theme-switch-button pst-js-only" title="{{ _('light/dark') }}" aria-label="{{ _('light/dark') }}" data-bs-placement="bottom" data-bs-toggle="tooltip">
4-
<i class="theme-switch fa-solid fa-sun fa-lg" data-mode="light"></i>
5-
<i class="theme-switch fa-solid fa-moon fa-lg" data-mode="dark"></i>
6-
<i class="theme-switch fa-solid fa-circle-half-stroke fa-lg" data-mode="auto"></i>
3+
<button class="btn btn-sm nav-link pst-navbar-icon theme-switch-button pst-js-only" aria-label="{{ _('Color mode') }}" data-bs-title="{{ _('Color mode') }}" data-bs-placement="bottom" data-bs-toggle="tooltip">
4+
<i class="theme-switch fa-solid fa-sun fa-lg" data-mode="light" title="{{ _('Light') }}"></i>
5+
<i class="theme-switch fa-solid fa-moon fa-lg" data-mode="dark" title="{{ _('Dark') }}"></i>
6+
<i class="theme-switch fa-solid fa-circle-half-stroke fa-lg" data-mode="auto" title="{{ _('System Settings') }}"></i>
77
</button>

tests/test_build.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -996,7 +996,15 @@ def test_translations(sphinx_build_factory) -> None:
996996
assert "Modifier sur GitHub" in str(sidebar_secondary)
997997

998998
header = index.select(".bd-header")[0]
999-
assert "clair/sombre" in str(header)
999+
## TODO: update once translataion up to date
1000+
# assert "clair/sombre" in str(header)
1001+
# Text of theme switcher button have been changed,
1002+
# "light/dark" has been updated to "Color mode" and does not have a translation yet.
1003+
if "Color mode" not in str(header):
1004+
pytest.xfail(
1005+
"Please update test_build.py::test_translations now that new translation are available."
1006+
)
1007+
# End TODO
10001008

10011009
footer = index.select(".bd-footer")[0]
10021010
assert "Copyright" in str(footer)

tests/test_build/navbar_theme.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
<button aria-label="light/dark" class="btn btn-sm nav-link pst-navbar-icon theme-switch-button pst-js-only" data-bs-placement="bottom" data-bs-toggle="tooltip" title="light/dark">
2-
<i class="theme-switch fa-solid fa-sun fa-lg" data-mode="light">
1+
<button aria-label="Color mode" class="btn btn-sm nav-link pst-navbar-icon theme-switch-button pst-js-only" data-bs-placement="bottom" data-bs-title="Color mode" data-bs-toggle="tooltip">
2+
<i class="theme-switch fa-solid fa-sun fa-lg" data-mode="light" title="Light">
33
</i>
4-
<i class="theme-switch fa-solid fa-moon fa-lg" data-mode="dark">
4+
<i class="theme-switch fa-solid fa-moon fa-lg" data-mode="dark" title="Dark">
55
</i>
6-
<i class="theme-switch fa-solid fa-circle-half-stroke fa-lg" data-mode="auto">
6+
<i class="theme-switch fa-solid fa-circle-half-stroke fa-lg" data-mode="auto" title="System Settings">
77
</i>
88
</button>

tests/test_build/sidebar_subpage.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@
3333
</div>
3434
<div class="sidebar-header-items__end">
3535
<div class="navbar-item">
36-
<button aria-label="light/dark" class="btn btn-sm nav-link pst-navbar-icon theme-switch-button pst-js-only" data-bs-placement="bottom" data-bs-toggle="tooltip" title="light/dark">
37-
<i class="theme-switch fa-solid fa-sun fa-lg" data-mode="light">
36+
<button aria-label="Color mode" class="btn btn-sm nav-link pst-navbar-icon theme-switch-button pst-js-only" data-bs-placement="bottom" data-bs-title="Color mode" data-bs-toggle="tooltip">
37+
<i class="theme-switch fa-solid fa-sun fa-lg" data-mode="light" title="Light">
3838
</i>
39-
<i class="theme-switch fa-solid fa-moon fa-lg" data-mode="dark">
39+
<i class="theme-switch fa-solid fa-moon fa-lg" data-mode="dark" title="Dark">
4040
</i>
41-
<i class="theme-switch fa-solid fa-circle-half-stroke fa-lg" data-mode="auto">
41+
<i class="theme-switch fa-solid fa-circle-half-stroke fa-lg" data-mode="auto" title="System Settings">
4242
</i>
4343
</button>
4444
</div>

0 commit comments

Comments
 (0)