Skip to content
SilktideHelp

Missing aria-owns ID

Silktide checks every aria-owns attribute on your pages and verifies that the element IDs it lists actually exist. This attribute adopts elements from elsewhere on the page as children of a widget, even though the code places them somewhere else.

<!-- Problem: no element on the page has id="menu-items" -->
<div role="menu" aria-owns="menu-items">…</div>

Why this matters

The aria-owns attribute rewires the : elements it references are treated as children of the owning element, regardless of where they sit in the code. When a reference is broken, that graft silently fails - a menu or tree can appear completely empty to a even though its items are plainly visible on screen. Because nothing looks wrong visually, these breaks tend to survive until someone tests with .

How to fix it

  1. Make each ID listed in aria-owns match the id of a real element on the same page.
  2. If the owned content moved or was renamed, update the reference in the same change - or better, restructure the code so the children sit inside their parent naturally and aria-owns is not needed.
  3. Make sure no element is owned twice: an id may appear in only one aria-owns on the page.

How Silktide tests this

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

Troubleshooting

The owned element is created later by a script

Silktide tests the page as it loads. If the owned content only exists after user interaction, the widget announces as empty until then - render the content hidden from the start, or set aria-owns once it 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?