<main id="wrapper">
<aside aria-hidden="true" id="asideMenu">
<nav>
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
</aside>
<section id="content">
<header>
<nav id="mainMenu">
<button id="toggleAsideMenuButton" type="button">
Toggle aside menu
</button>
<a aria-hidden="true" class="focus-only" href="#asideMenu">
Skip to aside menu
</a>
<button id="sayHiButton" type="button">Say hi</button>
</nav>
</header>
</section>
</main>
[aria-hidden="true"] {
display: none;
}
.focus-only {
opacity: 0;
position: absolute;
pointer-events: none;
}
.focus-only:focus,
.focus-only:focus-within {
opacity: initial;
position: initial;
pointer-events: initial;
}
#main-wrapper {
display: flex;
height: 100vh;
}
#content {
flex-grow: 1;
}
#mainMenu {
background-color: lightblue;
padding: 1em;
}
#asideMenu {
background-color: antiquewhite;
padding: 0 2em 0 0;
}
document
.getElementById("toggleAsideMenuButton")
.addEventListener("click", (event) => {
const asideMenu = document.getElementById("asideMenu");
const asideMenuLink = event.target.nextElementSibling;
if (asideMenu.hasAttribute("aria-hidden")) {
asideMenu.removeAttribute("aria-hidden");
asideMenuLink.removeAttribute("aria-hidden");
} else {
asideMenu.setAttribute("aria-hidden", "true");
asideMenuLink.setAttribute("aria-hidden", "true");
}
});
document.getElementById("sayHiButton").addEventListener("click", () => {
alert("Hi!");
});
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.