Parent: #262. Cross-repository consumer: SceneTech/AppScene#285. Release acceptance: #227.
Proven gap
The merged semantic snapshot/delta ABI carries role, name, formatted value, states, bounds and supported actions, but it does not carry typed numeric minimum/maximum/current/increment or text caret/selection state. AppScene therefore cannot truthfully expose AT-SPI Value or current writable Text state, and equivalent UIA/AppKit consumers cannot share one authoritative contract.
Required implementation
- Add a versioned, size-negotiated semantic ABI revision with optional numeric range and text caret/selection fields while preserving v1 consumers and symbol fallback.
- Populate numeric fields from native range/progress/spin/scroll controls and ARIA value attributes only when finite and internally consistent.
- Populate caret/selection from live text-control state using the ABI's documented offset unit; expose explicit presence flags instead of sentinel inference.
- Carry the same fields through bounded semantic deltas and include them in change detection.
- Keep acquisition snapshot-only: no platform query may trigger cascade, layout, paint, or scene publication.
- Extend native/header/WPT-derived contracts for malformed values, Unicode offsets, dynamic mutation, stale generations, teardown, caps and unchanged nodes.
Performance and compatibility gates
The additional fields are fixed-size, add no per-node heap allocation, preserve existing node/operation caps, and keep v1 headers/consumers source and binary compatible. A 16,384-node snapshot/delta gate records build/copy time, bytes, heap/RSS and unchanged-delta suppression.
No platform adapter may infer typed values from the formatted string.
Parent: #262. Cross-repository consumer: SceneTech/AppScene#285. Release acceptance: #227.
Proven gap
The merged semantic snapshot/delta ABI carries role, name, formatted value, states, bounds and supported actions, but it does not carry typed numeric minimum/maximum/current/increment or text caret/selection state. AppScene therefore cannot truthfully expose AT-SPI Value or current writable Text state, and equivalent UIA/AppKit consumers cannot share one authoritative contract.
Required implementation
Performance and compatibility gates
The additional fields are fixed-size, add no per-node heap allocation, preserve existing node/operation caps, and keep v1 headers/consumers source and binary compatible. A 16,384-node snapshot/delta gate records build/copy time, bytes, heap/RSS and unchanged-delta suppression.
No platform adapter may infer typed values from the formatted string.