What the person is doing
A team replaces native select styling with divs, popovers, portals, or JavaScript-only menus.
Quality check · lesson 20 of 20 · Selection And Choice
Underlying principle: Choice controls express how many options are available, how many may be selected, and when the selection takes effect. The control should reveal the meaning and consequence of each choice.
Treat the inaccessible custom select as an anti-pattern: use a native select for simple single-choice lists, or implement a complete accessible listbox, combobox, or multi-select contract when custom behavior is necessary.
Choice controls express how many options are available, how many may be selected, and when the selection takes effect. The control should reveal the meaning and consequence of each choice.
A team replaces native select styling with divs, popovers, portals, or JavaScript-only menus.
Treat the inaccessible custom select as an anti-pattern: use a native select for simple single-choice lists, or implement a complete accessible listbox, combobox, or multi-select contract when custom behavior is necessary.
Closed state with persistent label, current value, and collapsed state.
Does the screen reader announcement include label, current value, expanded state, option count or option names, active option, and selected state?
The trigger exposes an accessible name, current value, role, and expanded or collapsed state.
A team replaces native select styling with divs, popovers, portals, or JavaScript-only menus.
Open the working example, try its controls, and compare the behavior against the decision guidance.
A team replaces native select styling with divs, popovers, portals, or JavaScript-only menus.
Treat the inaccessible custom select as an anti-pattern: use a native select for simple single-choice lists, or implement a complete accessible listbox, combobox, or multi-select contract when custom behavior is necessary.
Closed state with persistent label, current value, and collapsed state.
Focus lost on close or trapped in a portal.
Expose name, role, value, expanded state, popup relationship, active option, and selected option state when implementing custom choice widgets.
W3C Web Accessibility Initiative - checked
APG listbox guidance documents keyboard interaction, labeling, active option, and selected state for custom listbox-style alternatives.
Government Digital Service - checked
GOV.UK select guidance supports native labels, hints, errors, selected values, and caution around long lists.
U.S. Web Design System - checked
USWDS select guidance supports sparing native select use, persistent labels, no auto-submit, and radio or combo-box alternatives.
Ontario Design System - checked
Ontario documents autocomplete as a text input with popup suggestions, combobox semantics, keyboard behavior, and selection from matching values.
IBM Carbon Design System - checked
Carbon documents multi-select dropdown behavior with selected tags, removal, filtering, clear-all, and multiple selection modes.
Source trail checked: