Aria Expanded Checker
Paste your page HTML and find menus, accordions and filters missing true/false expanded state or a matching panel id.
What this tool gives you
Check aria-expanded
Paste your page HTML. Analysis runs locally in your browser — nothing is sent anywhere.
Menus, accordions and filters need aria-expanded="true|false" plus an aria-controls id that exists.
What this checker looks for
WCAG 4.1.2 (Name, Role, Value) fails when a disclosure control never exposes whether it is open.
Boolean values
aria-expanded must be true or false — not yes, 1 or maybe.
Matching targets
aria-controls must point at an id that exists on the page.
Missing expanded
Buttons that already have aria-controls still need expanded state.
Menus and accordions
Nav toggles and FAQ rows are the usual gaps.
Closed is still a state
false is a valid value. Omitting the attribute is not.
0–100 score
Track disclosure bugs across templates, not just the homepage.
How to expose expand/collapse state
Three rules cover almost every broken accordion and nav toggle.
Use true or false
aria-expanded must be a boolean. yes, 1 and maybe are ignored by assistive tech.
Point at a real id
aria-controls should match the panel id that opens. Invented ids fail silently.
Keep it in sync
Flip the attribute when the panel opens. A stuck false is as wrong as a missing attribute.
Why answer engines care about disclosure state
Open/closed state is a cheap-to-parse signal that the page has real interactive structure, not fake dropdowns.
| Signal | What engines infer | Why it helps |
|---|---|---|
| Boolean expanded | Menus actually open and close. | Extractors can tell primary nav from collapsed chrome. |
| Matching panel ids | The control owns a real region. | Crawlers follow the disclosure instead of a dead button. |
| FAQ accordions | Answers are in structured panels. | Citation-ready Q&A without a fake “click to expand”. |
| WCAG 4.1.2 pass | State is exposed to AT. | Citable, trustworthy pages get quoted more often. |
| Keyboard-friendly | Users can act on every toggle. | Engagement quality feeds crawl and ranking models. |
Related GEO pages
Disclosure state pairs with named buttons and named dialogs so interactive chrome is actually usable.
Aria-expanded FAQs
Why does aria-expanded have to be true or false?
WCAG 4.1.2 (Name, Role, Value) requires the current state of a disclosure to be programmatically available. Values like yes, 1 or maybe are ignored. Screen readers announce “collapsed” or “expanded” only for true/false.
Do I still need aria-controls?
Yes when the panel is a sibling, not nested. Point aria-controls at the panel id so AT can jump to the content that just opened. A missing or invented id is a silent fail.
Is a details/summary enough without aria-expanded?
Native <details> exposes open state on its own. Custom buttons, nav toggles and accordion headers still need aria-expanded kept in sync when the panel opens and closes.