Accessible Components Case Study

This case study describes my exploration of alternative dropdown component designs for improved accessibility.

ROLE

UI/UX Designer and Front-End Developer

TIMELINE

February - March 2024

SKILLS

Figma, HTML, CSS

Introduction

In this case study, I examined one UI component and considered an alternative design that could increase the component's accesibility, potentially at the risk of learnability, memorability, or efficiency. The UI component I chose is the dropdown menu. I explored the accessibility of this component across devices and across modes of interacting with the device.

Problem

Many applications use default dropdown components, and many others have custom dropdowns. Regardless of who designed it, many dropdown components suffer from a lack of usability and accessibility, as I will explore. By understanding flaws with dropdown components in use in popular applications, I can practice designing with an alternative approach that prioritizes accessibility.

Input

I began by examining three applications with dropdown menus, including the EdStem website, the Appple Calendar web/mobile app, and the Starbucks website/mobile app. For context, EdStem is a message board platform that facilitates student, TA, and professor interactions in use at Brown University. I first explored how different modes of input, including the mouse/touchpad, keyboard, and touch (on mobile) enabled different interactions with a dropdown menus in these three applications.

EdStem Web App

Compiled screenshots of my interactions with the filter dropdown menu on EdStem

Mouse/Touchpad

  • When I hover over "Filter", the button turns from gray to blue. Once I click on the button, the dropdown menu appears below the "Filter" button.
  • One feature that stood was that the button turns blue on hover, whereas neither Apple Calendar or Starbucks components change color on hover. This makes it easier for a mouse user to see that they are in range to click the dropdown menu button they want to press.

Keyboard

  • I had to press the tab key until "Filter" was focused, then I used the return key to open the menu. Then, I could use the up and down arrows to change which option was focused. When I pressed return, the focused option was inputted.
  • With my keyboard, I can't select the text in the dropdown menu. I tried Command + A, but it selected all the other text on the page except the text in the dropdown menu.

Touch/Mobile

  • On my phone, the dropdown menu comes up from the bottom of my screen, and covers the entire screen. From there, I can click on a filter, which closes the dropdown and applies the filter, or click "Cancel", which closes the dropdown without filtering.
  • If there are too many filter options to fit the screen height, I can scroll to see more options below.

Calendar Mac App/Mobile App

Compiled screenshots of my interactions with the calendar dropdown menu on Apple Calendar

Mouse/Touchpad

  • When I hover with my mouse over the dropdown button, it does not change. Once I click the button, the menu appears over the button.
  • One gap in learnability is that the dropdown menu has an up and a down arrow on the button, while many users would expect only a down arrow. There is no text on this button, which not learnable but is efficient from a space perspective.

Keyboard

  • With a calendar event open, as I tabbed through the options on the editing window, the dropdown menu button was never focused.
  • This component not being navigable with the keyboard makes it unusable and inaccessible. This is a mismatch, since the dropdown can only be used with a mouse or VoiceOver.

Touch/Mobile

  • On my phone, the dropdown menu pulls up and covers the right half of my screen. I can scroll when the options overflow, click to the left to leave the dropdown, or select a calendar option.
  • This dropdown is more learnable than on desktop because the name of the current calendar is on the mobile dropdown menu button.

Starbucks Web App/Mobile App

Compiled screenshots of my interactions with the milk dropdown menu on Starbuck

Mouse/Touchpad

  • When I hover with my mouse over the dropdown button, it does not change. When I click it, it turns green and the dropdown menu opens over it.
  • Something that could improve efficiency would be adding a "Favorites" section at the top of the dropdown where users could save their preferred milk for easy clicking, since repeat customers often have strong milk preferences.

Keyboard

  • With my keyboard, I used the tab key to focus on the dropdown button, but when I pressed the return key, the menu did not open. I later learned that only with VoiceOver on, I could use the keys Control + Option + Space to open the menu.
  • Similar to Apple Calendar, I was disappointed that I failed to navigate into the milk dropdown with my keyboard.

Touch/Mobile

  • On my phone, the dropdown menu comes up from the bottom and covers almost the entire screen. I can scroll when the options overflow, click to the X to leave the dropdown, or select a milk option.
  • I appreciate that the Starbucks website and mobile app have similar dropdown designs. This makes the platforms more efficient and learnable for users who switch between the website and app.

Output

After exploring inputs, I also explored outputs from the dropdown menus on these three applications. The inputs can change the state of a dropdown component, and the output reflects these state changes to the user. I explored outputs including color, text label, focus order, and screen reader output.

EdStem Web App Calendar Mac App/Mobile App Starbucks Web App/Mobile App
Colors
  • The "Filter" dropdown button turns blue on hover, which signals that this "Filter" text is clickable.
  • Once the dropdown menu is open, when hovering over an option, it turns blue, signalling that it can be selected.
  • Each calendar is assigned a color, and the button's color changes to the color of the calendar selected.
  • This increases efficiency, because users learn what color calendar they are looking for without needing to read the text in the dropdown menu.
  • Hovering over the "Milk" dropdown button on the Starbucks website on Mac, its color does not change.
  • I don't find this color output useful, since when you click the button, the dropdown menu also appears, so you already know you've clicked the button.
Text Label
  • The button to open this dropdown menu is initially labeled with the text "Filter" and a downward arrow.
  • However, after the user selects a filter from the dropdown, the text label changes from "Filter" to the name of the filter applied, such as "Unread".
  • On Mac, there is no text label on the calendar dropdown, only the color and the up and down arrows. On mobile, the button does have text (the calendar currently selected for the event).
  • This text output verifies to users that they selected the correct calendar.
  • The dropdown button is labeled above it with “Milk” and the name of the current milk. The default is 2% milk, but if the user selects a different milk, the text label updates.
  • Instead of a default, it should start as “Not Selected”, and the user shouldn't be able to buy the drink without selecting a milk.
Focus Order
  • Using the tab key, I can focus on the "Filter" dropdown button, and then use the return key to open the menu. Then, I have to use the up and down keys to switch between options, and the tab key does nothing.
  • In addition to the up and down keys, I think the tab key should also work to switch between these options.
  • When I use the tab key inside this window, the dropdown menu is never focused on. This sends confusing outputs/signals back to the user.
  • If they cannot focus on the dropdown menu, the application is signalling that it is disabled or not clickable, even though it is (and holds important functionality).
  • In the input section above, I found that I could focus on Starbucks' dropdown using the tab key, but could not use the keyboard to open the dropdown menu.
  • Since the return key does nothing, the user might be confused and think that they have focused on the wrong component in their effort to customize their milk selection.
Screen Reader
  • On my Mac, I turned on VoiceOver and focused on the "Filter" dropdown button. VoiceOver reads out "Filter, menu pop up collapsed, button".
  • When I opened the dropdown menu, VoiceOver read out "menu, ..." followed by each of the dropdown options.
  • When I turned VoiceOver on, I was able to use the tab key to focus on the calendar dropdown button. I turned VoiceOver off again and confirmed that I couldn't without it.
  • This impedes acccessibility, because not all impaired users use VoiceOver, or a screen reader at all.
  • VoiceOver instructed me to press Control + Option + Space to open the dropdown. I tried this keystroke again with VoiceOver off, which did not work.
  • Like Apple Calendar, Starbucks has created an accessibility problem by mismatching the needs of those that do not use VoiceOver.

State Models

After exploring input and output from dropdowns on EdStem, Apple Calendar, and Starbucks, I had several ideas about how to improve the dropdown components found in all three applications. However, this case study will focus on my redesign of the calendar dropdown menu in Apple Calendar.

Before beginning my redesign, I created state models to display the current interactions with Apple Calendar's calendar dropdown menu. State models show both the available states of the component, as well as the actions that transition between states. Below, the two state models display pre-revision interactions with the touchpad and the keyboard respectively.


Initial Calendar Dropdown Menu Component: Mouse User

State model for pre-revision mouse interactions with calendar dropdown menu on Apple Calendar
  • Given that this is the state model for mouse interactions, the user's mouse position and clicks cause all transitions between states. Another important note is that "Open" means that the dropdown menu has appeared.
  • As shown in the state model, the dropdown menu stays visible even when the mouse leaves the area, but disappears if the mouse clicks outside of the dropdown menu area.

Initial Calendar Dropdown Menu Component: Keyboard User

  • Without VoiceOver, I was unable to focus on the dropdown menu button with only my keyboard on Mac. So, this state model is missing a transition from inactive to focused, although it should be noted that the button can be tabbed into focus when VoiceOver is active.
  • Once the calendar dropdown menu button is focused, then users can press the return key, up and down arrows, and escape key to transition between states, as shown.
State model for pre-revision keyboard interactions with calendar dropdown menu on Apple Calendar

As noted above, there are several areas of improvement for these state models. Below, I present two new state models for my revised calendar dropdown, with mouse and with keyboard. The main design change I made includes adding a "Confirm" button to the dropdown menu. I will explore and justify this choice alongside the Figma models further below.


Revised Calendar Dropdown Menu Component: Mouse User

State model for revised keyboard interactions with calendar dropdown menu on Apple Calendar
  • The main revision I made was introducing a "Confirm" button on the dropdown menu. Now, after a user clicks one of the dropdown options, they also need to click "Confirm" to actually select their chosen option and close the dropdown.
  • If they do not select "Confirm" after clicking an option, and instead click away, their selection will not be submitted.

Revised Calendar Dropdown Menu Component: Keyboard User

  • For keyboard interaction, I added a transition from disabled to focused with the tab key, which the initial state model lacked.
  • This revised keyboard model also adds a "Confirm" button. Once the user has focused on an option, when they press return, their focused option is selected. This also automatically focuses on "Confirm", and the user can press the return key again to submit.
State model for revised keyboard interactions with calendar dropdown menu on Apple Calendar

Component Redesign in Figma

This Figma model is my redesign of the calendar dropdown menu in Apple Calendar, which allows users to assign an event to a particular calendar. In the model above, this dropdown is opened with the button with the blue square and the up/down arrows, located in the event editing window. The model contains three frames, described below:

Initial State

  • The first Figma frame displays the initial state of my revised calendar dropdown menu.
  • This is the state before the user has interacted with the dropdown, so the dropdown button is visible but the dropdown menu window has not been opened.

Open, Option Highlighted State

  • When the user opens the dropdown menu and hovers over (or focuses on) an option, they will see the second frame.
  • Here, the dropdown menu is open and one of the options is highlighted. However, the user has not clicked on their selection yet.

Open, Option Selected State

  • This is a bonus state that is important to understanding my redesign. After the user clicks on (or presses return on) an option, that option turns dark gray, but is not yet submitted.
  • Instead, the user still must press "Confirm" to submit their selection and close the dropdown.

While not shown in the Figma models, one way that my redesign increases accessibility is by allowing users to focus on the dropdown with their keyboard but without VoiceOver. This interaction was surprisingly missing in Apple Calendar.

The only way that this change decreases efficiency is by adding one more component that keyboard users need to tab through as they explore the event editing window. However, this is an insignficant loss in efficiency that significantly increases accessibility.

However, in other ways, my revised component does increase accessibility at the expense of efficiency. Adding a "Confirm" button means that frequent users have one more click or key to press before they can submit their dropdown selection. But, this increases accessibility beacuse it means that users with impaired motor control are less likely to accidentally submit their selection. The extra confirmation transition allows users to accidentally select an option, but change their selection without the window closing.

Reflections

This case study was a valuable opportunity to intentionally design a component with accessibility as the main priority. When thinking about making components more accessible, it's useful to think in terms of mismatches, or situations where an interface creates unnecessary barriers for certain users due to a lack of inclusive thinking.

In my redesign, adding keyboard navigability addresses the mismatch where users that only use the keyboard can still interact with this component. Similarly, adding "Confirm" addresses the mismatch where some users may accidentally press or interact with these components, and the confirmation step accomodates accidental clicks.

Generally, the mouse is most often prioritized when designing components, as many designers are fully-abled. But, this means that they may forget to consider the needs of those whose abilities are impaired. So, in this case study, I learned to prioritize the needs of users with abilities different from mine, while considering carefully tradeoffs with usability.