Skip to content

Commit

Permalink
♿️ feat(a11y): add keyboard accessibility to theme toggler
Browse files Browse the repository at this point in the history
  • Loading branch information
welpo committed Jan 3, 2024
1 parent b6a89e6 commit dce495e
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 1 deletion.
15 changes: 15 additions & 0 deletions static/js/themeSwitcher.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,18 @@ themeSwitcher.setAttribute('aria-pressed', currentTheme === 'dark');
if (localStorage.getItem('theme')) {
themeResetter.classList.add('has-custom-theme');
}

// Function to handle keydown event on theme toggler buttons.
function handleThemeTogglerKeydown(event) {
if (event.key === 'Enter' || event.key === ' ') {
event.preventDefault();
if (event.target === themeSwitcher) {
switchTheme();
} else if (event.target === themeResetter) {
resetTheme();
}
}
}

themeSwitcher.addEventListener('keydown', handleThemeTogglerKeydown);
themeResetter.addEventListener('keydown', handleThemeTogglerKeydown);
2 changes: 1 addition & 1 deletion static/js/themeSwitcher.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions templates/partials/theme_switcher.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
<div
title="{{ title_label }}"
class="theme-switcher"
tabindex="0"
role="button"
aria-label="{{ aria_label }}"
aria-pressed="false">
Expand All @@ -21,6 +22,7 @@
<div
title="{{ reset_str }}"
class="theme-resetter"
tabindex="0"
role="button"
aria-hidden="true"
aria-label="{{ reset_str }}">
Expand Down

0 comments on commit dce495e

Please sign in to comment.