ARIA in CSS

Sara tweeted something recently that resonated with me:




Also, Pro Tip: Using ARIA attributes as CSS hooks ensures your component will only look (and/or function) properly if said attributes are used in the HTML, which, in turn, ensures that they will always be added (otherwise, the component will obv. be broken)




Yes! I didn���t mention it when I wrote about accessible interactions but this is my preferred way of hooking up CSS and JavaScript interactions. Here���s old Codepen where you can see it in action:



[aria-hidden='true'] {
display: none;
}


In order for the functionality to work for everyone���screen reader users or not���I have to make sure that I���m toggling the value of aria-hidden in my JavaScript.



There���s another advantage to this technique. Generally, ARIA attributes���like aria-hidden���are added by JavaScript at runtime (rather than being hard-coded in the HTML). If something goes wrong with the JavaScript, the aria-hidden value isn���t set to ���true���, which means that the CSS never kicks in. So the default state is for content to be displayed. There���s no assumption that the JavaScript has to work in order for the CSS to make sense.



It���s almost as though accessibility and progressive enhancement are connected somehow…

 •  0 comments  •  flag
Share on Twitter
Published on October 27, 2020 09:27
No comments have been added yet.


Jeremy Keith's Blog

Jeremy Keith
Jeremy Keith isn't a Goodreads Author (yet), but they do have a blog, so here are some recent posts imported from their feed.
Follow Jeremy Keith's blog with rss.