Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Nested Interactive Elements

Nested Interactive Elements

There have been numerous remarkable new UX experiences developed over the years, such as cards displaying an array of products and clickable list items with dynamic menu options, among others. However, only a few are aware of the challenges involved in building these structures with accessibility in mind, and unfortunately, some of them are completely inaccessible.

In today's talk, we will explore some of these prevalent web UX patterns and delve into the hidden challenges they present. While we may be able to mitigate some of these issues, others serve as cautionary tales in accessibility.

Cat Johnson

October 23, 2023
Tweet

More Decks by Cat Johnson

Other Decks in Technology

Transcript

  1. Unnest interactive elements <div role ="button"> Submit <a href=foo.bar> Download

    or click here to learn more </a> </div> <div role ="button"> Submit </div> <a href=foo.bar> Download or click here to learn more </a>
  2. Limit developer configurations • Restricting the passing of conflicting properties

    that would cause interaction issues. • Limit specific role configurations.
  3. Limit developer configurations export interface ComponentProps { id: string; name:

    string; …. role: string; } export interface ComponentProps { id: string, name: string, …. role: “listitem” | “menuitem”; }
  4. Overlay interactive components .nested { //css } <div role ="button">

    Mindfulness… </div> <button class=“nested” href=“….”> Menu </button>