Automation role: textbox. Text source: text. Children: none.
Prop
Type
Default
Applied
text
string
(empty)
createAndUpdate
minContentHeight
int
120
create
testID
string
—
meta
Event
Handler
Payload
changed
onChanged
text
An empty TextArea collapses to 0 logical height, which fails the automation actionability check
until it has content or explicit sizing — see Automation Socket.
Automation role: list. Text source: none. Children: none.
Prop
Type
Default
Applied
items
stringList
—
createAndUpdate
selectedIndex
int
-1
createAndUpdate
testID
string
—
meta
Event
Handler
Payload
rowActivated
onRowActivated
index
itemCount (reported by getTree) is the row count, never a walk of GTK’s recycled row widgets.
React item-template components (rendering arbitrary JSX per row) are deferred — v1 renders native
string rows only.
Automation role: group. Text source: none. Children: multi.
Prop
Type
Default
Applied
sidebarWidth
float
0
create
collapsed
bool
false
createAndUpdate
listWidth
float
0
create
testID
string
—
meta
Attached props (set on children):
Prop
Type
Default
slot
enum (sidebar | content | list)
content
Attached props are attach-time-only; changing them after mount is a no-op. See
Windows & Chrome for how this renders on each platform, and
Split Views for the three-pane (list slot) pattern.
Automation role: toolbar. Text source: title. Children: multi.
Prop
Type
Default
Applied
title
string
(empty)
create
testID
string
—
meta
Attached props (set on children):
Prop
Type
Default
slot
enum (start | end)
start
Attached props are attach-time-only; changing them after mount is a no-op. title is create-only —
key the widget on the title if it needs to change (see App Model).
Automation role: menubar. Text source: none. Children: multi (<menu> elements). Declared as a
child of <window>, alongside the content child. See Menu Bar for
platform rendering (real NSApp.mainMenu on macOS, primary hamburger menu on GNOME).
Automation role: menuitem. Text source: label. Children: none. An item has either a role
(native behavior) or an onSelect handler; if both are set, onSelect wins.