simulang_rs::Node (macOS AXUIElement / Windows UIA element /
Linux AT-SPI accessible / Android uiautomator snapshot node).
Obtain via [Machine.focusedRoot], [Machine.systemRoot],
[Machine.nodeAtPoint], [Instance.root], [Window.node],
or via tree-walking methods on another node / Instance / Window
(children, find, scoredSearch). Desktop nodes are live handles
whose properties re-resolve from the platform accessibility framework
on each access; Android nodes are part of a parsed snapshot whose
actions resolve back to the live screen.
Constructor
Returns
AccessibilityNode
Properties
string
required
Stable element identifier that the inspected application’s own source
code assigned to this element (e.g. for its UI tests), or the empty
string when the application didn’t set one — most elements don’t have
it.Each platform reads its native concept: UIA
AutomationId on Windows,
AXIdentifier on macOS, AT-SPI Accessible.AccessibleId on Linux,
and the view resource-id on Android.string
required
Platform class name (Windows UIA
ClassName / macOS subrole /
Android widget class).string
required
Short description (
AXDescription / UIA Name-adjacent fields).string
required
Help text / tooltip.
boolean
required
Whether the node accepts user input.
null | boolean
required
Whether the platform reports the node as visible, or
null when the
visibility attribute cannot be read.On Windows this maps to UIA !IsOffscreen; on Linux to the AT-SPI
Visible + Showing states. On macOS it reads the non-standard
AXVisible attribute — a Chromium-specific extension that native
apps don’t expose (→ null). Note Chromium’s accessibility-tree
visibility is compositor-driven, not pixel-driven: many
web-content nodes (including links) report AXVisible = false
even when rendered, so filtering a browser window on
isVisible === true can silently drop most of the page.string
required
Localized control type string.
string
required
Accessible name (title / label).
string
required
Synthetic, query-friendly description used by
scoredSearch (combines
the node’s role, label, value, and a small amount of ancestor context).AriaRole
required
Cross-platform ARIA role.
null | string
required
Hyperlink target of this node, or
null when the node is not a link,
the link has no target, or the platform backend does not expose the
target through the accessibility API. The string is the raw URL as
reported by the platform (no parsing or normalisation).string
required
Current text value (textbox content, slider value as string, …).
Methods
activate()
ancestors()
Returns
AccessibilityNode[]
boundingBox()
Machine]).
right and bottom are exclusive (Playwright / DOM convention).
Returns
BoundingBox
children()
snapshot,
scoredSearch, childrenCollapsed — treat such failures as “no
children” instead, so one torn-down subtree cannot abort a whole
walk.)
Returns
AccessibilityNode[]
childrenCollapsed()
children() is propagated; errors from a
collapsible wrapper’s own children() are treated as “no children”
(the walkers’ convention), so one torn-down wrapper cannot abort the
whole read.
Returns
AccessibilityNode[]
expandCollapse()
focus()
isAncestorOf()
other.
Parameters
AccessibilityNode
required
Returns
boolean
isChildOf()
other.
Parameters
AccessibilityNode
required
Returns
boolean
isDescendantOf()
other.
Parameters
AccessibilityNode
required
Returns
boolean
isParentOf()
other.
Parameters
AccessibilityNode
required
Returns
boolean
lowestCommonAncestor()
other, plus that ancestor’s
level from the reached parentless node (parentless = 0, its children
= 1). Returns null when both chains resolve and no shared ancestor
exists; lookup failures throw.
Parameters
AccessibilityNode
required
Returns
null | [AccessibilityNode, number]
parent()
null if this node has no parent. Parent lookup
failures throw.
Returns
null | AccessibilityNode
scoredSearch()
overallDescription
(simulang_rs::AXNodeSynthetic::summary_with_context).
Returns every node whose score equals the maximum found and exceeds
threshold — same semantics as simulang_rs::scored_search with
BowJaccard::score(...).primary as the scorer and a permissive
filter.
order–TraversalOrder.DepthFirstorTraversalOrder.BreadthFirstmax_nodes– upper bound on nodes visited (uses.take()over the walk)collapse_structural– hoist empty structural wrappers out of the walk before scoringquery– natural-language concept Jaccard-compared against each node’soverallDescriptionthreshold– minimum score to keep a node
Parameters
TraversalOrder
required
number
required
boolean
required
string
required
number
required
Returns
AccessibilityNode[]
scrollIntoView()
select()
setValue()
Parameters
string
required
showMenu()
ShowContextMenu, macOS
AXShowMenu, Linux AT-SPI show-menu, Android long-press).
The opened menu itself typically appears as the topmost / focused
window even when the target window stays in the background — a user
watching the desktop sees a menu pop up without having done
anything.
Throws when the element does not support opening a menu this way;
callers can fall back to a coordinate right-click at the element’s
boundingBox() center.
snapshot()
AXWindow on macOS,
UIA.ControlType.* on Windows), with title and value appended when
non-empty.
Returns
string
supportedActions()
"activate", "toggle", "scroll_into_view").
Returns
string[]

