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
- Make the attribute reference the
idof the currently active item, and update it as the user moves through the widget. - If the widget re-renders its items, make sure the new items keep stable
IDs, or update
aria-activedescendantin the same step. - Remove the attribute if the widget no longer exists or manages focus directly instead.
How Silktide tests this
- Find every element on the page with an
aria-activedescendantattribute. - Check the ID it references against the element IDs present on the page.
- 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.