Overview
Collapses an expanded element such as a disclosure triangle, tree item, or accordion section. This hides child elements that were previously visible.Syntax
Parameters
Element reference from snapshot (must support expand/collapse)
Response
Response Fields
The action performed (
collapse)The element reference that was collapsed
Element state after collapse
role(string): Element rolestates(string[]): Does not include “expanded”
AX-First Strategy
The collapse command:- Checks if already collapsed via
kAXValueAttributeor states - If expanded, performs
kAXPressAction - Tries clicking disclosure triangle if present
- Verifies state changed to collapsed
Usage Examples
Collapse Folder in Finder
Collapse Tree Item
Collapse Disclosure Section
Collapse Nested Hierarchy
Supported Element Types
| Role | Collapse Behavior |
|---|---|
disclosure triangle | Hides child elements |
row (with disclosure) | Collapses tree row |
group | Collapses collapsible group |
outline | Collapses outline row |
button (disclosure) | Closes section |
State Changes
After collapse:- Element state no longer includes
"expanded" - Child elements hidden from accessibility tree
- Disclosure triangle icon changes (▼ → ▶)
- Subsequent snapshot shows fewer children
Error Cases
| Error Code | Cause | Recovery |
|---|---|---|
ELEMENT_NOT_FOUND | Ref doesn’t exist in current refmap | Run snapshot to refresh |
STALE_REF | Element no longer matches saved ref | Run snapshot and use new ref |
ACTION_FAILED | Element cannot be collapsed | Already collapsed or not collapsible |
ACTION_NOT_SUPPORTED | Element type doesn’t support collapse | Wrong element type |
Verifying Collapse
Common Use Cases
- File Navigation: Collapse folders in Finder
- Tree Views: Collapse hierarchy in IDEs
- Settings: Hide advanced options
- Outlines: Collapse outline sections
- Cleanup: Reduce visual clutter in sidebars
Collapse + Snapshot Pattern
Idempotency
Collapse is typically idempotent:Expand vs Collapse
| Command | Behavior | Icon Change | Children |
|---|---|---|---|
expand | Reveals children | ▶ → ▼ | Visible |
collapse | Hides children | ▼ → ▶ | Hidden |
Performance Benefits
Collapsing large trees improves performance:Collapse All Pattern
Notes
- Collapsed children lose their refs in subsequent snapshots
- Some apps animate collapse; add
waitafter command - Collapsed state persists until expanded or app restart
- Use
is @ref expandedto check state before collapsing - Collapsing parent automatically collapses children
- Some disclosure triangles are separate clickable elements
- Pair with
expandto manage tree visibility - Useful for reducing snapshot size and improving performance