I am trying to toggle an aria tag between true and false when a button is clicked. I've tried several implementations which seems to do absolutely nothing. Below is what I am currently using which successfully toggles the class. How can I extend this to toggle the aria-expanded value between true and false? Be easy on me, I am transitioning from jQuery to ES6.
const theTrigger = document.getElementById('mobile-form-control');
const theForm = document.querySelectorAll('.l-header__mobile-form');
theTrigger.onclick = function () {
for (const x of theForm) {
x.classList.toggle('show');
}
};
Assuming x in your for-loop is the element you want to toggle the aria-expanded attribute on:
theTrigger.onclick = function () {
for (const x of theForm) {
x.classList.toggle('show');
x.setAttribute(
'aria-expanded',
`${(x.getAttribute('aria-expanded') !== 'true').toString()}`
);
}
};
As of Firefox 119, you can use the ariaExpanded API to toggle true/false on that attribute:
x.ariaExpanded = x.ariaExpanded !== 'true';
NOTE: ariaExpanded returns a string, so you cannot use the logical NOT (!) operator by itself.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With