Dropdown (Select) — Accessibility Specification

WCAG 2.1 AA • AODA compliant • Updated 2025-10-28


What is this component?

What is this component? A dropdown (native <select>) lets users choose a single option (or multiple with multiple) from a list. Native selects have built‑in semantics, keyboard support, and platform behaviors.

Where and how is it used? Use for choosing from finite, well‑defined options (e.g., country, size, quantity). Prefer native <select> for reliability and accessibility across devices.

Accessibility Requirements

RequirementWCAG CriteriaDescription
Programmatic label1.3.1, 3.3.2Associate the <select> with a <label for> or wrap the input. Provide helpful instructions or aria-describedby when needed.
Keyboard operability2.1.1Focus via Tab, open with Alt+↓ (OS dependent), navigate with arrows, confirm with Enter or Space.
Focus visible2.4.7Provide a clear visible focus indicator on the control.
Name, Role, Value4.1.2Native select exposes role “combobox/listbox” as appropriate, name from label, and value from the selected option.
Error identification3.3.1Errors are identified with text and programmatic association; don’t rely on color alone.

ARIA Roles and Attributes

ARIA Role/AttributeUsed OnPurpose & Usage
<select> / <option>Native dropdownPreferred. Avoid replacing with custom widgets unless necessary.
aria-describedbySelect needing help/error textAssociates assistive hint or error details.
aria-invalid="true"Invalid inputIndicates error state programmatically when validation fails.

Implementation Guidelines




DO’s

Don’ts

Common Pitfalls

Testing Checklist

Test ItemWCAG CriteriaPass Criteria
Label reads correctly1.3.1, 3.3.2Screen reader announces the label as the control’s name.
Keyboard interaction2.1.1Open, navigate, and select using keyboard; no traps.
Focus visible2.4.7Visible focus ring appears on select.
Error identification3.3.1Error message is shown and announced; state set to aria-invalid="true" if applicable.