OptionaldescriptionAccessible description (§75).
OptionallabelAccessible name (§75).
OptionalroleSemantic role, e.g. "button" (§75). Free-form: ARIA's vocabulary is not restated here.
OptionaltabKeyboard traversal order (§75); absent means 0.
Widgets are visited in ascending tabIndex, ties broken by scene order,
and a negative value removes the widget from the traversal without
making it unfocusable — focus() still works on it. See
collectFocusOrder, which also states why this engine sorts plainly rather
than copying the DOM's positive-before-zero rule.
§75's accessibility description of a widget, carried verbatim as data.
§75 spells this as a plain assignable record —
button.accessibility = { role, label, description, tabIndex }— and that is exactly what ships: typed, serializable (§79).Live fields. WidgetAccessibility.tabIndex orders (and can exclude from) the Tab traversal
keyboard.tsimplements, as of 2026-08-07 (A-13).role,label,description, and the §75 states (disabled,checked, slider/progress values) are projected byinstallAccessibilityMirror(2026-09-06, A-13 remainder). Convenience accessors UIWidget.label and UIWidget.role write these fields so a setter can push a screen-reader update without replacing the whole record.