Multiselect Listbox Test
HTML Select w/ multiple
(Note: Default behavior requires holding CTRL to make multiple selections, and will unselect all previously selected options if you do not -- this is confusing and error prone.)
Listbox w/ aria-checked
ARIA Listbox Pattern recommends using aria-checked instead of aria-selected for multiselect widgets, but both JAWS and NVDA say "not selected" if there is no aria-selected attribute, resulting in "not selected, checked", which is incorrect.
- Option 1
- Option 2
- Option 3
Listbox w/ aria-selected
Both JAWS and NVDA say "not selected" for not-selected options, but do not say anything for selected options. This seems unclear, but is not wrong.
- Option 1
- Option 2
- Option 3
Listbox w/ aria-checked AND aria-selected
Both JAWS and NVDA say "not selected, not checked" and "checked" for not-selected and selected options respectively. This is more clear, although a bit verbose, but the ARIA Listbox Pattern says not to use both.
- Option 1
- Option 2
- Option 3
Conclusions
Screen readers probably should not say "not selected" when there is no aria-selected attribute present -- they should only say "not selected" if aria-selected="false".
Screen readers probably should say "selected" when aria-selected="true" within a listbox with aria-multiselectable="true". (The decision not to say "selected" seems based on the behavior of single-select listboxes, where selection follows focus so it is unnecessary and redundant to say "selected" on every option.)