{"id":"ia.widget-state","name":"Dynamic widget state","verify":{"command":null,"rescan":"isagentready results {domain} --checkpoint ia.widget-state","expect":null},"fix":{"steps":[{"action":"Add aria-expanded and aria-controls to disclosure buttons.","order":1,"language":"html","code_example":"<button aria-expanded=\"false\" aria-controls=\"filters\">Filters</button>\n<section id=\"filters\" hidden>...</section>"},{"action":"Add aria-selected to tabs, aria-checked to switches and role=\"status\" to async messages.","order":2,"language":null,"code_example":null}],"summary":"Expose the state of interactive widgets with ARIA state attributes.","skill":{"name":"content-semantics","anchor":"ia.widget-state"}},"category":"semantics","aggregate":null,"references":[{"title":"WAI-ARIA Authoring Practices","kind":"guide","url":"https://www.w3.org/WAI/ARIA/apg/"},{"title":"MDN ARIA states and properties","kind":"guide","url":"https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes"},{"title":"WCAG Name, Role, Value","kind":"spec","url":"https://www.w3.org/WAI/WCAG22/Understanding/name-role-value.html"}],"stage":"act","lifecycle":{"introduced":"2026-08-24","revised":[],"retired":null,"replaced_by":null},"methodology_version":"2026-10-22","evidence_tier":"standard","evidence_source":{"title":"WAI-ARIA Authoring Practices","url":"https://www.w3.org/WAI/ARIA/apg/"},"why":"Agents operate interactive widgets through the accessibility tree. Expandable panels, tabs, menus, switches, dialogs, and async status areas need explicit state so agents can tell what is open, selected, checked, current, or updating.","profiles":["browser_agent_usability"],"score_role":"core","legacy_id":"3.15","i18n":{"nl":{"name":"Status van dynamische widgets","steps":["Voeg aria-expanded en aria-controls toe aan uitklapknoppen.","Voeg aria-selected toe aan tabs, aria-checked aan schakelaars en role=\"status\" aan asynchrone meldingen."],"why":"Agents bedienen interactieve widgets via de accessibility tree. Panelen, tabs, menu's, schakelaars, dialogen en statusgebieden hebben een expliciete status nodig, zodat agents zien wat open, gekozen of bezig is.","fix_summary":"Toon de status van interactieve widgets met ARIA-statusattributen.","verify_expect":null}},"ar_practice_ids":[],"strength":"SHOULD","ar_mapping":"none","evidence_type":"recommendation","detail_url":"https://isagentready.com/en/methodology/checkpoints/ia.widget-state","maturity":"recommended","applicability":{"mode":"always","condition":null,"surfaces":["website"]}}