Skip to content

Proposal: aria-activedescendant should work transitively, and be specced as such #1500

@craigkovatch

Description

@craigkovatch

I haven't found any information speaking to the following scenario. I read through https://w3c.github.io/aria/#managingfocus_useragents and I don't think it addresses this question, but the language is a little hard to follow so please let me know if I'm just missing something :)

Example:

Suppose I have a role=combobox widget with a displayed role=listbox#some-list-id for autocomplete. Suppose also that the listbox widget uses aria-activedescendant for managing focus, i.e. the role=listbox element has tabindex=0 but none of its role=option children are focusable.

<input role="combobox" aria-haspopup="listbox" ... aria-activedescendant="some-list-id" />
<div role="listbox" id="some-list-id" aria-activedescendant="option-id-3">
  <div role="option" id="option-id-1">One</div>
  <div role="option" id="option-id-2">Two</div>
  <div role="option" id="option-id-3">Three</div> <!-- I would expect the screen reader to understand this option is "focused" if DOM focus is on the input element -->
</div>

In this situation, I feel the text field in the combobox ought to be able to set its aria-activedescendant="some-list-id", i.e. it doesn't need to know about the list's currently active item -- the combobox can just point at the listbox, and the listbox can then point to one of its internal options as active.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions