Skip to content
SilktideHelp

Missing aria-activedescendant ID

Silktide checks every aria-activedescendant attribute on your pages and verifies that the element ID it points to actually exists. This attribute tells which item inside a widget, such as a dropdown list, is currently highlighted.

<!-- Problem: no element on the page has id="opt-2" -->
<ul role="listbox" aria-activedescendant="opt-2">
  <li role="option" id="opt-1">First option</li>
</ul>

Why this matters

Widgets like custom dropdown lists, combo boxes, and grids keep on the container and use the aria-activedescendant attribute to say which item inside is active. When the reference points at an ID that does not exist, a user hears nothing as they move through the options - the widget seems to have no selection at all, making it unusable without sight.

How to fix it

  1. Make the attribute reference the id of the currently active item, and update it as the user moves through the widget.
  2. If the widget re-renders its items, make sure the new items keep stable IDs, or update aria-activedescendant in the same step.
  3. Remove the attribute if the widget no longer exists or manages focus directly instead.

How Silktide tests this

  1. Find every element on the page with an aria-activedescendant attribute.
  2. Check the ID it references against the element IDs present on the page.
  3. Report each reference that matches no element.

Troubleshooting

The target is created later by a script

Silktide tests the page as it loads. If the referenced element only exists after user interaction, the reference is still broken in the meantime - set aria-activedescendant only once its target exists.

This check reports nothing even though I expect findings

ARIA testing can be turned off per website. Check the advanced settings for the website.

Learn more

Last updated

Was this page helpful?

Missing aria-activedescendant ID | Silktide Help