aria-invalid="true" is sufficient for screen readers to know, but an error message and possibly a visual indication would be nice for everyone to know what's wrong. The example listbox on this page implements the following keyboard interface. your coworkers to find and share information. I'm unclear on how to use aria-activedescendant, aria-selected and aria-checked.
Planned Economy Bakery - Trying to scale a nested loop with a heap, Is there a trick to avoid having to put IDs on every option simply so it can be referenced by. Presentation # aria.presentation = role ="presentation" intermixed with an optional aria-expanded element. A selection will always be there, and one or more of their checkboxes can be checked or not. (and once more: no idea if screenreaders etc would actually play along with this crazy idea). aria-selected more closely matches what you'd have with a select...but then again (particularly for multi-select widgets) you can imagine the listbox actually being a series of checkboxes, and in that case you'd use aria-checked. Is table header