Listbox
Allows selection of one or more items from a list of options.
Last updated
Was this helpful?
Allows selection of one or more items from a list of options.
Last updated
Was this helpful?
No screenshot yet.
The listbox pattern is a JavaScript widget. It allows selection of one or more items from a list of options.
Because it is not a form control, the value will not be passed to the server without the help of some client-side JavaScript.
A listbox can be self-contained, or be controlled by another widget (e.g. in a pattern, the textbox controls the listbox).
These are all known serious issues with assistive technology in relation to this pattern:
Experience the pattern in action on our companion .
Examine the required markup structure in our our .
View a fully styled example in our .
widget: the pattern as a whole, comprised of the parts below
listbox: contains a list of options
option: each option available for selection
checked: state of each option (checked or unchecked)
autoSelect: a listbox with auto select will update its checked state automatically as a user navigates with arrow keys (similar to a radio button group).
multiSelect: a listbox with multiSelect allows more than one option to be selected
This section is not yet available.
This section provides interaction design for keyboard, screen reader & pointing devices.
If the listbox has no owner, the listbox must be keyboard focusable.
If a listbox has keyboard focus, UP-ARROW
and DOWN-ARROW
keys must change the highlighted option (skipping any that are disabled).
For a listbox with autoSelect
configuration, highlighting an option must also select that option (i.e. aria-checked="true"
).
For a listbox without autoSelect
configutation, a highlighted option must be manually selected using the SPACEBAR
or ENTER
key.
With virtual cursor on listbox, screen reader should announce role of listbox.
The checked state of an option must be announced.
Disabled options must be announced as disabled.
Clicking or tapping button will toggle expanded state of flyout.
Clicking or tapping option in flyout will update button to that value.
This section is not yet available.
owner: specify the focusable element that will own and control the listbox programmatically (e.g. a ).
For a focusable listbox, keyboard focus will appear to be at two places at the same time (the listbox and the options). In actual fact, keyboard focus always stays on the listbox. The property controls the pseudo-focus inside of the listbox and we can use CSS to style the active descendant.