Trace NVDA events
nvda_trace_eventsRecords NVDA events (focus, name, value, live region, UIA notifications) and the speech it produced while handling them, then reports results so you can diagnose why NVDA said nothing.
Instructions
Record the events NVDA handles (focus changes, name and value changes, live regions, UIA notifications...) and what NVDA said while handling each one.
This answers "why did NVDA say nothing?": either the application sent no event, or NVDA got one and chose not to speak. Start tracing, act (nvda_press_keys or the user), then read. With background_window it also shows whether an add-on could follow a window it is not in, such as new messages in a chat. Tracing stops by itself after 10 minutes.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | With start: only record events from this application, such as 'mwmod'. | |
| tree | No | With start: also read the accessibility tree of the foreground window (its web document in browsers, or background_window), so stop says what changed in it: controls added, removed, renamed or moved, values and states. Use it for something the user does, or several actions. | |
| limit | No | Return at most this many of the newest events. | |
| action | Yes | 'start' begins recording; 'read' returns what was recorded and keeps going; 'stop' returns it and stops. | |
| events | No | With start: only record these events, such as ['gainFocus', 'nameChange', 'valueChange', 'liveRegionChange', 'UIA_notification']. All events by default. | |
| wait_ms | No | With read or stop: keep recording this long first, for example while the user tries something. | |
| after_id | No | With read or stop: only events after this id (afterId from start, or lastId). | |
| max_changes | No | With stop and tree: list at most this many tree changes. | |
| tree_within | No | With start: read only the tree inside this control, an id from nvda_find_objects. Implies tree. | |
| ignore_pattern | No | With stop and tree: a regular expression for text that changes by itself, such as times, ignored when comparing. | |
| response_format | No | 'markdown' (default) is easier to read; 'json' keeps every field for further processing. | markdown |
| background_window | No | With start: also ask NVDA for events from this window while it is in the background, a handle from nvda_list_windows, as an add-on can with eventHandler.requestEvents. NVDA normally ignores most of them. They are recorded with the control's value and the text of live regions, but NVDA does not act on them. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |