Improve accessibility and resolve website audit findings
This commit is contained in:
+24
-6
@@ -2,17 +2,35 @@ const menuButton = document.querySelector('.menu-button');
|
||||
const siteNav = document.querySelector('.site-nav');
|
||||
|
||||
if (menuButton && siteNav) {
|
||||
menuButton.addEventListener('click', () => {
|
||||
const isOpen = siteNav.classList.toggle('open');
|
||||
const menuLabel = menuButton.querySelector('.sr-only');
|
||||
const desktopViewport = window.matchMedia('(min-width: 761px)');
|
||||
|
||||
const setMenuState = (isOpen) => {
|
||||
siteNav.classList.toggle('open', isOpen);
|
||||
menuButton.setAttribute('aria-expanded', String(isOpen));
|
||||
if (menuLabel) menuLabel.textContent = isOpen ? 'Close navigation' : 'Open navigation';
|
||||
};
|
||||
|
||||
menuButton.addEventListener('click', () => {
|
||||
setMenuState(!siteNav.classList.contains('open'));
|
||||
});
|
||||
|
||||
siteNav.querySelectorAll('a').forEach((link) => {
|
||||
link.addEventListener('click', () => {
|
||||
siteNav.classList.remove('open');
|
||||
menuButton.setAttribute('aria-expanded', 'false');
|
||||
});
|
||||
link.addEventListener('click', () => setMenuState(false));
|
||||
});
|
||||
|
||||
document.addEventListener('keydown', (event) => {
|
||||
if (event.key === 'Escape' && siteNav.classList.contains('open')) {
|
||||
setMenuState(false);
|
||||
menuButton.focus();
|
||||
}
|
||||
});
|
||||
|
||||
desktopViewport.addEventListener('change', (event) => {
|
||||
if (event.matches) setMenuState(false);
|
||||
});
|
||||
|
||||
setMenuState(false);
|
||||
}
|
||||
|
||||
const year = document.getElementById('year');
|
||||
|
||||
Reference in New Issue
Block a user