Grounded interaction research and evaluation plan¶
Programme: Eye / camera control
Date: 2026-09-22
Input research: docs/research/grounded-multimodal-interaction.md
Proposed decision: ADR-v2-151
Implementation spec: eye-grounded-targets.md
This plan answers the questions that code generation cannot settle. The goal is to learn whether a semantic grounding layer actually reduces the precision burden on webcam gaze and improves hands-free task completion without introducing a screenshot-first architecture.
Hypothesis¶
A coarse gaze/window target plus structured accessibility/application semantics and a spoken intent can identify the intended desktop entity more reliably than coordinate-only webcam interaction.
The alternative outcomes are useful too:
- accessibility semantics may be absent in too many target apps;
- candidate density may remain too high for coarse gaze;
- intent hints may overfit/choose the wrong repeated label;
- Wayland may expose read semantics but not safe focus/action semantics.
Those are reasons to narrow the product claim, not to hide negative results.
Research questions¶
RQ-G1 — structured semantic coverage¶
Across representative desktop applications, what proportion of visible actionable controls is exposed through AT-SPI, macOS Accessibility or Windows UI Automation with usable role, bounds and action metadata?
Measure: eligible controls, exposed controls, controls with bounds, controls with action, stale or duplicated nodes.
RQ-G2 — candidate ambiguity under coarse gaze¶
Given an honest webcam-gaze error envelope, how many semantic candidates commonly fall inside the plausible target region?
Measure: candidate count distribution per target; proportion of cases with exactly 0 / 1 / >1.
RQ-G3 — value of voice intent hints¶
When >1 candidate is spatially plausible, how often do role/label hints from a command resolve the correct candidate, and how often do they pull resolution toward the wrong repeated label?
Compare:
- geometry/window only;
- geometry + role;
- geometry + role + label tokens.
RQ-G4 — confidence and abstention¶
Can a deterministic policy abstain on ambiguous cases enough to reduce wrong-target actions without making the feature useless?
Report the curve/trade-off between:
- grounded coverage;
- wrong-target rate;
- ambiguity/abstention rate.
Do not select a product default from one developer's machine.
RQ-G5 — platform/session differences¶
How do X11, GNOME Wayland, KDE Wayland, macOS and Windows differ in:
- tree availability;
- bounds coordinate space;
- target/focus semantics;
- actionable operations;
- permission prompts;
- stale-tree behavior?
This extends, but does not replace, #418's Wayland target-semantics work.
RQ-G6 — the real semantic gap¶
After structured sources are exhausted, which useful target classes remain unavailable?
Only this measured gap can justify later OCR/VLM research.
Examples may include custom canvases, remote desktops, video frames or applications that expose no accessibility semantics. Record the category; do not jump directly to a vision model.
Evaluation layers¶
Layer A — pure deterministic fixtures¶
No hardware, no OS APIs.
Build synthetic layouts with:
- one obvious candidate;
- overlapping controls;
- repeated labels;
- nested roles;
- stale candidates;
- conflicting coordinate spaces;
- off-region label matches.
This proves resolver logic, not product utility.
Layer B — recorded semantic traces¶
Capture privacy-safe derived traces, not screenshots.
A trace may contain:
- normalized/fixture window rectangle;
- target point/region;
- candidate role;
- candidate bounds;
- synthetic or redacted stable candidate ID;
- source kind;
- action names/categories;
- confidence/freshness;
- expected candidate ID.
Do not store real document/email text or window titles.
Where a real label is needed to evaluate label matching, replace it locally with an equivalent synthetic token before saving the trace.
Layer C — live platform coverage¶
Human tester selects pre-defined, non-sensitive targets in representative app classes.
Suggested classes:
- terminal;
- web browser with a controlled local test page;
- code editor;
- native settings/preferences app;
- file manager;
- simple form/document editor.
Use a local test page/document with invented text so reports are publishable.
Layer D — end-to-end gaze + voice study¶
Only after resolver + semantic source are stable.
For each trial:
- present a known target;
- user looks at it naturally;
- user gives a bounded command such as "focus this", "click this button", or "choose Save";
- system either grounds, abstains or selects;
- log derived outcome and timing;
- no destructive real-world target is used.
Metrics¶
Do not collapse everything into "accuracy".
Report:
- target acquisition success — coarse gaze/window target available;
- semantic coverage — usable candidate metadata available;
- grounded coverage — resolver returns a target;
- top-1 correct rate — correct among trials where resolver returns grounded;
- wrong-target rate — wrong candidate / all trials;
- abstention rate — ambiguous + unresolved / all trials;
- candidate count — before and after intent hint;
- recovery count — how often user must re-target/re-speak;
- time-to-ground — target snapshot -> resolved/abstained;
- task completion time in later end-to-end study.
For consequential actions, also report whether an incorrect target would have reached confirmation. A test must never bypass confirmation merely to simplify measurement.
Baselines¶
Compare against what YazSes can already do:
- focused window only;
- current gaze -> window routing;
- current gaze + window-level deixis;
- target + semantic grounding;
- target + semantic grounding + intent hint.
The new layer earns its complexity only if it reduces wrong-target/recovery cost or enables a task the window-only baseline cannot safely perform.
Evidence gates¶
Accept ADR-v2-151¶
Requires:
- deterministic resolver prototype passes Layer A;
- no evidence that intent hints can select spatially impossible candidates;
- abstention is explicit;
- no screen capture/egress requirement;
- platform research plan is executable.
Start platform implementation¶
Requires:
- pure contract/resolver merged;
- one platform adapter can be isolated behind the Protocol;
- real tree behavior is measured rather than assumed from API documentation.
Consider OCR/VLM fallback¶
Requires Layer C evidence showing a meaningful class of desired targets is unavailable from structured sources.
Then write a separate ADR. Do not add OCR/VLM opportunistically inside a semantic-source PR.
Promote exact-element grounding beyond experimental¶
Requires multi-environment evidence, an accessibility review, measured wrong-target + abstention rates, and no unresolved high-impact risk in the programme risk register.
Participant / contributor data¶
Hardware/accessibility studies should explain what is recorded before the trial.
Collect only what is needed:
- OS/session/version;
- app class/version if material;
- camera/tracker class;
- display scale/topology where relevant;
- derived success/error/latency metrics;
- voluntary free-text usability observations.
Do not request:
- face/video uploads;
- raw landmarks;
- typed private content;
- email/document text;
- disability/diagnosis information;
- identity/demographic data unless a later ethics-approved study has a concrete research reason.
Jules / cloud-agent boundary¶
A cloud coding agent can implement:
- pure data contracts;
- resolver;
- synthetic fixtures;
- trace parser/evaluator;
- fake semantic-source adapters.
A cloud coding agent cannot certify:
- AT-SPI/AX/UIA behavior on a real user's desktop;
- Wayland compositor behavior;
- webcam gaze quality;
- accessibility comfort/fatigue;
- human intent or false-target experience.
Keep those as separate research/evidence tasks so a green PR cannot masquerade as a field result.