Eye-Tracking Interaction Design Guidelines
For designers and engineers: let "looking" remain looking, and let "selecting" truly be selecting; let users know where the system believes they are looking, what the system did based on that, and where that data goes — and let them still complete tasks when they cannot or do not want to use their eyes.
6 principles · 31 rules · MUST 25 · SHOULD 6
Contents
For designers and engineers: let "looking" remain looking, and let "selecting" truly be selecting; let users know where the system believes they are looking, what the system did based on that, and where that data goes — and let them still complete tasks when they cannot or do not want to use their eyes.
Eye tracking enters a product through two paths: the explicit path — treating gaze as a pointing channel, completing selection through dwell or gaze paired with gesture or speech; and the implicit path — treating gaze as an attention signal, used for render optimization, content ranking, reading measurement, driver monitoring, and cognitive-load assessment. The two paths regulate different design objects and carry different risks, but share the same set of premises:
- The eye is first a sensory organ, and only secondarily an input device. As long as the eyes are open and observing, gaze signals may be continuously generated; they cannot be treated as an operation by default. The Midas Touch problem, gaze fatigue, and the "fleeing cursor" all derive from this premise, rather than being independent defects each.
- The measurement of gaze position is probabilistic, and degrades over time. Accuracy is affected by calibration quality, wearing-position changes, lighting, pupil size, and fatigue. The deterministic assumption of traditional interfaces — "clicking the target hits the target" — does not hold here.
- Gaze and related eye data may support inferences about interest, cognitive state, identity, or health indicators, but this does not mean these states can be reliably read. Privacy is not an appendix to these guidelines; it is an independent object of regulation.
These guidelines consist of six principles and 31 rules: principles state the design direction; rules specify applicability conditions, behavior requirements, and verification methods. Each rule belongs to one and only one principle, and the rule number is the principle number (E3-2 is the second rule under the third principle). Each rule answers three questions: what the designer decides, what facts engineering provides, and how the user knows it is in effect.
These guidelines govern the nature of the experience commitments a product makes to users and the mechanisms that honor them; they do not presuppose a single hardware solution, algorithm, or SDK. They are not a component library, not an implementation architecture, and do not constitute proof of safety, privacy, or medical-device compliance. Adopting these guidelines cannot replace a dedicated accessibility evaluation, a Data Protection Impact Assessment (DPIA), human-factors testing, domain compliance for medical and driving scenarios, or dedicated review of monitoring minors and workplace surveillance.
These guidelines do not cover: eye tracking as a research method (heatmaps and gaze-trajectory analysis in usability testing) — its measurement methods must be selected according to the research question; ISO 15007 and SAE J2396 address only driver visual behavior and cannot be generalized to usability research at large; nor do they cover the algorithmic implementation of eye tracking (pupil-corneal reflection, appearance models, calibration algorithms).
Four chapters in all: Chapter 1 principles, Chapter 2 how to read the rules and a quick reference, Chapter 3 rules in detail, Chapter 4 terminology; classification checks and acceptance are in Appendix A, numeric bases in Appendix B, and the status and factual contract of selection attempts in Appendix C. For configurable parameters see Design Token.md in the same directory; for sources and verification level see reference.md.
This document is used for design delivery and project review; [MUST] indicates a product requirement of these guidelines, not that the cited vendor, paper, or law imposes a requirement of the same strength.
Entry point and scope of application
First determine what job eye tracking performs in the product, then select rules and parameters; do not infer "every element can be selected by looking" directly from "the device supports eye tracking."
| Product form | Decisions to make first | Responsibility and verification scope |
|---|---|---|
| System-hosted gaze-control applications | Which objects are selectable, action consequences, standard feedback, alternative entries | Selection events already bound by the consumer platform; record platform guarantees, do not fabricate gaze trajectories or quality values the app cannot obtain |
| Custom hit-testing and dwell | Sample source, coordinate space, event criteria, geometry, timing, and cancellation | Independently verify validity, clock, occlusion, duplicate events, and abnormal recovery |
| Assistive input using eye tracking only | Reachable pause, confirm, correction, and failure help-seeking paths | Verify with target users; do not treat nonexistent gesture, speech, or keyboard capability as an alternative |
| Rendering or presentation adaptation only | Adaptation scope, presentation on failure, data use | Does not require adding dwell controls; prediction results MUST NOT enter the submission pipeline |
| State inference or dedicated monitoring | Whether inference is valid, whether it is permitted, how output is used | Verify unknowns and misjudgments item by item; monitoring retained by law and optional analysis are declared separately |
A product may contain multiple forms, but each capability must have a clear home. For parameters see Design Token. Items that do not apply must state the reason; "not holding raw data" cannot exempt an application from the submission and feedback behavior it itself controls.
1. The six principles
The six principles divide design responsibility by object of regulation: each principle governs obligations on one class of object, and each rule is assigned to exactly one principle according to the direct object of regulation of its obligation.
| Principle | Object of regulation | Design direction | Rules governed |
|---|---|---|---|
| E1 Gaze is not intent | The system's interpretation of the gaze signal | Do not read "seeing" as "selecting." Observation and control MUST be distinguishable; gaze does not constitute authorization, does not constitute having-read, and does not constitute consent | E1-1 ~ E1-5 |
| E2 Activation matches error cost | The trigger mechanism from gaze to action | Do not use one trigger method for every action. The trigger method is decided by the cost of error — the less reversible the cost, the more it needs a confirmation signal independent of the eyes | E2-1 ~ E2-6 |
| E3 Accuracy is bounded and degrades | Hit-testing and target geometry | Do not design gaze targets in pixels. Geometry is defined by visual angle; accuracy is an operational state the system itself must know, and on degradation it changes its behavior rather than making the user absorb the error | E3-1 ~ E3-4 |
| E4 Feedback is restrained and attributable | The acknowledgment given to the user | Do not turn "always looking" into "always flashing." The user must be able to know where the system believes they are looking, without being disturbed by every one of their own glances | E4-1 ~ E4-4 |
| E5 Gaze data is visible and controllable | The collection, inference, retention, and flow of gaze data | Do not treat gaze as an ordinary input event. Raw gaze does not flow out by default, inference is authorized item by item, use is bound, and collection status is visible | E5-1 ~ E5-6 |
| E6 The channel is exitable and non-exclusive | The user's dependency conditions and exit paths for the gaze channel | Do not let the eyes become the only way. Physiological differences, device failure, user intent, and sustained load must each have a clear exit | E6-1 ~ E6-6 |
A single scenario can touch multiple principles — one dwell activation involves the trigger mechanism (E2-2), hit-testing (E3-1), and progress acknowledgment (E4-3) at once — this is not a classification error: the three rules constrain obligations on three different objects of regulation.
Mutual exclusivity and exhaustiveness are claims this division submits to testing, not facts established by declaration: when a rule is added, removed, or its home is in doubt, verify using the classification checks in Appendix A; if the check fails, what gets revised is the principles' division, not the addition of an intermediate layer or a mapping table.
Principles are used to understand the rules and adjudicate their home; they are not themselves a separate judgment item. When a principle's reading conflicts with a specific clause, the applicable clause governs, and the ambiguity needing clarification is recorded.
2. How to read a rule
2.1 The structure of each rule
| Part | Function |
|---|---|
| One-line summary | A memorable version of the rule; it does not replace the main text |
| Applies to | The situation in which this rule takes effect. A product outside this scope may simply record "not applicable" |
| Rule | The normative text, specifying this rule's requirement |
| Boundary conditions | Together with Applies to, bound the requirement's scope: states what this rule does not require and under what conditions an exception holds (present only in some rules) |
| Design application / verification example / counterexample | Explanations that aid implementation; they add no further obligation and do not prescribe a single implementation |
| Basis and references | Failure records and implementation references (present only in some rules; for sources and verification level see reference.md) |
The rule text specifies the requirement; Applies to and Boundary conditions together bound the requirement's scope; Design application, verification examples, counterexamples, and basis/references add no further obligation.
2.2 Normative terms
- MUST: failing to satisfy it means non-conformance with these guidelines. Without it, some commitment to the user will fail under foreseeable conditions.
- MUST NOT / forbidden: the negative form at the same strength as "MUST"; "MUST NOT" and "forbidden" are used equivalently in the main text.
- SHOULD: followed by default; when there is genuine reason to deviate, record the rationale and the alternative, and accept the same verification. "SHOULD NOT" is the negative form of "SHOULD."
Conformance judgments take the independent obligation clauses in the main text as their unit; text without an explicit normative term carries the strength of the rule heading: a "forbidden / MUST NOT" clause inside a [SHOULD] rule remains a hard constraint. "cannot" in the main text is used only for statements of capability or fact, and expresses no obligation.
Every numeric threshold appearing in the main text of these guidelines carries a unit and has its source and verification level noted in Appendix B. A value without a noted source MUST NOT be used as a conformance criterion — it is an example, not a requirement.
2.3 The two sides of a counterexample
Counterexamples come in two sides: "under-delivery" means missing this requirement; "over-delivery" means piling on confirmations, feedback, and toggles in order to satisfy it. Neither side counts as getting it right.
Eye-tracking interactions tend to go wrong in a way heavily concentrated on "over-delivery": because the user is always looking, any feedback triggered by gaze will be triggered far more often than the designer expects. A highlight effect that looks "just right" in a prototype becomes continuous flickering after twenty minutes of sustained use. During review, treat this side as the default suspect.
2.4 Rule quick reference: 31 rules
E1 Gaze is not intent
| Rule | Strength | One-line summary |
|---|---|---|
| E1-1 Observing state and controlling state are distinguishable | MUST | Let the user look without selecting at any time, and know which state they are currently in. |
| E1-2 Gaze does not constitute authorization or informed consent | MUST | Having looked does not equal having agreed, nor does it equal having read, understood, or been informed. |
| E1-3 Implicit use does not change task state | MUST | Attention-driven adaptation may change presentation; it MUST NOT change outcomes or produce external effects. |
| E1-4 Gaze-intent inference is correctable | SHOULD | When the system guesses what you want to select, there SHOULD be a correction path that does not require repeating a difficult hit. |
| E1-5 State inference is evidence-based and allows "unknown" | MUST | Eye-tracking metrics are not a direct readout of mental state; when evidence is insufficient, output unknown. |
E2 Activation matches error cost
| Rule | Strength | One-line summary |
|---|---|---|
| E2-1 Trigger method is tiered by error cost | MUST | An irreversible action MUST NOT be triggered by a single passive dwell. |
| E2-2 Dwell activation is abortable and shows progress | MUST | Dwell can be reconsidered at any point before completion, and the user can see how much remains. |
| E2-3 Multimodal activation binds at the initiation moment | MUST | Bind the object at the declared initiation event; do not let recognition latency turn A into B. |
| E2-4 Mis-trigger suppression and repeat-activation control | MUST | Blinks, saccades, jitter, and rapid repeats MUST NOT be read as activation. |
| E2-5 Unnatural eye movements are not mandated | SHOULD | Do not require the user to draw symbols with their eyes to issue commands. |
| E2-6 Activation is bound to its object and operation meaning | MUST | When layout and content change, stale dwell progress MUST NOT trigger a new action. |
E3 Accuracy is bounded and degrades
| Rule | Strength | One-line summary |
|---|---|---|
| E3-1 Target geometry is defined by visual angle | MUST | Size and spacing are in degrees, not pixels; the hit area may be larger than the visible size. |
| E3-2 Accuracy is an observable operational state | MUST | The system itself must know whether it is currently accurate, and change its behavior accordingly. |
| E3-3 Tracking loss is an explicit state | MUST | Lost means lost — no extrapolation, no guessing, no silently reusing the last position. |
| E3-4 Calibration cost is proportionate to its benefit | SHOULD | Judge whether there truly is an offset before recalibrating; do not treat a guessed intent as calibration ground truth. |
E4 Feedback is restrained and attributable
| Rule | Strength | One-line summary |
|---|---|---|
| E4-1 Gaze acknowledgment is attributable | MUST | Let the user see where the system believes they are looking, so they can identify offset. |
| E4-2 Feedback has timing and suppression conditions | MUST | Lightweight acknowledgment appears promptly; expansion and animation are delayed or suppressed according to context. |
| E4-3 Interaction states are distinguishable | SHOULD | Hover, charging, activated, and canceled each look like themselves. |
| E4-4 Hover-expanded content is reachable and closable | MUST | Once new content appears, the user can move to it to read and operate it, and can also close it. |
E5 Gaze data is visible and controllable
| Rule | Strength | One-line summary |
|---|---|---|
| E5-1 Collection and purpose are disclosed and bound | MUST | State clearly what is collected, what is inferred, and what it is used for; uses beyond that require re-authorization. |
| E5-2 Raw gaze does not leave the device by default | MUST | The application does not get raw gaze-point coordinates by default; it gets only the layer it needs. |
| E5-3 Each inference type is authorized separately | MUST | Gaze needed for interaction MUST NOT be bundled in authorization with emotion, load, or identity inference. |
| E5-4 Collection status is visible | MUST | The user can tell when they are being read. |
| E5-5 Retention is itemized and deletable | MUST | Raw gaze, gaze events, calibration profiles, and inference conclusions each have their own retention period. |
| E5-6 No unilateral judgment adverse to the user | SHOULD | Attention data does not quietly become grounds for evaluation, exam proctoring, or risk control. |
E6 The channel is exitable and non-exclusive
| Rule | Strength | One-line summary |
|---|---|---|
| E6-1 An equivalent alternative path exists | MUST | Every task that can be completed with the eyes has a way to complete it without the eyes. |
| E6-2 Physiological and wearing differences are not grounds for exclusion | MUST | Nystagmus, strabismus, monocular vision, a prosthetic eye, lenses, or drooping eyelids do not mean the product cannot be used. |
| E6-3 Degraded behavior is defined | MUST | The behavior for uncalibrated, insufficient accuracy, and tracking loss is each specified in advance. |
| E6-4 The user can disable by scope | MUST | The user can turn off just inference, or just activation, rather than only all-on or all-off. |
| E6-5 Sustained load has a budget | SHOULD | Prolonged gaze control has a cost, and the product must account for it. |
| E6-6 Continuous control can be completed in steps | MUST | Dragging, scrolling, and value adjustment have ways to complete that do not require sustained, precise gaze. |
3. Rules in detail
3.1 E1 Gaze is not intent
The eye's primary function is gathering information. Translating a gaze signal into user intent is an inference made by the system, not an expression made by the user. This principle governs that layer of translation: when translation is permitted, how much effect the translated result carries, and what happens when the translation is wrong.
E1-1Observing state and controlling state are distinguishableMUST
One-line summary: Let the user look without selecting at any time, and know which state they are currently in.
Applies toany interface that uses gaze as a selection or activation channel.
RuleThe product MUST have a state in which the user can freely observe without triggering any selection, activation, or external effect, and the user MUST be able to determine whether they are currently in the observing state or the controlling state. Entering the controlling state MUST be decided by a condition the user can perceive — an explicit signal, a clear region boundary, or a declared mode switch; using "gaze duration exceeding some value" as the sole boundary between the observing state and the controlling state is forbidden, unless that activation falls into the lowest-cost tier permitted by E2-1. A gaze candidate MUST NOT seize keyboard focus, the text insertion point, or assistive-technology focus merely because the gaze moved; taking over requires an explicit initiating action.
Boundary conditionsThis clause does not require making the observing state a standalone interface mode or a global switch. A region-level division (gaze-activatable areas versus pure-reading areas) or an object-level division (only objects explicitly marked participate in gaze activation) both satisfy the requirement, as long as the user can tell.
Design applicationPlace content meant purely for viewing — long text, images, video — in a region excluded from gaze activation; visually distinguish objects that can be gaze-activated from it. A cross-modal scheme may use an explicit signal to enter the controlling state, but must still verify the moment of pointing, object binding, and the absence of side effects while observing; it is not judged as satisfying the requirement merely because it uses another channel.
Verification examples
- User side: let the user read freely in the interface for two minutes, count unintended activations; ask whether they know "when they will trigger something."
- Implementation side: check whether a path to an irreversible action exists in the observing state; check whether the exclusion-region determination breaks when the layout changes.
CounterexamplesUnder-delivery — the entire screen is dwell-activatable, and the user jumps to a new page just by reading a paragraph of instructions; over-delivery — a manually toggled "gaze-control mode" master switch is required, so every time the user wants to click something they must first go turn on the switch, and the switch itself must be clicked with the eyes.
E1-2Gaze does not constitute authorization or informed consentMUST
One-line summary: Having looked does not equal having agreed, nor does it equal having read, understood, or been informed.
Applies toany interface involving authorization, consent, a duty to inform, read confirmation, disclaimers, or risk notices.
RulePassive viewing, gaze coverage, or a candidate event produced without an explicit confirmation process are forbidden from serving as evidence that the user has consented, read, been informed, or understood; it is forbidden to reduce, simplify, or skip a confirmation that should be completed by an explicit action, on the grounds that "the user's gaze passed over that area." Gaze may serve as a product metric of whether the line of sight fell within the presented area, but MUST NOT serve as the judgment basis for whether the user bears the corresponding informed consequence.
A confirmation action completed through an active, staged confirmation process that meets the boundary conditions of E2-1 may serve as a record of the user's decision on that specific request — such a record must retain the request, decision, object content, and confirmation method, stored separately from raw samples and candidate hit records and managed under E5; but it only proves the user performed the confirming action, and MUST NOT be used to claim the user understood all the content. When the request or object content is replaced, the old confirmation becomes invalid.
Boundary conditionsThis clause does not forbid using gaze signals to improve disclosure design — for example, re-presenting a key clause when the user is detected not to have looked at it. The distinction is one of direction: using gaze to reinforce disclosure is allowed; using gaze to replace confirmation is forbidden.
Design applicationWhere confirmation is required, keep a confirming action distinguishable from passive viewing (assistive-technology exception, see E2-1); if a product uses gaze to measure reading coverage, keep it in internal metrics and out of the user's rights-and-obligations chain.
Verification examples
- User side: have the user's gaze pass over an authorization notice without taking any action; verify the system still requires explicit confirmation.
- Implementation side: audit the write paths for states such as "read," "informed," and "consented," confirming none has a gaze event as its sole source.
CounterexamplesUnder-delivery — the user's line of sight passes over the privacy clause area for three seconds, and the system records "read and agreed"; over-delivery — for fear of being mistaken for evidence of being informed, the product collects no reading metric at all, losing the ability to discover that "no one looked at the critical notice."
E1-3Implicit use does not change task stateMUST
One-line summary: Attention-driven adaptation may change presentation; it MUST NOT change outcomes or produce external effects.
Applies toall implicit features that use gaze as an attention signal — foveated rendering, content ranking, dynamic prompts, reading metrics, driver/operator state monitoring.
RuleThe scope of any adaptation automatically triggered by a gaze signal MUST be confined to the presentation layer: rendering precision, layout emphasis, prompt timing, content ordering. It is forbidden for a gaze signal not explicitly confirmed by the user to directly submit a business decision or produce an unauthorized external effect — including irreversible actions, outbound sending, payment, and writes to persistent business state. A necessary measurement record made for a disclosed purpose and governed by E5 (reading coverage, hit logs) is not automatically forbidden by this clause merely for being a "data write"; but such a record MUST NOT be repurposed as evidence of the user's confirmation or consent (see E1-2). When the output of an implicit feature enters a decision chain affecting the user (for example, a fatigue determination triggering an alert or intervention), that output MUST be separately authorized per E5-3 and handled per E5-6.
Boundary conditionsIntervention in safety-critical scenarios is an exception, but the exception must be explicit: a driver-monitoring system that issues an alert on detecting closed eyes is a safety commitment of the product, SHOULD be stated in the capability disclosure, and its criteria, false-alarm rate, and the actions available to the user must be declared in advance; this exception MUST NOT be extended to non-safety purposes.
Design applicationSeparate "using gaze to adjust presentation" from "using gaze to trigger an action" at the architectural level — the former may run continuously, while the latter MUST go through the trigger mechanism in E2.
Verification examples
- User side: browse freely in a list with attention-based ranking enabled; verify that browsing does not submit a business decision; check any necessary measurement within the disclosed scope separately.
- Implementation side: trace all write operations of implicit features, distinguishing necessary measurement from business writes; confirm no unauthorized side effect exists; verify any declared monitoring branch under its applicable conditions.
CounterexamplesUnder-delivery — the user looked at a product for two extra seconds, and the system added it to the cart; over-delivery — out of fear of overstepping, even purely presentational optimizations like foveated rendering require the user's authorization every single time.
E1-4Gaze-intent inference is correctableSHOULD
One-line summary: When the system guesses what you want to select, there SHOULD be a correction path that does not require repeating a difficult hit.
Applies toproducts that use probabilistic hit-testing, intent prediction, or gaze-trajectory anticipation to select a target.
RuleThe system's judgment of "which object the user wants to operate" SHOULD be presented as a correctable hypothesis, and SHOULD provide a correction method that does not depend on repeating the same difficult gaze; when another channel is available, non-gaze correction SHOULD be preferred. When gaze is the only channel available, magnification, staged disambiguation, or an independent undo region MAY be used. When the confidence between candidate targets is insufficient to distinguish them, the system SHOULD request disambiguation or make no selection, and SHOULD NOT default to the nearest candidate and execute directly.
Basis and referencesCorrecting a gaze error within the gaze channel itself forms a closed loop of difficulty — the user looks away to change their selection, and that very movement triggers a new determination. This is another manifestation of the same problem as the dual role of "observing vs. controlling" (see E1-1).
Design applicationWhen another channel is available, correct with gesture, key press, or speech; when gaze is the only channel available, provide magnification, staged disambiguation, or an independent undo region, avoiding making the user redo the original difficult hit.
Verification examples
- User side: construct two adjacent, similar targets; have the user reselect after the system picks wrong, recording reselection time and second-error rate.
- Implementation side: check whether a disambiguation path exists and does not require repeating the original precise hit; check the default behavior when confidence is insufficient.
CounterexamplesUnder-delivery — after a wrong pick, the only recourse is to stare at the correct target and dwell again, and this time it picks the adjacent one instead; over-delivery — every selection first pops up "did you mean A or B," turning what could be a direct selection into two steps.
E1-5State inference is evidence-based and allows "unknown"MUST
One-line summary: Eye-tracking metrics are not a direct readout of mental state; when evidence is insufficient, output unknown.
Applies tofeatures that infer user interest, load, emotion, fatigue, or health state from metrics such as gaze, pupil, or blink.
RuleThe product MUST distinguish the measured metric from the inferred state, state the population, task, and environment for which the inference applies, and verify the error rate with an independent reference. Gaze duration alone or a single pupil-size change MUST NOT be used to claim the user has understood, likes, is anxious, or is cheating. When data is insufficient, conditions fall outside the validated range, or an unremovable confound is present, the system MUST allow outputting unknown or suspending inference; absence of data MUST NOT be recorded as inattention. See E5-3 for authorization requirements and E5-6 for restrictions on use in evaluation.
Basis and referencesPupil response is influenced simultaneously by brightness, near-viewing distance, and mental activity; inferring a single state from a metric is ambiguous (Mathôt, 2018). The rejection and subgroup-verification requirements in this clause are a design inference based on this measurement boundary.
Design applicationSeparate "insufficient valid gaze coverage on this segment" from "you were not reading carefully"; control for brightness and content difficulty in evaluation, and report the model's performance on unseen users.
Verification examples
- User side: change only the screen brightness, and check whether the system directly interprets the pupil change as an emotional change.
- Implementation side: replay missing data and inputs outside the validated conditions, confirming the output is unknown; record false-positive, false-negative, and unknown rates — do not show only overall accuracy.
CounterexamplesUnder-delivery — the user looking away is recorded as low attentiveness; over-delivery — every instance of low confidence turns into a questionnaire the user must answer.
3.2 E2 Activation matches error cost
The mechanism between "the system believes the user is looking at X" and "the system performs an action on X" is the object this principle regulates. E1 governs whether gaze can be treated as intent at all; this principle governs, once an action is decided, what method triggers it and how its parameters are set.
E2-1Trigger method is tiered by error costMUST
One-line summary: An irreversible action MUST NOT be triggered by a single passive dwell.
Applies toall actions triggered with gaze participation.
Rule (configuration takes effect): Each selection attempt is bound to the configuration snapshot resolved at the moment it begins. When a parameter affecting hit-testing, dwell criteria, or the action's risk tier is modified while an attempt is in progress, retroactively converting samples already accumulated into an activation is forbidden: the product must declare one of two behaviors — cancel the current attempt and require it to be reinitiated, or let the old attempt finish under its still-valid original configuration while the new attempt uses the updated configuration. A tightening of disabling, deauthorization, or risk protection intercepts an affected attempt first. A change to a presentation-only setting MUST NOT be converted into a user's business confirmation.
RuleThe product MUST define error-cost tiers for gaze-activatable actions, distinguishing at minimum: reversible and low cost, reversible but high cost, and irreversible or producing an external effect. An action that is irreversible or produces an external effect is forbidden from being triggered directly by a single passive dwell or gaze entry; it MUST require a confirmation signal independent of the eyes (gesture, key press, speech, controller; for eye-tracking-only availability, see the boundary conditions below), and cancellation MUST be allowed before submission. Having a cancellation window is not grounds for waiving confirmation. Reversible-but-high-cost actions SHOULD likewise use explicit activation. The mapping between tiers and trigger methods MUST be declared in advance and MUST NOT be decided ad hoc, screen by screen.
Boundary conditionsIn assistive scenarios where eye tracking is the only channel available, a specially validated staged confirmation MAY be provided: first select and present the specific object and its consequence, end the original dwell, then have the user reinitiate an independent confirmation step, while providing a reachable cancellation path. Reusing the same timer, or letting a newly appearing confirmation button inherit the old target's charge, is forbidden; merely extending the dwell does not satisfy this exception. This exception is an inclusive-design proposal of these guidelines and must be validated with false-confirmation testing on target users; it does not represent a platform-guaranteed reliability.
Basis and referencesTobii's XR interaction design documentation states plainly that gaze paired with an explicit activation signal is the most predictable and controllable interaction state, and for high-error-cost elements it is in most cases better than gaze entry or dwell activation; Microsoft's HoloLens 2 guidelines likewise recommend triggering selection with a voice command, gesture, key press, or extended dwell rather than reacting directly to gaze. Both support separating pointing from submission, but neither jointly prescribes this guideline's risk tiering and prohibition scope; the latter is a design inference of these guidelines (see reference.md §1, §9).
Design applicationWrite the tier mapping into the design system rather than deciding it screen by screen; the trigger method for a given tier is consistent across the whole product, so that user expectations transfer.
Verification examples
- User side: for every irreversible action, verify whether passive browsing can accidentally complete it; eye-tracking-only assisted confirmation must additionally test the staged process.
- Implementation side: audit the list of trigger paths, confirming irreversible tiers comply with independent confirmation or a declared assistive-confirmation exception, and that the object and consequence are not swapped after confirmation.
CounterexamplesUnder-delivery — "delete all" and "expand list" are triggered by the same 800ms dwell; over-delivery — even a one-step, reversible action like switching tabs requires "gaze + voice confirmation," and the user has to say a dozen sentences to complete one browsing session.
E2-2Dwell activation is abortable and shows progressMUST
One-line summary: Dwell can be reconsidered at any point before completion, and the user can see how much remains.
Applies toany interaction that uses dwell as its trigger.
RuleDwell triggering MUST provide feedback indicating progress, so the user knows charging is underway and roughly how much remains before activation occurs; gaze leaving the target MUST immediately stop accumulation, and reaching the declared tolerance time limit while away MUST reset it to zero, and the cancellation MUST be perceptible to the user. Within the tolerance window, progress may only be frozen, and it may only resume when returning to the same object with content and action both unchanged; time spent away MUST NOT be counted toward dwell. After resuming, at least a new valid-dwell interval is required — the first sample after resuming MUST NOT backfill the interruption or submit directly. Dwell duration MUST be configurable and chosen according to the target user population, tracking performance, and error cost; it MUST NOT be forced as an unadjustable hardcoded value for all users and situations; validated similar targets MAY share a preset. The product MUST declare the dwell duration used and its basis.
Boundary conditionsThis clause does not require dwell progress to be shown as a circular progress ring, nor does it forbid using different durations for different tiers within the same product. What it requires is "charging is visible" and "leaving stops it immediately"; it does not prescribe the form of presentation.
Basis and referencesPenkar et al.'s experiment jointly examined dwell time, button size, and reading content position, showing these parameters need to be tested together (see reference.md §4.2). Dwell time is validated together with layout, not adopted as a uniform duration across products.
Design applicationProvide a setting to shorten dwell duration for proficient users; lengthening the duration for high-error-cost targets is not a good approach (Tobii's guidelines note that an overly long dwell feels tense and unnatural) — use E2-1's explicit activation instead.
Verification examples
- User side: have the user look away when charging is half complete, verifying activation is canceled and the user perceives the cancellation.
- Implementation side: check whether the dwell timer pauses or resets on tracking loss (E3-3), rather than continuing to accumulate.
CounterexamplesUnder-delivery — with no progress indication at all, the user only knows "staring long enough triggers something," so they avoid dwelling the whole time; over-delivery — every gaze-eligible object continuously displays a spinning progress ring, and the entire interface looks like it's breathing.
E2-3Multimodal activation binds at the initiation momentMUST
One-line summary: Bind the object at the declared initiation event; do not let recognition latency turn A into B.
Applies toactivation methods that combine gaze with gesture, speech, key press, or a controller.
RuleWhen the activation signal comes from another channel, the system MUST use the gaze target at that signal's initiation moment (or within a declared time window before that moment) as the object acted on; it MUST NOT use the gaze target at the moment recognition of the signal completes. This time window MUST be explicit and compatible with the typical recognition latency of the signal used; it MUST NOT trace back indefinitely to an earlier gaze target. The cross-channel timing-alignment requirement MUST also hold in custom input controls. The product MUST specify which event represents initiation (such as pinch start, a key event, or the segment of speech that points to the object), and use an alignable time base; the start of an entire speech utterance MUST NOT be uniformly treated as the pointing moment. When a sample has expired, the timestamp is unknown, the object content has changed, or the object cannot be uniquely determined, the activation MUST be canceled or disambiguation requested, and a correction path that does not depend on repeating a difficult hit MUST be retained. When a platform already provides the binding result, the product SHOULD reuse it directly rather than requiring the application to separately collect raw gaze.
Basis and referencesThis is an independently documented failure mode; Microsoft's HoloLens 2 guidelines call it "leave before click" — research shows that during rapid target selection, a user's gaze moves away before the manual click completes. Voice-command recognition latency makes this offset larger (see reference.md §1).
Design applicationKeep a gaze-history buffer in the input pipeline, and when the activation signal arrives, look back and take the value by its timestamp; for custom gestures, record the start moment or approximate duration rather than reporting only the recognition result.
Verification examples
- User side: have the user select multiple adjacent targets in sequence at a natural pace, tallying the agreement rate between the selected object and the user's reported intended object.
- Implementation side: inject a voice signal with artificially extended recognition latency, verifying the object acted on is still the gaze target at the initiation moment.
CounterexamplesUnder-delivery — the user looks at A and says "delete"; voice recognition takes 700 ms, during which the gaze moves to B, and the system deletes B; over-delivery — to align timing, every interaction is delayed to respond only after the longest possible latency, making the whole interface feel sluggish.
E2-4Mis-trigger suppression and repeat-activation controlMUST
One-line summary: Blinks, saccades, jitter, and repetition MUST NOT be read as activation.
Applies toall gaze-activation channels.
RuleThe system MUST suppress the following signals from being judged as activation: a gaze interruption during a blink, a saccade passing through a target, a brief dwell below the gaze-determination threshold, and repeated jumping between targets caused by tracking jitter. After activating a given target, a re-activation threshold MUST exist, preventing continuous repeated activation caused by gaze not having moved away. An ordinary button MUST wait for a valid departure and re-entry, or obtain a new explicit initiation signal; the mere end of a timed cooldown MUST NOT itself trigger the next submission. Step controls that genuinely require sustained looking to repeat MUST separately declare their repeat mode, pacing, and stop condition. A single selection attempt MUST NOT be submitted repeatedly due to event replay, dual-channel callbacks, or a delayed result. Suppression parameters MUST be compatible with the sampling rate and accuracy of the device used, and MUST be configurable. A declared and validated active blink-coding scheme is handled as the assistive exception in E2-5, and is not conflated with a natural blink interruption.
Design applicationConfigure the minimum stable gaze-determination duration, saccade-velocity threshold, and blink-tolerance window separately (see Design Token §3); after activation, actively remove the target from the activatable set until gaze leaves and returns.
Verification examples
- User side: have the user browse a row of activatable objects at a normal pace, tallying mis-activation count; have the user blink normally ten times, verifying no activation occurs.
- Implementation side: replay gaze data containing saccades, blinks, and tracking jitter, checking whether the activation-event count is zero.
CounterexamplesUnder-delivery — the user blinks once, the interface judges the gaze as interrupted and then re-entered, and the dwell timer resets or directly triggers activation; over-delivery — the suppression window is too long, and the user's deliberate second selection gets swallowed, forcing them to wait two seconds and try again.
E2-5Unnatural eye movements are not mandatedSHOULD
One-line summary: Do not require the user to draw symbols with their eyes to issue commands.
Applies toproducts where gaze is the primary interaction channel.
RuleThe product SHOULD NOT require the user to perform unnatural eye movements (directional eye gestures, deliberate prolonged staring, blink coding) as a necessary condition for completing the primary task. Such interactions MAY be offered as an optional acceleration method, but MUST NOT be the only path.
Boundary conditionsThis clause does not apply to heavy-assistive scenarios where gaze is the only available channel — for users who have completely lost other motor abilities, blink coding and eye gestures may be a feasible means of communication, in which case they are not a "mandated unnatural movement" but the only means of expression. The distinguishing factor is whether the user still has another channel available.
Basis and referencesMicrosoft's HoloLens 2 guidelines directly give the recommendation "avoid forcing unnatural eye movement as input" (see reference.md §1). Deliberate eye movement accelerates visual fatigue and conflicts with natural behaviors such as reading and observing.
Design applicationReserve eye gestures as a shortcut for proficient users; use the primary path of gaze plus an explicit signal, or dwell.
Verification examples
- User side: verify that every primary task can be completed without using any eye gesture.
- Implementation side: check whether the feature list contains a capability exposed only through an eye gesture.
CounterexamplesUnder-delivery — going back a level requires "looking quickly left twice"; over-delivery — to avoid eye gestures entirely, all shortcut operations are removed, and heavy users lose their means of efficiency.
E2-6Activation is bound to its object and operation meaningMUST
One-line summary: When layout and content change, stale dwell progress MUST NOT trigger a new action.
Applies togaze interfaces involving scrolling, animation, asynchronous loading, list reuse, content reordering, or moving targets.
RuleDwell progress and cross-modal confirmation MUST be bound to the specific object, the input source, and the operation meaning at the time, not merely to screen coordinates or a list index. When the target is replaced, occluded, disabled, moved out of the active interaction layer, or the action's consequence changes, the selection MUST be canceled or re-acquired validly; the progress of an old target MUST NOT be transferred to a new target. When the input source switches or the coordinate space is repositioned, the affected attempt MUST be canceled and quality and geometry re-verified. When the same object moves, the product MUST declare a pause, reset, or validated following strategy, and judge it against the scene geometry corresponding to the sample; a hit MUST NOT be assembled by combining an old gaze sample with a new layout.
Basis and referencesApple documents that a close button suddenly appearing on hover can draw the gaze and cause accidental dismissal (WWDC25). Binding the object to the operation meaning is this guideline's engineering inference for this class of failure, not a requirement in the original API documentation.
Design applicationKeep list updates on a stable object identity; freeze local content that would change the operation's meaning during confirmation. There is no need to freeze the entire interface, nor to retain gaze trajectories long-term.
Verification examples
- User side: insert a row or introduce an overlay when dwell is half complete, confirming the user does not accidentally select a new target that displaced the original position.
- Implementation side: inject scrolling, object replacement, and expired samples, checking whether the activated object, action meaning, and accumulated progress remain consistent.
CounterexamplesUnder-delivery — "expand details" is replaced with "delete," and when the old timer finishes it deletes; over-delivery — all page updates stop the moment anyone is looking.
3.3 E3 Accuracy is bounded and degrades
E2 governs how a target is triggered once it is determined; this principle governs how the target is determined: how geometry is set, how accuracy is measured, and what the system does when it is inaccurate.
E3-1Target geometry is defined by visual angleMUST
One-line summary: Size and spacing are in degrees, not pixels; the hit area may be larger than the visible size.
Applies toall gaze-activatable interface elements.
RuleThe minimum size and minimum spacing of a gaze-activatable target MUST be defined in visual angle (degrees), with the viewing distance or display geometry it is based on declared; a specification defined only in pixels, points, or physical length without declaring the distance condition does not satisfy this clause. The hit area and the visible size MAY be separated — the hit area is allowed to be larger than the visible element, but the hit areas of adjacent targets MUST NOT overlap to the point of being indistinguishable. The product MUST declare the minimum visual-angle value it adopts and its basis, checking the projected width and height separately; a three-dimensional target must additionally specify the visible surface, occlusion, and depth arbitration. A hidden object that the gaze ray passes through MUST NOT be activated merely because it ranks first in hit order.
Boundary conditionsThis clause does not prescribe a universal lower bound across products. HoloLens 2's 2° is that device's vendor recommendation, not a hard physiological threshold. Apple's official talk requires at least 60 pt of target space for each element, which may be jointly satisfied by visible size and spacing; its fixed-ratio 3D object reference converts to approximately 2.5° (see Appendix B). When adopting platform-standard controls and dynamic scaling, the requirement MAY be satisfied through the platform's traceable display-geometry conventions, without requiring the designer to separately fill in a physical distance. The achievable accuracy of headsets, desktop remote eye trackers, and in-vehicle DMS differs; the value taken MUST be determined by that device's own measured accuracy.
Basis and referencesA 2° visual angle is approximately 2.1 cm at a 60 cm viewing distance (conversion in Chapter 4). When the relative measurement error of a target is too small, it is typically harder to distinguish; error is not a fixed-radius circle, and absolute hit rate cannot be derived from size alone. Target spacing, offset, jitter, and the determination method need to be measured jointly.
Design applicationIn the design tool, lay out the gaze interface on an angular grid rather than a pixel grid; when the same design is used for devices at different distances, reconvert rather than proportionally scale pixel values.
Verification examples
- User side: measure target selection rate and mis-selection rate under the device's actually measured accuracy, rather than looking only at the size annotations on the design file.
- Implementation side: check whether the layout system retains the distance parameter; check whether responsive layout compresses targets below the threshold at extreme sizes.
CounterexamplesUnder-delivery — reusing the mobile 44 pt touch-target spec for a gaze interface, so the user can never select it no matter how they look; over-delivery — expanding the hit area to be extremely large to make it "easy to select," so that adjacent targets' hit areas overlap each other, and the one ranked first is always what gets selected.
E3-2Accuracy is an observable operational stateMUST
One-line summary: The system itself must know whether it is currently accurate, and change its behavior accordingly.
Applies toall features that make determinations based on gaze position.
RuleThe system MUST maintain an evidence-based tracking-availability state, which may come from measured error, a validity flag, calibration verification, or a quality level provided by the platform, recording its basis, coverage area, and freshness; when no measured value is available, "unknown" MUST be allowed, and per-frame accuracy MUST NOT be fabricated. When quality is expressed as angular error, a smaller value is better, and only exceeding the error ceiling counts as insufficient; accuracy, precision, and data-loss rate MUST NOT be conflated into a single metric. During binocular fusion, monocular use, or input-source switching, verification MUST follow the corresponding population and device conditions; a missing eye MUST NOT be included in an average as a zero coordinate, nor may head direction silently impersonate gaze position. When quality is insufficient or unknown, behavior MUST be defined — at minimum one of: deactivating gaze activation, enlarging the target and verifying it remains distinguishable, or switching to an alternative channel (corresponding behavior, see E6-3). Changes to the accuracy state MUST be readable by product logic; it is forbidden to keep judging hits at the nominal accuracy when accuracy is already known to be insufficient. The system's estimate of accuracy and the disclosure to the user are two different things: this clause requires the former to exist; disclosure requirements are in E4-1.
Boundary conditionsThis clause does not require exposing the specific accuracy value to the application layer — out of the considerations in E5-2, exposing a level (available/degraded/unavailable) may be a more suitable granularity. What it requires is that this state exists internally in the system and that behavior changes accordingly.
Basis and referencesTracking accuracy degrades from lighting changes, wearing-position shifts, pupil-size changes, and fatigue — this is a repeatedly documented phenomenon; Microsoft's guidelines note that accuracy may drop to some degree with lighting changes and recalibration may be needed (see reference.md §1, §4). Nominal accuracy cannot substitute for verification with the target user under actual use conditions (measurement basis in Appendix A.3).
Design applicationWire the accuracy estimate into layout and hit-testing, not just into a "please recalibrate" prompt; tiered accuracy rather than a continuous value is easier to use in product logic.
Verification examples
- User side: use the product under artificially induced low-accuracy conditions (changing lighting, moving the wearing position), observing whether operations requiring high accuracy are still demanded of the user.
- Implementation side: inject a degraded accuracy estimate, verifying that hit-testing and target geometry genuinely change accordingly.
CounterexamplesUnder-delivery — accuracy is never re-assessed after calibration, and after wearing the headset for two hours the user can no longer select anything, with no response from the product; over-delivery — a recalibration prompt pops up at the slightest accuracy fluctuation, interrupting the user every few minutes.
E3-3Tracking loss is an explicit stateMUST
One-line summary: Lost means lost — no extrapolation, no guessing, no silently reusing the last position.
Applies tofeatures that use gaze position to determine selection, hits, and activation. Pure rendering prediction is not bound by this clause's prohibition on extrapolation, but the predicted value MUST NOT be reused as valid operational evidence.
RuleInvalidity and timing are adjudicated by clause according to the table below, not governed by a single "loss timeout"; accumulation and activation stop the moment the first invalid, expired, or unexplainable-timestamp sample appears, without waiting for the loss time limit to be reached. When the data source stops sending events, freshness expiry MUST likewise be detected; the system MUST NOT rely on "receiving an invalid sample" as the only way to discover a stream cutoff. When cancellation, deauthorization, object invalidation, and a timing threshold are pending at the same time, the blocking condition is handled first, before deciding whether to allow submission.
| Condition | Immediate action | Window and recovery |
|---|---|---|
| A fresh, valid sample still hits the same object content | Accumulate valid dwell | Only valid time is accumulated; interruption time is not accumulated |
| A fresh, valid sample clearly leaves | Freeze, start the leave window | Reset to zero on reaching the cancellation time limit; returning to the original target requires re-checking the object and action meaning |
| The first invalid, expired, or unexplainable-timestamp sample | No hit produced, no accumulation, no submission | MUST NOT be fabricated as "left"; freeze under the short-interruption suppression policy, resetting to zero on reaching gaze.activation.dwell.interruption_window; this window is separate from the cancellation window for a valid departure |
| Hardware unavailable, permission off, user-disabled, or object invalidated | Cancel the related selection and any ongoing command | Enlarging the target MUST NOT substitute for deactivation; a new submission MUST NOT begin until a valid selection is re-acquired |
| Valid tracking present but quality degraded | Restrict functionality per a verifiable quality policy | Enlargement MAY be adopted only when verified that targets remain distinguishable |
Extrapolating gaze position to continue judging hits during tracking loss is forbidden; reusing the last valid gaze point as the current gaze point is forbidden. Recovering valid tracking only restores eligibility for a valid selection: an uncanceled short interruption may continue under its contract, while a canceled attempt MUST restart; an incomplete prior submission MUST NOT be automatically completed. The invalid state MUST be perceptible to the user (requirement in E4-1).
Basis and referencesAvailable signal, brief invalidity, and sustained failure must be distinguished; an unavailable signal must not be silently folded into a valid selection. OpenXR's validity, tracking flags, and time information provide a partial implementation basis, but are not a one-to-one mapping of this guideline's state model (reference.md §3.1).
Design applicationStop the activation timer the moment the first invalid, expired, or unexplainable sample appears, without waiting for the tracking-loss prompt's time limit before preventing mis-triggers. Distinguish a brief interruption (blink, momentary occlusion) from true loss — the former is absorbed by E2-4's suppression window, the latter enters the invalid state; the two time limits are configured separately.
Verification examples
- User side: have the user briefly cover the eye-tracking camera with a hand or close their eyes for a few seconds, verifying no activation is produced and the state is clear after recovery.
- Implementation side: replay a data stream containing tracking interruptions, checking whether the hit-testing count during the interruption is zero.
CounterexamplesUnder-delivery — after tracking loss, the system reuses the last position; while the user rests with eyes closed, the dwell timer fills up and triggers an operation; over-delivery — a single 100 ms blink interruption grays out the entire screen with "tracking lost."
E3-4Calibration cost is proportionate to its benefitSHOULD
One-line summary: Judge whether there truly is an offset before recalibrating; do not treat a guessed intent as calibration ground truth.
Applies toproducts that require user cooperation to complete calibration.
RuleThe product SHOULD require recalibration only once drift reaches a degree that affects the task, and SHOULD prefer a low-interruption quality check; implicit correction is used only when the reference target is reliable and the improvement is verified; recalibration SHOULD NOT be required unconditionally at fixed time intervals. Regardless of the correction method used, the object selected after a probabilistic hit MUST NOT be directly treated as the ground truth of the user's actual gaze. When a shared device switches users, or a profile is imported across devices, it MUST be re-verified before it can be used for that user; another person's fitted result MUST NOT be reused. The triggering condition and required duration of calibration SHOULD be predictable to the user. Whether the first calibration can be skipped, and the scope of availability after skipping, SHOULD be explicitly declared (corresponding to the uncalibrated behavior in E6-3).
Basis and referencesEye-tracking reporting guidelines require stating the calibration method, verification criteria, and recalibration trigger condition (reference.md §4.4). They do not prove that "implicit correction is always better"; that approach must demonstrate its benefit within this product.
Design applicationKeep calibration and verification separate, checking key regions with reference points that were not part of the fit whenever possible. If natural interaction is used to correct offset, retain the pre-correction parameters and compare the effect. When re-verification fails, only a profile still applicable to the current user and conditions, and that passes verification, may be restored; otherwise degrade to a path that does not depend on calibration.
Verification examples
- User side: use continuously for 30 minutes, recording the number of times recalibration is requested and the interruption duration each time.
- Implementation side: check whether the recalibration trigger condition includes an accuracy criterion, rather than only a timer.
CounterexamplesUnder-delivery — drift has grown so large the user can select nothing, and the system still does not prompt for calibration; over-delivery — a mandatory five-point calibration every ten minutes, so the user spends a third of their time staring at dots.
3.4 E4 Feedback is restrained and attributable
E3 governs how the system internally computes a hit; this principle governs how the system tells the user about it. Feedback design for eye tracking carries a unique constraint: trigger frequency is determined by the user's eye movement, and eye movement is far more frequent than any manual input.
E4-1Gaze acknowledgment is attributableMUST
One-line summary: Let the user see where the system believes they are looking, so they can identify offset.
Applies toall interfaces where gaze participates in selection, and scenarios where the gaze feature may fail.
RuleWhen gaze participates in selection, the system MUST let the user determine which object is currently identified by the system as the gaze target; when the system is in a state of insufficient accuracy or tracking loss (E3-2, E3-3), it MUST let the user perceive this, rather than letting the user mistake the system's failure for their own operating error. The acknowledgment MAY be attached to the target object; a continuous gaze cursor is not required.
Boundary conditionsThis clause does not require presenting gaze-point coordinates or a gaze trajectory. A state change attached to the target (a slight highlight, border, or size change) satisfies the requirement, and is usually preferable to a continuous cursor. Only supplementary effects may be suppressed (supplementary animation, expansion, routine sound effects); candidate distinguishability, the charging-and-cancellation acknowledgment, and the invalid-and-off acknowledgment are not within the suppressible scope. This clause does not require the product to report the actual deviation between the user's real gaze direction and the system's determination — only the object the system has identified may be presented; when there is no reliable basis for measuring the deviation, display "unknown," and do not give a directional indicator.
Basis and referencesMicrosoft's HoloLens 2 guidelines explicitly recommend not binding an element like a cursor directly to the user's gaze — a tiny offset in the projected gaze signal produces the "fleeing cursor" effect, where the harder the user tries to look straight at the cursor, the more it runs (see reference.md §1). This is the typical cost of turning "attributable" into "a continuous cursor."
Design applicationCarry the acknowledgment through the target's state rather than a cursor's state; give the invalid state a presentation clearly distinct from the normal state (rather than simply "nothing happens," which is indistinguishable from "I didn't aim right").
Verification examples
- User side: use the product under conditions with a systematic offset, observing whether the user can realize "the system thinks I'm looking at the one next to it" and compensate.
- Implementation side: check whether tracking loss and insufficient accuracy have a presentation distinct from the normal state.
CounterexamplesUnder-delivery — after accuracy drifts, there is no indication at all, and the user thinks it is their own fault, repeatedly straining to stare at the target and causing eye fatigue; over-delivery — a high-contrast cursor that follows gaze, so the user's own gaze is drawn to their own cursor, forming a chase.
E4-2Feedback has timing and suppression conditionsMUST
One-line summary: Lightweight acknowledgment appears promptly; expansion and animation are delayed or suppressed according to context.
Applies toall interfaces that give visual, auditory, or haptic feedback in response to gaze.
RuleGaze feedback MUST define its appearance timing and suppression conditions, and distinguish basic hit acknowledgment from supplementary content expansion. A lightweight, stable highlight MAY respond instantly to a valid hit; feedback that expands content, moves the layout, or plays sound MUST have a delay or suppression proportionate to the context, avoiding interference from saccades passing through or pure reading triggering it. Feedback intensity SHOULD be restrained, avoiding high-frequency flashing effects; adjustable timing MAY inherit behavior already validated by the platform, and the application is not forced to layer additional delays on top.
Basis and referencesMicrosoft's HoloLens 2 guidelines repeatedly emphasize this — do not overwhelm the user with instant pop-up effects or hover sound effects, "subtlety is key"; while also noting that feedback itself is necessary, to show the system is working correctly (see reference.md §1). This rule carries the strongest tension between its two sides: with no feedback at all the user has no way to judge, and with feedback slightly too heavy it becomes harassment.
Design applicationContinuous hover sound effects during browsing are off by default; sound acknowledgment for discrete activation is configured per user need; refer to Apple's distinction between instant highlighting and delayed expansion (reference.md §1.3); treat "the user in continuous use for twenty minutes" as the review condition for feedback design, rather than looking only at a screenshot of a single interaction.
Verification examples
- User side: have the user rate the level of disturbance after 20 minutes of continuous use; record the number of feedback triggers per minute.
- Implementation side: replay gaze data containing many saccades, tallying the ratio of feedback triggers to actual dwells.
CounterexamplesUnder-delivery — gaze sweeping across a row of icons makes every single one pop up enlarged and play a sound; over-delivery — gaze feedback is eliminated entirely to avoid disturbing the user, so the user has no idea whether the system is responding to them at all.
E4-3Interaction states are distinguishableSHOULD
One-line summary: Hover, charging, activated, and canceled each look like themselves.
Applies tointerfaces that use multi-level gaze-interaction states.
RuleThe states of gaze entering, dwell charging in progress, activation complete, and charging aborted SHOULD be distinguishable in presentation; the same state SHOULD be presented consistently across the product. The trigger having been issued and the business result MUST be kept separate: "complete" MUST NOT be shown while awaiting the result, and "failed" MUST NOT be shown together with an automatic resend when the result cannot be determined. States MUST NOT be distinguished by color alone; when reducing dynamic effects, cues for identifying the object, progress, cancellation, and result must still be retained. Requirements for the progress presentation of dwell charging are in E2-2.
Design applicationDefine the state set at the design-system level (corresponding to Design Token §5), rather than designing it component by component; the aborted state needs an explicit presentation — "returning to the initial state" is often not enough for the user to confirm that abortion occurred.
Verification examples
- User side: have the user describe what just happened ("I selected it," "it's counting," "it was canceled"), checking whether the description matches the actual state.
- Implementation side: enumerate the state-transition matrix, confirming every transition has a corresponding presentation.
CounterexamplesUnder-delivery — charging and activated look the same, and the user doesn't know whether to keep looking; over-delivery — four states use four completely different animation sets, and the interface looks like it's playing a cartoon while the user is just browsing.
E4-4Hover-expanded content is reachable and closableMUST
One-line summary: Once new content appears, the user can move to it to read and operate it, and can also close it.
Applies toexplanations, menus, overlays, and hidden controls expanded by gaze.
RuleExpanded content MUST have a discoverable starting point, and MUST allow the user to move from the trigger target to the new content without it disappearing prematurely; it MUST remain available while the user is reading or operating it. When content is occluded, a reachable way to close it MUST be provided. Expansion MUST NOT suddenly seize the current operation target, and MUST NOT force the user to chase the interface by moving text or buttons. Alternative input MUST also be able to access the same information; gaze hover MUST NOT be the only entry.
Boundary conditionsA non-interactive tooltip MAY close once the user leaves the trigger and expansion area; not all overlays are required to remain permanently present. Where WCAG 1.4.13 applies to a webpage, the original conditions and exceptions of that success criterion must still be satisfied item by item.
Basis and referencesW3C requires that additional content produced by hover or focus be dismissible, hoverable, and persistent; this clause translates that into an interaction check for when gaze moves into new content (WCAG 1.4.13).
Design applicationHave the trigger and the expanded content form a continuous reachable region; freeze the closing timer during a brief move-out. Keep key labels positionally stable, reducing layout jumping.
Verification examples
- User side: after expanding a menu, move the gaze to the last item and select it, then open and close the menu through alternative input.
- Implementation side: check the transition path from the trigger area to the content area, occlusion handling, and closing conditions, not judging a normal move into the content as an exit.
CounterexamplesUnder-delivery — the moment the user looks at the tooltip's body text, the tooltip disappears because it left the icon; over-delivery — every tooltip that has ever been viewed once stays permanently present, covering the page.
3.5 E5 Gaze data is visible and controllable
The first four principles govern interaction; this principle governs data. Its object of regulation is gaze data itself — what is collected, what is inferred, how long it is kept, and where it goes. This is where eye tracking differs from every traditional input channel: gaze and eye data may support individual-level inferences beyond the current operation; the risk depends on data content, granularity, associated information, and use. Other input trajectories may also leak personal characteristics, and this cannot be taken to mean they carry no inference risk.
E5-1Collection and purpose are disclosed and boundMUST
One-line summary: State clearly what is collected, what is inferred, and what it is used for; uses beyond that require re-authorization.
Applies toall products that collect gaze data.
RuleBefore the user gives authorization, the product MUST explain, in an understandable way: which gaze data is collected, what inferences are made from it, what purpose it serves, how long it is retained, and whether it leaves the device. The collection purpose MUST be bound to the actual use — using already-collected gaze data for a purpose beyond the disclosed one MUST require re-authorization; it MUST NOT rely on "eye-tracking authorization already obtained" to cover the new use.
Boundary conditionsThis clause does not require disclosing technical details (sampling rate, algorithm) to the user. What it requires is that the user can understand "what the system will know about me."
Design applicationList uses item by item rather than bundling them into a single phrase like "to improve the experience"; state "needed for interaction" separately from "analytics, recommendation, monitoring" — this is the precondition for E5-3's item-by-item authorization.
Verification examples
- User side: after reading the disclosure, have the user restate "what will the system know about me," checking the gap against the actual collection scope.
- Implementation side: audit the actual data flow against the disclosed content; check whether adding a new use triggers re-authorization.
CounterexamplesUnder-delivery — the authorization page reads only "this application uses eye-tracking functionality"; over-delivery — the full technical specification is crammed into the authorization page, and after reading it the user still doesn't know what the system will know.
E5-2Raw gaze does not leave the device by defaultMUST
One-line summary: The application does not get raw gaze-point coordinates by default; it gets only the layer it needs.
Applies toplatforms and systems that provide gaze capability to third-party applications, plugins, or external services.
RuleThe system MUST tier the exposure granularity of gaze data, distinguishing at minimum: no exposure, region-or-object granularity, and gaze-point coordinates. The default exposure level MUST be the lowest level sufficient for the function; exposing gaze-point coordinates to an application MUST go through authorization independent of "enabling the gaze feature." An application requesting higher granularity does not constitute grounds for raising the default level.
Basis and referencesvisionOS's approach is to not provide gaze-position information to applications before the user clicks, with eye-tracking data processed locally on the device (see reference.md §1, §5). The value of this design is that it demonstrates a large share of gaze-interaction functionality does not require the application to know where the gaze point is — the system layer performs hit-testing, handing only the result to the application.
Design applicationPlace hit-testing at the system layer rather than the application layer — this is the most direct architecture that satisfies both this clause and E3-2 at once; the application receives only "which object was selected."
Verification examples
- User side: check whether the user can learn at what granularity a given application is obtaining gaze data.
- Implementation side: audit the gaze interfaces available on the application side, confirming the default level and the authorization threshold.
CounterexamplesUnder-delivery — enabling the gaze feature is equivalent to opening the gaze-point coordinate stream to every application; over-delivery — granularity is restricted so much that the application cannot even get "which button did the user select," and gaze interaction cannot be implemented.
E5-3Each inference type is authorized separatelyMUST
One-line summary: Gaze needed for interaction MUST NOT be bundled in authorization with emotion, load, or identity inference.
Applies toproducts that infer attention, interest, or other user states from gaze or related eye data; signal processing used only for current hit-testing, hover, and rendering does not constitute a persistent user profile.
RuleThe product MUST authorize gaze use needed for interaction separately from inferring user state from gaze, and authorize each inference type item by item, distinguishing at minimum: attention and interest, cognitive load, emotion, drowsiness or fatigue, identity recognition, and health-related indicators. For optional analytics, profiling, and general gaze-control functionality, no inference MUST be enabled by default; it is forbidden to make state inference a mandatory condition of enabling gaze interaction, and it is forbidden to let authorization for one inference cover a newly added inference type.
Monitoring capability governed by dedicated regulation is handled separately under its applicable branch: the product must first identify the specific product category, jurisdiction, and applicable clauses, defining the enable/disable authority for monitoring, alerting, recording, and secondary evaluation separately, and truthfully state which capabilities the user cannot legally disable. This exception covers only capability proven necessary to retain, and MUST NOT be extended to marketing, emotion analysis, or after-the-fact evaluation; "this is a safety feature" alone does not constitute exemption — a specific basis must be identifiable.
Basis and referencesGaze and related eye data may be used for identity or state inference, and users may not anticipate such uses; this is a risk that needs assessment, not evidence that the inference is already reliable. Risk varies with representation and use, and de-identified coordinates, regional events, or local processing cannot be assumed inherently risk-free (see reference.md §5). Authorization cannot substitute for the validity verification in E1-5, nor can it legalize a use prohibited by law.
Design applicationState identity-recognition-type inference (gaze behavior may be used for re-identification) separately in product copy, not merged with "personalization"; health-indicator-type inference needs an additional assessment of whether it triggers medical-device or health-data regulatory requirements.
Verification examples
- User side: verify whether the user can enable only gaze interaction without enabling any state inference, and that interaction functionality is unaffected.
- Implementation side: check whether the enabling condition of the inference module is decoupled from the interaction module.
CounterexamplesUnder-delivery — enabling gaze control simultaneously enables emotion analysis by default, with the user completely unaware; over-delivery — even "foveated rendering needs to know where you're looking" is made into an inference authorization requiring a user checkbox, and the authorization page has seventeen toggles.
E5-4Collection status is visibleMUST
One-line summary: The user can tell when they are being read.
Applies toall products that collect gaze data.
RuleWhen gaze data is being collected or read by an application, the user MUST be able to know this. The indication method MAY be continuous or event-based, but it MUST exist and be discoverable by the user. Collecting gaze data in the background with no indication whatsoever is forbidden.
Boundary conditionsA necessary system-level function (such as foveated rendering or accessibility navigation) MAY forgo a continuous indicator, but it MUST be checkable in settings and stated in the capability disclosure, and this exemption does not apply to any state inference in the sense of E5-3.
Design applicationFollow the existing mental model of camera and microphone indicators; distinguish "the system is using it" from "a specific application is using it" — the latter SHOULD be traceable to the specific application.
Verification examples
- User side: have the user judge, during use, "is anything reading my eyes right now," checking the accuracy of that judgment.
- Implementation side: enumerate every collection path, confirming each has a corresponding indication or falls within a declared exemption.
CounterexamplesUnder-delivery — a background application continuously reads the gaze stream with no trace on the interface; over-delivery — a large, permanently blinking eye icon sits in the corner of the screen, itself becoming a source of attentional distraction.
E5-5Retention is itemized and deletableMUST
One-line summary: Raw gaze, gaze events, calibration profiles, and inference conclusions each have their own retention period.
Applies toany product that persists gaze-related data.
RuleThe product MUST separately define and separately manage the retention period of the following data: raw gaze samples, gaze events (hits, dwells, activations), calibration profiles, and inference conclusions. Each category's retention entry must state the event it counts from (collection time, event-occurrence time, profile-update time, or other), whether it is persisted, the bounded-memory handling window, and any exception reference; merely being read does not extend the retention period. The user MUST be able to view the categories of data retained and request deletion; where a statutory retention obligation exists, the reason, period, and restricted-processing scope for retention must be stated. Deleting an inference conclusion MUST NOT be reconstructed by the system from retained raw data, copies, or backups; but forming a new conclusion from newly collected data under already-disclosed rules, while authorization remains valid and the user has not disabled that inference type, does not count as "reconstruction" — deletion and disabling are two different things, and must be provided and explained separately; when a deletion is promised, instances of that conclusion in downstream profiles, caches, and recipient copies must be handled in step, and the backup cleanup cycle and the re-deletion mechanism after restoration must be stated. If eye images and pupil metrics are collected, they MUST be listed as a separate category with a separately defined retention period, and MUST NOT be folded into the calibration profile. Turning off the gaze feature is not equivalent to deleting already-retained data; the two MUST be provided and explained separately.
Basis and referencesThese four categories of data differ in sensitivity, useful lifetime, and reconstructability: a calibration profile is a device configuration, a gaze event is an interaction log, a raw sample is biometric behavioral data that can be used for re-identification, and an inference conclusion is a judgment about a person. Covering all four with a single retention period either over-retains raw data or loses necessary configuration.
Design applicationRetain raw gaze samples for the shortest period necessary. A calibration profile may be retained independently, but must also support user-initiated deletion or account clearing.
Verification examples
- User side: after deleting an inference conclusion, continue using the product, verifying two things separately: that the system has not restored that conclusion from old data or its copies; and that after the user separately disables that inference type, no such conclusion is formed again even with new data.
- Implementation side: check whether the storage location, retention period, and deletion path of the four data categories are kept separate.
CounterexamplesUnder-delivery — all eye-tracking data is bundled into one "usage data" bucket with a one-year retention period; over-delivery — the calibration profile is cleared at the end of every session, forcing the user to recalibrate every single time they use the product.
E5-6No unilateral judgment adverse to the userSHOULD
One-line summary: Attention data does not quietly become grounds for evaluation, exam proctoring, or risk control.
Applies toscenarios where gaze data may enter a judgment chain that produces adverse consequences for the user — workplace monitoring, online exam proctoring, learning assessment, insurance and credit, content compliance.
RuleA judgment of attention, focus, or state derived from gaze data SHOULD NOT be used to produce an adverse consequence for the user without that user being clearly informed. When genuinely needed for such a judgment, the criteria, possibility of misjudgment, and appeal path MUST be separately disclosed, and the product must undergo the corresponding domain compliance assessment (these guidelines do not substitute for that assessment). A use prohibited by applicable law MUST NOT be opened up merely because consent was obtained or an appeal path is provided; see reference.md §5.4, §5.5.
Boundary conditionsReal-time intervention in safety-critical scenarios is not included here — the purpose of a driver drowsiness alert is to protect that user, which is a different matter from using it to evaluate that driver after the fact. Immediate intervention does not exempt it from validity, necessity, and domain review; if its logs are repurposed for evaluation, they fall back under this clause. Legal exceptions must be checked against the specific provisions and cannot be presumed to hold merely on the label of "safety."
Basis and referencesEU AI Act Article 5(1)(f) sets out a prohibition and specific exceptions for emotion inference in workplaces and educational institutions; not every attention or drowsiness indicator automatically falls under that article's emotion recognition. The specific scope of application and exceptions must be checked against the actual use, and cannot be opened up merely on the label of "safety" (see reference.md §5.5).
Design applicationPhysically separate, in the data flow, "used to help the user" from "used to evaluate the user"; the existence of the latter must itself be visible to the user.
Verification examples
- User side: examine one state judgment, verifying the user can discover its use, correct an error, and find the appeal path.
- Implementation side: trace every consumer of gaze-derived metrics, confirming none leads to an evaluative judgment about the user without disclosure.
CounterexamplesUnder-delivery — an online exam system directly judges cheating from the number of gaze deviations and cancels the score, with the student unaware of the criteria and unable to appeal; over-delivery — out of fear of compliance risk, even an aggregate product metric like "most people didn't look at this section" is abandoned as well.
3.6 E6 The channel is exitable and non-exclusive
The first five principles assume the gaze channel is working. This principle governs when it is not working, cannot be used, or should not continue to be used: under what conditions the user depends on this channel, and what the exit path is under each condition.
E6-1An equivalent alternative path existsMUST
One-line summary: Every task that can be completed with the eyes has a way to complete it without the eyes.
Applies toall products that provide gaze interaction.
RuleFor every primary task of the product, a completion path not dependent on gaze MUST exist, and that path MUST be functionally equivalent to the gaze path — it MUST NOT be a feature-reduced path. The alternative path MUST be discoverable, and MUST NOT require the user to first find it through the gaze channel.
Boundary conditionsThis clause does not apply to dedicated assistive devices where eye tracking is the only available input — for such products, requiring "a path not dependent on gaze" is meaningless. But even in such products, the degraded-behavior requirement of E6-3 still holds (how the user seeks help when tracking fails).
Basis and referencesDesign needs to consider two possibly overlapping or context-varying situations at once: one is eyes only (users with severe motor impairment, the starting point of the COGAIN line of work), and the other is eyes unusable (nystagmus, significant strabismus, certain eyewear or corneal conditions, bright-light environments). The same product needs to accommodate both groups at once, which is why this clause and E6-2 must coexist.
Design applicationTest the alternative path as if it were the primary path, not as an emergency exit; the gaze path may be quicker, but its reachable functionality must not exceed the alternative's.
Verification examples
- User side: with eye tracking disabled, complete all primary tasks, recording any steps that cannot be completed or are significantly worse.
- Implementation side: enumerate the feature list, annotating the non-gaze path entry for each item.
CounterexamplesUnder-delivery — a certain setting can only be entered through a gaze menu, and the user is locked out when eye tracking fails; over-delivery — to make it "equivalent," the gaze path is cut down to exactly the same number of steps as the keyboard path, erasing gaze's speed advantage.
E6-2Physiological and wearing differences are not grounds for exclusionMUST
One-line summary: Nystagmus, strabismus, monocular vision, a prosthetic eye, lenses, or drooping eyelids do not mean the product cannot be used.
Applies toall products that provide gaze interaction or gaze-related functionality.
RuleThe product MUST cover, in design and testing, physiological and wearing conditions that affect the usability of eye tracking, including at minimum: nystagmus, strabismus and interocular disparity, monocular vision or a prosthetic eye, ptosis, corrective lenses and contact lenses, abnormal pupil size, and dark iris or eyelash occlusion. For a user for whom tracking is unusable, the product MUST provide the alternative path of E6-1 without reducing their reachable functionality; for a user whose tracking quality is degraded but usable, the product MUST provide adjustable parameters (dwell duration, target size, suppression window) rather than only a single fixed set of values.
Basis and referencesThis clause and E6-1 are two sides of the same coin. A product that offers gaze as an accessibility capability, if it lacks accessible design itself, produces a particular failure: a channel built for accessibility ends up excluding another group of users with disabilities.
Design applicationExpose adjustable parameters in settings; where the device supports it, provide monocular calibration and simplified point sets, without claiming software can make up for hardware conditions it cannot track. State the basis for test conditions according to device mechanism and target population, not treating a given iris color or diagnostic label as necessarily unusable.
Verification examples
- User side: recruit participants covering the above conditions for usability testing, rather than relying only on self-testing by developers.
- Implementation side: check whether the adjustable parameter range covers the values needed by low-accuracy users.
CounterexamplesUnder-delivery — the calibration process requires both eyes to hold a stable gaze simultaneously, and nystagmus users never pass the first step with no way to skip it; over-delivery — for compatibility, the default dwell duration is set to 3000 ms, forcing every user into the slowest configuration.
E6-3Degraded behavior is definedMUST
One-line summary: The behavior for uncalibrated, insufficient accuracy, and tracking loss is each specified in advance.
Applies toall gaze-dependent functionality.
RuleThe product MUST separately define and declare system behavior for the following states: never calibrated, calibration expired or drift beyond limit, accuracy below threshold, tracking temporarily lost, and tracking unavailable (hardware fault or permission turned off). The behavior for each state MUST be specific down to activation permission, in-progress progress, ongoing commands, alternative entry, user acknowledgment, and recovery conditions. Unknown quality, a user pause, and the application losing interactive state must also have a determinate behavior; when the application goes to the background or is occluded to the point of being non-interactive, the related selection MUST be canceled and ongoing commands stopped, and returning to the foreground MUST NOT resume the original timer. When gaze is the only channel available, a failure help-seeking path MUST be arranged in advance, such as an available independent switch, a caregiver entry, or an authorized help mechanism; the help button MUST NOT be placed inside the one channel that has already failed. Applying the normal-state judgment logic under an undefined state is forbidden.
Design applicationTurn the applicable states into a state table included in the design deliverable (corresponding to Design Token §4, §7); the user-visible presentation of each state is carried by E4-1.
Verification examples
- User side: construct each applicable state in turn, verifying the product's behavior matches its declaration and the user knows what to do.
- Implementation side: check the priority of state determination — when multiple states hold at once, the most conservative behavior is taken.
CounterexamplesUnder-delivery — after permission is turned off, the interface still displays gaze-activatable elements as usual, and the user stares at them with no response; over-delivery — five states have five completely different interfaces, and the user must relearn the interface every time they encounter one.
E6-4The user can disable by scopeMUST
One-line summary: The user can turn off just inference, or just activation, rather than only all-on or all-off.
Applies toall products that provide gaze functionality.
RuleThe product MUST allow the user to disable, by scope, the gaze functionality actually under its own control, distinguishing at minimum: gaze activation (retaining system-level navigation and accessibility uses), state inference (each item in E5-3), and data retention and upload. Disabling MUST take effect immediately, and after disabling, the product MUST operate per the corresponding degraded behavior in E6-3 rather than lose functionality altogether. Placing the disabling entry itself somewhere reachable only through gaze is forbidden.
When a capability is platform-hosted, the product must state the scope it inherits and the boundary it can actually control, and point to the platform's control entry — it MUST NOT promise a disabling authority it does not have, nor evade the portion it actually controls by claiming "the platform is responsible." Monitoring capability that cannot legally be disabled is stated under the applicable branch of E5-3, and presented separately from optional capability.
Basis and referencesApple's official iPhone guidance sets Eye Tracking and Dwell Control as separate settings, demonstrating that pointing and dwell activation can be decoupled. It does not prove the platform already provides every toggle this guideline requires; an application's actual disabling capability must be checked against the platform interface it adopts (see reference.md §1.4).
Design applicationAlign the granularity of disable items with the itemized uses disclosed in E5-1, so the user can map "what I don't want" to "which toggle to turn off."
Verification examples
- User side: have the user express "I don't want it analyzing my emotions, but I want to keep gaze control," and observe whether this can be accomplished in settings.
- Implementation side: verify that the related data flow genuinely stops after disabling, not merely that the interface no longer displays the result.
CounterexamplesUnder-delivery — there is only one master "eye tracking" switch, and to avoid emotion analysis the user must give up all gaze-control functionality; over-delivery — seventeen toggles spread across four levels of settings pages, and the user cannot find which one to turn off.
E6-5Sustained load has a budgetSHOULD
One-line summary: Prolonged gaze control has a cost, and the product must account for it.
Applies togaze-interaction products expected to be used continuously for extended periods.
RuleThe product SHOULD define a load budget for sustained gaze control — continuous-use duration, number of dwell activations within a single task — and change behavior when it is exceeded: prompting a rest, switching to a less-effortful trigger method, or relaxing parameters. The prompt SHOULD NOT block an in-progress task. The product SHOULD avoid requiring the user to sustain precise gaze for a long time as a condition of completing a task.
Boundary conditionsThis clause targets the load of gaze as a control channel, not screen-use duration itself (the latter is a broader issue outside the scope of these guidelines). In assistive scenarios where gaze is the only channel, prompting rest may be inappropriate — here this clause becomes "provide a less-effortful trigger method" instead.
Basis and referencesMicrosoft's HoloLens 2 guidelines note that forcing the user to select an overly small target induces tension from ocular accommodation, causing fatigue and irritation; an overly long dwell duration is likewise described as "straining and unnatural" (Tobii). Both attribute fatigue to design parameters rather than usage duration itself — which is precisely the part the product can be held responsible for (see reference.md §1).
Design applicationPlace high-frequency targets in spatial interfaces within the comfortable field of view, reducing frequent large eye or head rotations and depth switching; re-verify selectability after distance, orientation, and scale changes (reference.md §1.3). Link the load budget to E2-1's tiers — high-frequency, low-cost repeated operations most deserve a less-effortful alternative trigger; set natural paragraph pauses for continuous gaze input (such as gaze typing).
Verification examples
- User side: after 30 minutes of continuous use, measure the change in subjective fatigue and selection error rate, rather than only measuring first-use success rate.
- Implementation side: check whether a required flow exists that demands sustaining precise gaze longer than the declared duration.
CounterexamplesUnder-delivery — the gaze-input interface has no pause design at all, and after ten minutes of continuous input the error rate doubles and the user's eyes ache; over-delivery — "please rest your eyes" pops up every five minutes, interrupting ongoing work.
E6-6Continuous control can be completed in stepsMUST
One-line summary: Dragging, scrolling, and value adjustment have ways to complete that do not require sustained, precise gaze.
Applies toproducts where gaze participates in dragging, scrolling, slider adjustment, zooming, or other sustained operations.
RulePrimary tasks MUST have a completion method that does not depend on sustained precise gaze or holding a position — for example, selecting the object then selecting the destination, step buttons, or numeric input. Continuous control MUST define behavior for start, stop, cancel, and tracking failure; when switching channels, task state that can be preserved MUST be preserved, and an unconfirmed change MUST NOT be automatically submitted. Gaze scrolling MUST let the user know the active region, and MUST stop when leaving the trigger region or when the signal becomes unavailable; on recovering tracking, an old command MUST NOT automatically resume running.
Boundary conditionsA creative task where the trajectory itself is irreplaceable to the expression MAY state the limitation and provide other available input; "dragging is our interaction method" cannot be used as grounds to claim dragging is indispensable. The functional scope of the alternative path is per E6-1.
Basis and referencesWCAG 2.5.7 explicitly lists the difficulty gaze-control users have with dragging, and requires that a webpage provide a single-pointer, non-dragging path; a keyboard alternative alone is not sufficient (W3C). Extending this clause to native interfaces is a design requirement of these guidelines.
Design applicationProvide "move up / move down" for list reordering, and numeric input alongside a slider; enable edge gaze-scrolling for reading areas as needed, and for dense settings lists prefer retaining an explicit scroll control.
Verification examples
- User side: complete value adjustment and movement using only single selections, then look away or turn off tracking during auto-scroll, verifying it can stop and hold position.
- Implementation side: check whether a failure event clears ongoing commands; verify the keyboard, single-pointer, and gaze-control paths separately.
CounterexamplesUnder-delivery — reordering can only be done by holding and dragging with the eyes through a tiny gap; over-delivery — to avoid dragging errors, the user's familiar dragging capability is removed entirely.
4. Terminology and definitions
| Term | Definition |
|---|---|
| Fixation | A period during which the eye remains relatively stable at one position. Event detection MAY use dispersion, velocity, or a platform classifier — no unified algorithm exists; the product must declare its method, thresholds, and applicable conditions (see Design Token §3). A valid interaction dwell need not equal one fixation as labeled by a research algorithm. |
| Saccade | The rapid jumping movement between fixations. Passing through quickly does not represent selection intent; feedback suppression is grounded in avoiding mis-triggers and disturbance, and does not require modeling the user as having no visual input at all during a saccade. |
| Smooth pursuit | The continuous movement of the eye following a moving target. Commonly seen when following a moving target; this kind of interaction cannot be judged directly with a fixed dispersion threshold suited to static gaze. |
| Dwell | An interaction method that uses gaze duration reaching a set threshold as the activation condition. |
| Point of regard | The user's gaze position as estimated by the system. It is an estimate, not a measured ground truth — every rule in E3 is built on this distinction. |
| Midas Touch | The phenomenon where a user merely looking at an element unintentionally activates it. Named after King Midas, whose touch turned everything to gold — everything he touched was transformed, so he could not merely touch. |
| Visual angle | The angle an object subtends at the observer's eye, in degrees (°). The linear size corresponding to 1° at observation distance d is approximately 0.0175 × d — 2° is approximately 2.1 cm at 60 cm, and approximately 3.5 cm at 1 m. Gaze-target size MUST be defined by visual angle (E3-1), because device accuracy is likewise expressed in visual angle. |
| Accuracy | How close the estimated gaze direction is to a reference direction; when quantified as angular error, a smaller value is better, and the reference position, mean or percentile, and test conditions must be stated. Systematic bias is one kind of error and must not be conflated with error in general. |
| Precision | The degree of dispersion among repeated estimates of the same gaze point, manifesting as gaze-point jitter. Accuracy and precision are two independent metrics: a system can be accurate but jittery, or stable but biased. |
| Drift | The degradation of accuracy over time after calibration. Causes include wearing-position shifts, lighting changes, pupil-size changes, and fatigue. |
| Tracking loss | A state in which the system cannot produce a valid gaze estimate. This is different from "gaze falls outside the interface," which is still a valid estimate. |
| Error-cost tier | The classification a product defines for gaze-activatable actions: reversible and low cost, reversible but high cost, and irreversible or producing an external effect. The tier determines the permitted trigger method (E2-1). |
| Explicit activation signal | Typically from gesture, key press, speech, or a controller; a dedicated confirmation when eye tracking is the only channel available must satisfy the staged exception of E2-1, and must not treat passive viewing as confirmation. |
| Implicit use | Using gaze as an attention signal for presentation-layer adaptation, not as input for selection or activation (E1-3). |
| Calibration profile | The individualized parameters saved after a user completes calibration. It is device configuration data, belonging to a different data category from gaze samples and inference conclusions (E5-5). |
| Foveated rendering | A technique that allocates rendering precision based on gaze position. It is the narrowest-scoped kind of implicit use: it affects only presentation quality, not content or state. |
Appendix A: Classification checks and verification points
A.1 Classification check
The principle division of these guidelines claims to be mutually exclusive and exhaustive. Check method: take a specific requirement, have different reviewers independently judge which principle it should belong to, and see whether they arrive at similar assignments. Two failure cases and how to handle them:
- A requirement reasonably belongs to two principles at once — this indicates the two principles' objects of regulation overlap; what gets revised is the principle's definition or the rule's granularity, not adding a "cross-reference layer."
- A requirement cannot be assigned to any principle — this indicates the division is not exhaustive, and a new principle needs to be added or an existing principle's object of regulation needs to be expanded.
Known boundaries prone to confusion, for reference during checks:
| Easily confused | Basis for judgment |
|---|---|
| E1-1 observing state vs. E2-1 trigger tier | E1-1 governs "whether a non-triggering state exists"; E2-1 governs "what method is used once triggering is decided" |
| E3-2 accuracy state vs. E4-1 accuracy disclosure | E3-2 requires this state to exist internally in the system and behavior to change accordingly; E4-1 requires the user to be able to perceive it |
| E3-3 tracking loss vs. E6-3 degraded behavior | E3-3 governs the determination logic during loss (no extrapolation); E6-3 governs the overall behavior the product presents to the user after loss |
| E1-3 boundary of implicit use vs. E5-3 inference authorization | E1-3 governs whether an inference result can change task state; E5-3 governs whether this inference can be made at all |
| E6-2 physiological differences vs. E6-1 alternative path | E6-2 governs "tracking usability is reduced for this person"; E6-1 governs "the task can be completed without using gaze at all" |
A.2 Fault-injection verification points
Walking through the rules under the following conditions is the minimum verification set these guidelines recommend:
- Switching between bright and dim light — the accuracy-degradation path (E3-2, E3-4, E6-3)
- Wearing-position shift (headset sliding down, posture change) — the drift path (E3-4, E4-1)
- Covering the camera for 3 seconds — the tracking-loss path (E3-3, E2-2 timing, E6-3)
- 30 minutes of continuous use — the feedback-overload and fatigue path (E4-2, E6-5)
- Injecting 500 ms of voice-recognition latency — multimodal timing (E2-3)
- Disabling eye tracking — alternative-path completeness (E6-1, E6-3)
- 10 normal blinks, then rapidly scanning a row of targets — mis-trigger suppression (E2-4)
- Authorizing interaction only, not inference — authorization decoupling (E5-3, E6-4)
- Continuing to use after deleting an inference conclusion — no automatic reconstruction (E5-5)
- Participant testing covering the physiological conditions — exclusion check (E6-2)
- Inserting a row, occlusion, or replacing the target mid-dwell — object-and-operation-meaning binding (E2-6)
- A validity flag still present but the timestamp expired, unknown, or misaligned across clocks — freshness and timing (E2-3, E3-3)
- Moving the gaze inside an expanded menu — content reachability and closing (E4-4)
- Completing a drag-type task using only single selections, and interrupting auto-scroll — continuous-control alternative (E6-6)
- Changing brightness, inducing missing data, and switching users — inference unknown, calibration-profile isolation (E1-5, E3-4)
- Stopping sample transmission outright with no failure callback — freshness watchdog stops the timer (E3-3)
- Shortening the threshold mid-charge, with deauthorization and threshold-reached arriving simultaneously — no retroactive activation, blocking takes precedence (E2-1, E3-3)
- Continuing to look after activation, duplicate events, and a delayed result — reinitiation and single submission (E2-4, E4-3)
- Single-eye failure, source switching, coordinate repositioning, and returning from background — quality re-verification, old timer invalidated (E3-2, E6-3)
- Browsing elsewhere while typing text, disabling animation, and color-only feedback — focus not seized, states still distinguishable (E1-1, E4-3)
The durations and counts above are fault-injection examples, not sufficient conditions for a device to pass testing.
A.3 Evaluation basis and acceptance records
Before testing, the product SHOULD state the target population, device and operating environment, task, permitted error consequences, and acceptance criteria. The table below is a suggested record template; it does not prescribe a uniform pass rate or sample size. For measurement method, refer to Dunn et al.'s reporting guidelines; the interaction-acceptance basis is a supplement from these guidelines.
| Dimension | Record at minimum | Misreading to avoid |
|---|---|---|
| Device and environment | Operating conditions of the device, SDK, and firmware; monocular or binocular; distance, display geometry, lighting, sampling rate, and event-detection method | Nominal performance does not equal field performance; an unreadable metric is recorded as unknown |
| Calibration and measurement quality | Calibration and independent verification method; angular error and its statistics, jitter, data-loss rate; reported by region and participant | A small average deviation does not mean edge targets are selectable; calibration completing does not equal verification passing |
| First-time and sustained use | Calibration time and failure count, first-completion outcome, errors and subjective load after a long session | Do not silently remove users who failed calibration from the success-rate denominator |
| Task effectiveness | Tasks completed / tasks attempted; correct first activations / deliberate selection attempts; correction time | Do not compute average speed only over already-successful trials |
| Mis-activation | Unintended activations during free browsing / observation duration; the count and consequence of wrongly submitted errors listed separately | "99% accurate" is uninterpretable without a denominator and task definition |
| Timing and recovery | Distribution of sample-to-feedback and initiation-to-activation latency (e.g., median, P95); cancellation success, recovery time | Sampling rate is not end-to-end latency; an average latency masks a long tail |
| Variation and uncertainty | Results, sample size, and interval reported by device, user condition, and usage stage; record uncovered populations | Do not use an overall mean to mask one group of users failing consistently |
| State inference | Independent label source, training/validation data split by person, false-positive, false-negative, and unknown rates, and confound control | Adjacent samples from the same person spanning the training and test sets cannot demonstrate generalization |
A minimal acceptance record may use: rule number → applicable/not-applicable and reason → configuration snapshot and basis → user-side result → implementation-side evidence → unresolved issues and alternatives. A separate document is not required for every rule. Data minimization during interaction operation still follows E5; evaluation needs are not grounds for long-term collection of raw production trajectories.
A.4 Acceptance is adjudicated separately
| Evidence | Passing condition | Cannot substitute for |
|---|---|---|
| Documentation and configuration check | Applicable clauses have a decision, fields are parseable, conditional dependencies are complete, exceptions have an exit | Cannot prove the device genuinely works |
| Mechanism and replay verification | State, timing, cancellation, deduplication, authorization, and data flow satisfy the declaration | Cannot prove the target user understands it or finds it comfortable |
| On-device and target-user verification | Meets a pre-set success rate, mis-trigger rate, latency, and load target within the declared population, task, and environment | Cannot generalize to untested populations and devices |
Hard failures are adjudicated separately: activation during an invalid state, still submitting after deauthorization, an unconfirmed external effect, reusing progress to submit a new object, duplicate submission, unauthorized inference, or unauthorized data outflow — any of these occurring in an applicable test is a fail, and cannot be offset by an average success rate. Performance and human thresholds are set by the project in advance, with sample size, denominator, and uncertainty reported; zero severe errors in testing does not prove real-world use is entirely risk-free.
Conclusions use "pass / pass with limited scope / fail," stating clearly the applicable conditions, unverified parts, alternative paths, and unresolved issues. When the input device, detection method, geometry, target population, or task conditions change, re-verify the affected evidence. Do not claim a product has passed real-world testing on the strength of one filled-out parameter table.
Appendix B: Sources and verification level of numeric thresholds
Numeric references in both the main text and the Token do not constitute a cross-device threshold. The recommendation strength in external original sources is judged separately from the binding strength of these guidelines; for the complete record see reference.md.
| Value | Source | Verification level | Applicable conditions |
|---|---|---|---|
| Target at least 2° | Microsoft HoloLens 2 guidelines | Original text verified | A single-device design recommendation; not a lower bound on the eye's physiological resolution |
| At least 60 pt of target space per element | Apple WWDC23 | Official talk verified | visionOS; satisfied jointly by element size and spacing; does not mean every visible icon must be 60 pt |
| A fixed-ratio 3D object is approximately 2.5°, approximately 4.4 cm at 1 m | Apple WWDC25 | Official talk verified | This talk's approximate conversion for 60 pt; cannot be treated as a pt-to-angle formula for any arbitrary device |
| 1° corresponds to approximately 0.0175 × viewing distance | Geometric conversion: size = 2d × tan(θ/2) | Mathematical relationship | When the target directly faces the observer; oblique and complex 3D targets need the projected visual angle checked |
| 24 × 24 CSS px (AA); 44 × 44 CSS px (AAA) | WCAG 2.2 2.5.8, 2.5.5 | Original text verified | Web pointer target size and its exceptions; does not substitute for gaze-control visual angle and measured testing |
Dwell duration is still chosen by measured testing against population, task, geometry, and device; no universal default value is provided.
Appendix C: Status and factual contract of selection attempts
This appendix concretizes the behavioral requirements of E2, E3, E4, and E6 for joint use by design, engineering, and testing. Platform-hosted portions MAY cite platform guarantees; applications are not required to replicate the platform's internal implementation. State names are semantic, not terms that must be displayed to the user.
C.1 Four categories of state, recorded separately
| Object | State or fact | Things that must not be conflated |
|---|---|---|
| Channel | Authorized / disabled; available / degraded / unknown / temporarily interrupted / unavailable | Having permission does not equal having a signal; a valid coordinate does not equal sufficient quality |
| Candidate | Object, action meaning, interaction layer, coordinate space, scene moment | Pointing at an object does not equal obtaining activation permission |
| Selection attempt | Candidate / charging / frozen / awaiting explicit confirmation / trigger issued / canceled / awaiting reinitiation | Frozen still belongs to the same attempt; a canceled attempt's progress MUST NOT be restored |
| Business result | Not submitted / awaiting result / success / failure / result unknown | Progress reaching full only triggers one request; it does not prove saving or sending succeeded |
Permission, tracking quality, and result each have their own state, and MUST NOT be masked under a single "loading." The user typically only needs to see the most useful feedback at the moment, such as "paused, keys available," "saving," or "cannot currently confirm whether the save succeeded."
C.2 Dwell state transitions
| Current situation and event | Next step | Timing and interface |
|---|---|---|
| Valid hit, has entered the activatable region, quality and authorization satisfied | Candidate → Charging | Accumulate from the agreed timing start point; base highlight and progress are distinguishable |
| Valid departure from the target | Charging → Frozen | Stop accumulating immediately, use the departure cancellation window; cancel on timeout |
| Invalid, expired, or stream cutoff | Charging → Frozen or immediate cancellation | Use the short-interruption retention window, do not falsely claim the user has moved away; a sustained-invalidity prompt follows the loss time limit separately |
| Recovers within the window with object, action, and configuration still valid | Frozen → Charging | Continue from the already-confirmed valid time; only a new valid interval may add progress |
| Hits another target, the scene becomes non-interactive, or a block takes effect | Cancel | Do not transfer progress to another target; ongoing commands stop at the same time |
| Valid residency reaches the threshold and all submission conditions still hold | Trigger issued | Consume this attempt, issue one request; immediately enter the reinitiation threshold |
| Cooldown ends but the gaze never left | Still awaiting reinitiation | An ordinary button MUST NOT trigger again; a repeat-fire control must have its own dedicated contract |
| Platform returns a result | Display the corresponding business result | Check first when the result is unknown; do not resend merely because the eyes are still looking |
The determination order is: disabled / deauthorized / object invalidated / scene non-interactive → signal validity and freshness → quality and candidate ambiguity → activation condition → request deduplication → result acknowledgment. Completion of the feedback animation does not participate in authorization or completion determination.
C.3 How time accumulates
Time windows use a half-open interval: when an interruption is shorter than the window it may be retained, and reaching the window ends it; 0 means immediate cancellation. Once valid dwell reaches the required duration, it may enter the submission check. Accuracy error, by contrast, is compared per the declared statistical basis, and cannot borrow the time-window rules.
fixation.min_durationis the criterion for a candidate to be established;dwell.durationis the activation timer. A custom implementation must declare whether dwell timing starts after the candidate is established, or includes the interval already used to verify the candidate; the two MUST NOT be unintentionally added together or double-counted. Timing from after candidate establishment is recommended; when platform-hosted, verify against its event semantics.- Valid time is accumulated based on a monotonic clock and the verified sample-coverage interval, and cannot be computed from render frame count, callback count, or nominal sampling rate. The maximum timeable gap between two samples must have a verified upper bound; a long gap must not be counted in full.
- Valid departure, short-interruption retention, and a sustained-invalidity prompt are timed separately. Once frozen, the upper bound is computed from the original interruption moment, and cannot be continually extended by repeated invalid samples.
- Merely receiving a valid sample again is not sufficient to prove the same target was being looked at throughout; a zeroed-out attempt starts over. Once a continuous-control command stops, it must be reinitiated.
C.4 Minimum operational facts
A single attempt needs to be able to verify: the attempt identifier, input source, initiation and sample time semantics, candidate object and action snapshot, configuration at the time, quality basis, accumulated valid duration, freeze or cancellation reason, submission identifier, and actual result. Custom spatial hit-testing additionally records the coordinate space and scene association; when platform-hosted, only the events and contract references the application can obtain are retained.
These are the facts needed for mechanism verification, not a license to collect raw eye data long-term. Raw trajectories may be replayed in an authorized test environment; production records SHOULD use minimal discrete events wherever possible and be retained under the constraints of E5.
Implementation acceptance scenarios
The scenarios below turn the existing clauses into reviewable acceptance inputs, without setting an additional universal performance threshold. Select according to the product's applicable capability, supplementing real devices, users, input sequences, and evidence; record the reason when not applicable, and an unexecuted item MUST NOT be recorded as passed.
| Clause | Test input and anomaly | Expected behavior and failure criterion |
|---|---|---|
| E2-3 | Gaze at A initiates confirmation, then looks at B; the confirmation result arrives with a delay. | Uses the binding valid at initiation, or cancels; does not treat B as the original target. |
| E2-6 | Mid-dwell, the button's content is changed to a higher-consequence action. | Old progress cannot submit the new action; the user can identify why it was canceled. |
| E6-1 | The target user can only use gaze-assisted input. | Verifies staged confirmation and cancellation per this exception, without forcing a hand movement the user cannot perform. |
Each scenario checks separately: the configuration's effective values, the execution record, and a result the user can understand. Retain version, target, event timestamps, failure scope, and recovery result; an unknown external result is not filled in as success or failure.
This dictionary writes the reusable behavior decisions in gaze interaction as parameters, covering activation, target, signal, calibration, feedback, data, fallback, and load. For behavior requirements see Design Guidelines.md in the same directory; for basis see reference.md. This is a human-readable behavior parameter dictionary, not a color-and-spacing variable set, and it does not claim compatibility with the DTCG serialization format.
Usage notes
Eight-category overview
| Category | Prefix | Required | Optional | Total | What it governs |
|---|---|---|---|---|---|
| Activation | gaze.activation | 2 | 7 | 9 | How gaze becomes an action |
| Target | gaze.target | 2 | 6 | 8 | How big, how far, what counts as a hit |
| Signal | gaze.signal | 2 | 8 | 10 | How the raw signal becomes an event |
| Calibration | gaze.calibration | 2 | 5 | 7 | How accurate it is now, when to recalibrate |
| Feedback | gaze.feedback | 2 | 5 | 7 | Whether to say it, when to say it, how heavily to say it |
| Data | gaze.data | 3 | 4 | 7 | What is collected, what is inferred, how long it is kept, where it goes |
| Fallback | gaze.fallback | 2 | 3 | 5 | Which path to take when it can't be used |
| Load | gaze.load | 1 | 3 | 4 | How the eyes' toll is accounted for |
Total 16 required / 41 optional / 57 items. Required items apply per capability: a product that only does system-internal foveated rendering need not implement dwell, application-layer hit-testing, or interaction acknowledgment; for each category, record the reason an item does not apply — do not fabricate a signal or parameter that does not exist.
Required and optional
| Level | Meaning | Configuration approach |
|---|---|---|
| Required | A foundational decision a product adopting gaze interaction MUST make explicit — without a default, the behavior is undefined. | MAY inherit a product preset or platform default, or express a limitation with a legitimate off state or empty range; the user is not required to fill in every item. |
| Optional | A parameter adopted only under a specific capability or differentiation need. | Not configured when there is no corresponding capability; once the capability is enabled, necessary dependencies MUST have an explicit value or an executable inheritance rule (see Section 9). |
A new capability always enters as optional. The criterion for making a configuration item required is "without it, system behavior is undefined," not "this dimension conceptually exists."
The boundaries among gaze, gaze events, inference, and calibration profile
| Object | What it is | Key boundary |
|---|---|---|
| Raw gaze sample | The sequence of gaze-point estimates produced at the sampling rate. | May be used for behavioral re-identification; shorten retention as much as necessity allows, and it must not be fixedly assumed more or less sensitive than all other derived data such as health inference. It is not "what the user looked at" — it is only a coordinate sequence. |
| Gaze event | A discrete event derived from raw samples: gaze start/end, entering a target, dwell reached, activation, cancellation. | An interaction log. Deleting raw samples does not necessarily delete events; the two have separately set retention periods. |
| Inference conclusion | A judgment about the user derived from gaze: attention, cognitive load, emotion, drowsiness, identity, health indicators. | A judgment about the person, not a record about an operation. Authorized item by item (guideline E5-3), none enabled by default. |
| Calibration profile | Individualized tracking parameters. | Device configuration data. Belongs to a different category from the three above; deleting another category does not by default clear calibration; when the user actively deletes calibration, clears their account, or requests full deletion, the corresponding scope must be executed. |
| Accuracy state | The system's estimate of current tracking quality. | A current operational state; if historical quality logs are retained, they must also be brought into the use, retention, and deletion scope. The granularity exposed to the application is decided by calibration.accuracy.report, usually coarser than the granularity used internally by the system. |
The retention period of these four data categories is set item by item through data.retention, and does not share a single value (guideline E5-5). If eye images, pupil metrics, or the like are also collected, they must be listed as additional items; what a device is capable of outputting does not mean interaction needs to collect it.
Field reading convention
The prefix for each section concatenates with a field in the table to form the full name — for example, gaze.activation and dwell.duration combine into gaze.activation.dwell.duration. All eight categories uniformly use five columns: level, design decision, field, type and legal values, applicable conditions and role.
Each selection attempt is bound to the configuration snapshot resolved when it begins. When a parameter affecting hit-testing, dwell criteria, or risk tier is modified while an attempt is in progress, retroactively converting samples already accumulated into an activation is not allowed: declare one of "cancel and require reinitiation" or "the original attempt finishes under its still-valid original configuration, and the new attempt uses the adjusted configuration." Turning off, deauthorizing, and a protective tightening intercept an affected attempt first; a change to a presentation-only setting is not converted into a business confirmation. Each runtime attempt records the configuration snapshot it used, retained per data-minimization requirements. The snapshot is the decision in effect at the time, not an extra user setting.
Angles carry a unit (degrees), durations carry a unit (milliseconds or seconds), and a linear size must simultaneously state the viewing distance. A pixel or point value must be traceable to a distance, display geometry, or platform dynamic-scaling convention (guideline E3-1); a platform-standard control may inherit a verifiable geometry convention. A set does not default to "select all." When multiple hard limits are in effect at once, the commonly allowed range is taken, not relaxed by "the later configuration overrides the earlier protection."
This dictionary's type definitions give legal values; a cited vendor value is only a reference value under specific conditions, not a cross-product compliance threshold; each product takes its value from its own device's measured accuracy and states the basis (for source and verification level see the guidelines' Appendix B and reference.md).
Locate the product's applicable capability profile first, then resolve the fields. The same dictionary applies differently across the following forms:
| Form | Typical field ownership | Key difference |
|---|---|---|
| An application consuming system events | Hit-and-activation-class fields apply; raw-sample and sampling-rate-class fields are marked "platform-hosted" and cite platform contracts and applicable conditions | The application does not obtain raw data, and does not promise a platform toggle it has no authority over |
| An application with custom hit-testing | Geometry, signal processing, and hit-determination-class fields all apply | Must declare its own coordinate system, sampling, and filtering semantics |
| Gaze-assisted interaction only | activation.mode may take staged assistive confirmation; fallback.alternative_input may take an empty set with the exception declared | The exception must undergo mis-confirmation testing with target users |
| Optional analytics and profiling | data.inference.types authorized item by item, empty set by default | Must not be bundled with interaction authorization |
| Domain monitoring governed by dedicated regulation | The enable/disable authority for monitoring, alerting, recording, and secondary evaluation is declared separately, naming the specific jurisdiction and clauses | The portion that cannot legally be disabled is stated truthfully; this exception does not cover marketing, emotion analysis, or after-the-fact evaluation — the phrase "safety feature" does not constitute exemption |
Resolution and configuration responsibility
All numeric values MUST be finite; a dimensioned value carries an explicit unit, and multipliers and counts are interpreted per their type. Time windows use a half-open interval: retainable while below the time limit, ending on reaching it, with 0 meaning immediate end. Missing, 0, empty set, "not applicable," and "platform-hosted" have different meanings and must not substitute for one another. A reference MUST resolve to an executable decision, applicable scope, and verification basis; a platform-hosted field inherits the platform's guarantee, and the string "default" does not bypass a dependency check.
| Who decides | What is appropriate to decide | Boundary of effect |
|---|---|---|
| Device and platform | Actually supported input, quality semantics, hosted events, geometry conventions | The application can only make promises within its capability |
| Product preset | Risk tier, timing, hit-testing, data scope, fallback path | Resolved before the subject begins selecting; enabled only once cross-field validation passes |
| User preference | Dwell speed, feedback channel, cursor, target magnification, use-based disabling | Adjusted within a validated range; does not loosen a fixed floor |
| Current context | Restrictions after quality degradation, user pause, currently valid target | An operational fact tightens the available range; it does not substitute for user authorization |
When the input source switches or the coordinate space is repositioned, cancel the affected attempt and re-verify quality and geometry. Cross-frame timing, state priority, and result acknowledgment follow Appendix C of the design guidelines; a smoothed display position cannot independently serve as submission evidence.
Legal configuration = type legal ∩ capability supported ∩ conditional dependencies complete ∩ rule floor satisfied. Actual authorization, measured error, effective sampling rate, and business result are all operational facts, and cannot become "authorized," "verified," or "succeeded" merely by filling in a token.
1. Activation: how gaze becomes an action
Prefix: gaze.activation
| Level | Design decision | Token field | Type and legal values | Applicable conditions and role |
|---|---|---|---|---|
| Required | Activation mode | mode | Enum: observe-only, no activation / gaze-entry activates / dwell activation / gaze plus explicit signal / gaze plus speech / staged assistive confirmation. May take different values by object or region, but each activatable object must resolve to a unique value. | Decides how gaze becomes an action here. "Observe-only" is a legal value, not "unconfigured." |
| Required | Cost-tier-to-mode binding | cost_tier.binding | Mapping: error-cost tier (reversible low cost / reversible high cost / irreversible or producing an external effect) → the set of allowed mode values. The irreversible tier must not include "gaze-entry activates" or "dwell activation"; "staged assistive confirmation" when gaze is the only channel available must satisfy E2-1's dedicated verification and cancellation requirements. | A tier mapping consistent across the whole product, not decided screen by screen. Carries forward guideline E2-1. |
| Optional | Dwell duration | dwell.duration | Positive duration; must state its basis, target user population, user-adjustable range, and whether it includes a residency interval already verified before the candidate was established. Must not be double-counted; no cross-product default value is set. | Configured when mode includes dwell activation. No universal default value exists. |
| Optional | Dwell cancellation window | dwell.cancel_window | Non-negative duration; departure freezes the timer immediately, resetting to zero on reaching the time limit; zero means immediate cancellation. Continues only when returning to the same object with content and action unchanged; departure time is not counted toward dwell. | Configured when dwell activation is provided; too large weakens "stop on leaving," too small resets repeatedly due to jitter. |
| Optional | Short-interruption progress retention | dwell.interruption_window | A non-negative, finite duration, starting from the first detected invalid, expired, or stream-cutoff state; 0 means immediate cancellation. Must not exceed signal.tracking_loss.timeout. Only freezes within the window, resetting to zero on reaching the time limit; a new valid residency interval is required after recovery. | Must be resolved when dwell activation is present. Separate from the cancellation window for a valid departure; continued timing is not allowed even when a blink prompt is suppressed. |
| Optional | Dwell progress presentation | dwell.progress | Enum: target-state transition / progress indicator / both. Must not be empty when dwell activation is enabled (see Section 9). | Carries forward guideline E2-2's "charging is visible"; does not specify a concrete presentation form. |
| Optional | Cross-channel binding window | multimodal.binding_window | Non-negative duration; looks back from the declared initiation event. Must state the event semantics, time base, and handling of an unknown timestamp; zero means using only the initiation moment. The window is not the recognition latency itself, and does not look back indefinitely because recognition is slow. | Configured when mode is gaze plus explicit signal or gaze plus speech. Carries forward guideline E2-3's leave-before-click. |
| Optional | Repeat-activation cooldown | reactivation.cooldown | Positive duration, or "must leave the target first." Even with a duration set, an ordinary button still requires a valid departure and re-entry or a new explicit initiation; the timer elapsing alone does not trigger the next submission. Sustained-gaze repeat-fire is limited to explicitly labeled step controls, with an independent stop condition defined. | Configured when a risk of continuous repeated activation exists. Carries forward guideline E2-4. |
| Optional | Eye-gesture enablement | gesture.enabled | Boolean, false by default. When true, an equivalent path not dependent on eye gestures must exist at the same time (E2-5's gaze-assistance-only exception must be explicitly declared and verified; for other situations see fallback.alternative_input). | Configured when providing an eye-gesture shortcut; being the only path is permitted only under guideline E2-5's assistive exception. |
Boundaries: mode decides how this location triggers; cost_tier.binding decides which mode values are legal at this cost tier. The binding table may only tighten, not be relaxed for an individual interface.
2. Target: how big, how far, what counts as a hit
Prefix: gaze.target
| Level | Design decision | Token field | Type and legal values | Applicable conditions and role |
|---|---|---|---|---|
| Required | Minimum target visual angle | min_angular_size | A positive, finite angle (degrees), constraining projected width and height; an irregular target references a verifiable effective area. 2° is only HoloLens 2's device reference, and no universal default is set. A linear size must simultaneously state the viewing distance. | The lower bound of a target as declared by the product; size, spacing, and actual error need joint verification — 2° is not a physiological limit. |
| Required | Minimum target spacing | min_spacing | A positive angle (degrees); the lower bound of center-to-center distance between adjacent targets; must simultaneously state the layout direction, and distinguishability is verified against the final hit-area size — a single minimum size alone is not sufficient comparison. | Determines the mis-selection rate. Expanding the hit area when spacing is insufficient does not solve the problem — it only causes hit areas to overlap. |
| Optional | Hit-area expansion | hit_area_expansion | A branching value, choose one: angular_margin = a non-negative, finite angular expansion per side; or linear_scale = a finite multiplier ≥ 1, scaling each linear dimension of the final two-dimensional hit shape relative to the element's center (not area or radius). A complex 3D shape must reference an explicit projection or dilation method. Complete the transform first, then check for conflicts with adjacent targets; after expansion, targets must still be distinguishable — where overlap exists, arbitration and ambiguity handling must be declared, and must not be decided incidentally by ordering. | Configured when a visible element is constrained by visual design and cannot reach min_angular_size. |
| Optional | Hit-testing model | hit_test.model | Enum: nearest target / probability-weighted / priority arbitration. | Configured when targets are dense or probabilistic hit-testing is used. Affects the semantics of hit_test.ambiguity. |
| Optional | Ambiguity handling | hit_test.ambiguity | Enum: no selection / take highest confidence / request disambiguation. An action in the irreversible tier must not take "take highest confidence." | Behavior when multiple candidates fall within the estimated error range or candidate set; does not assume error is always circular. Carries forward guideline E1-4. |
| Optional | Activation exclusion zone | layout.exclusion_zone | A set of regions; regions that do not participate in gaze activation (long text, images, video). | Configured when the interface carries both reading and control at once. Carries forward guideline E1-1's observing state. |
| Optional | Motion-and-replacement policy | motion.policy | Enum: pause on motion / reset on motion / follow the object once verified. Any value MUST cancel old progress when the object, action meaning, or visible interaction layer changes. | Configured for dynamic layouts or moving targets, carrying forward E2-6; input and scene use an alignable time and coordinate space. |
| Optional | Candidate stability and switching | stability.policy | Rule reference: candidate entry, holding, exit, and switching conditions, conflict arbitration, occlusion, and depth rules; a validated hysteresis or snapping MAY be used. Ambiguity among visible targets does not accumulate; progress resets to zero on switching targets; a holding zone must not cross an active layer or intercept an adjacent target. | Configured for custom dense targets, snapping, or dynamic layouts; must not use infinite stickiness to mask drift — the user must be able to reselect. |
Boundaries: Defining geometry by visual angle is a hard requirement; the specific value is determined by the device's measured accuracy. The hit area may be larger than the visible size, but not so large it swallows its neighbor.
3. Signal: how the raw signal becomes an event
Prefix: gaze.signal
| Level | Design decision | Token field | Type and legal values | Applicable conditions and role |
|---|---|---|---|---|
| Required | Gaze determination threshold | fixation.min_duration | A positive duration, or a reference to a platform event criterion; when custom, used jointly with fixation.detector — a fixation must not be defined by duration alone. Pure moving-target pursuit must use a criterion suited to that task. | Determines what counts as "looking." Too small a value judges a saccade passing through as a fixation. |
| Required | Tracking-loss time limit | tracking_loss.timeout | A positive duration; reaching it enters the invalid state (guideline E3-3). If blink.suppression is configured, this must not be smaller than that window; the first invalid or expired sample stops the timer immediately; a stream cutoff must be discovered through freshness detection. This field starts from the first detected interruption and decides when the sustained-invalid state and its prompt begin; it does not control progress retention. | Determines what counts as "no longer visible." Extrapolating gaze position for activation determination during invalidity is forbidden. |
| Optional | Smoothing window | smoothing.window | Choose one: a non-negative, finite duration (0 means no additional smoothing), or a positive integer sample count (1 means this window adds no further averaging; fractions are not accepted). Must cite the filter used and its timing semantics. When the sampling rate is variable, verify latency against actual time, not by extrapolating from a nominal Hz value. | Configured when jitter is noticeable. Increasing smoothing reduces jitter but adds response latency, and must be considered together with feedback.onset_delay. |
| Optional | Saccade suppression | saccade.suppression | Choose one of three: platform + a classifier and applicable-condition reference; velocity + a positive, finite angular-velocity threshold (°/s), determination window, and coordinate system; or no_additional_filter. During motion exceeding the threshold, no activatable hit is produced and dwell is not accumulated; only supplementary feedback is suppressed — cancellation, invalidity, and closing acknowledgments are not hidden. Taking no_additional_filter does not waive E2-4's mis-trigger-prevention floor; a separate verifiable criterion must exist. | Carries forward guidelines E2-4 and E4-2. Does not treat rapid passage as selection intent; does not assume this means there is no visual input at all during a saccade. |
| Optional | Blink-tolerance window | blink.suppression | A positive duration; an invalid signal shorter than this value is not escalated to sustained tracking loss, nor does it produce activation; the application cannot assert a short interruption is necessarily a blink merely from its brevity. Must not exceed tracking_loss.timeout; this item only manages short-interruption classification and prompting, and does not decide progress retention. | Carries forward guideline E2-4. Whether dwell progress is retained is decided by activation.dwell.interruption_window; no interruption time is ever accumulated. |
| Optional | Sampling rate | sampling.rate | Three quantities that must not be conflated: requested_rate (the requested value when the product is adjustable, limited to tiers the device supports), effective_rate (the actual effective sampling rate, an operational fact), and the device's nominal output capability. This field carries only the configurable requested value; when decided solely by the device, record it as a capability declaration, and when the application cannot obtain it, record "unknown" — do not fabricate a value. The value taken must be compatible with the promised dwell-duration precision and event-timestamp precision. | Configured when multiple devices are supported. A low sampling rate degrades the look-back precision of activation.multimodal.binding_window. |
| Optional | Event-detection method | fixation.detector | A method-and-condition reference: dispersion / velocity / platform classifier / other validated method. States the necessary thresholds and coordinate space. | Configured for custom detection; when inheriting platform events, record their semantics and applicable conditions — the application is not required to obtain raw samples. |
| Optional | Stability range | fixation.max_dispersion | A positive angle and dispersion statistical method; a single number alone, omitting the window and coordinate system, is not sufficient. | Configured when dispersion-based detection is used, paired with fixation.min_duration; may not apply to other algorithms. |
| Optional | Sample maximum age | sample.max_age | A positive duration; the maximum allowed gap between the moment of target determination and the moment the sample corresponds to; a real-time hit uses the current moment, and a historical binding uses the declared initiation moment. The value structure must also state the maximum timeable sample gap, duplicate and out-of-order handling, and the predicted-data policy; real-time sample age, in the clock used, must be non-negative and must not exceed the upper bound. An unknown or future predicted moment is not directly treated as a fresh measurement, a duplicate sample is not double-timed, and a long gap is not backfilled. | Configured for custom hit-testing or cross-modal binding; an expired sample must not add to dwell or a submission. When platform-hosted, an already-validated freshness guarantee MAY be inherited. |
| Optional | Input-source and coordinate contract | source.profile | A resolvable reference: platform event / left eye / right eye / fused binocular; coordinate space, time base, validity and quality fields, fusion rules, and source-switching and spatial-repositioning disposition. An unsupported quantity is recorded as unknown, never a fabricated value. | Configured for custom determination; a missing eye is not averaged as a zero point, and re-verification with cancellation of the affected attempt occurs after a source or space switch. Head direction is an independent alternative input and must not be renamed as gaze. |
Boundaries: The parameters in this section decide "what counts as one fixation, what counts as broken"; their values must be compatible with the device's sampling rate, and must not be set by experience preference alone.
4. Calibration: how accurate it is now, when to recalibrate
Prefix: gaze.calibration
| Level | Design decision | Token field | Type and legal values | Applicable conditions and role |
|---|---|---|---|---|
| Required | Calibration requirement | required | Enum: required on first use / skippable with degradation / not needed. Taking "skippable" requires fallback.uncalibrated_behavior to be configured. | Determines whether the user can start using the product directly. |
| Required | Allowed error ceiling | error.max | A positive angle with its statistical basis, or a validated platform-availability-level reference; a smaller angular error is better, and degradation is triggered only above the ceiling. When unknown, handle per the degradation policy — do not fabricate a value. | Carries forward guideline E3-2. The quality basis must be traceable, whether from verification or a platform level; per-frame angular error, which may be unobtainable, is not required. |
| Optional | Accuracy exposure granularity | accuracy.report | Enum: not exposed / level (available, degraded, unavailable, unknown) / numeric value. The default takes the lowest granularity sufficient for the function. | Configured when accuracy information is provided to the application layer. Belongs to the same exposure-surface control as data.raw_gaze.exposure. |
| Optional | Drift tolerance | drift.tolerance | A non-negative, finite angle (degrees) + the offset statistic used (mean, median, or percentile) + a reference to the verification region and method; exceeding it triggers the accuracy criterion in recalibration.trigger. Whether to add debounce or hysteresis is written into the quality scheme; no additional universal constant is set. | Configured for long-session products. Some degree of drift is unavoidable; too strict a tolerance causes frequent interruption. |
| Optional | Recalibration trigger | recalibration.trigger | A set: error exceeds the ceiling / drift exceeds tolerance / wearing-position change / significant lighting change / user switch / user request / scheduled. An empty set means only that there is no automatic trigger — a user-initiated calibration entry must still be available. | Carries forward guideline E3-4. Must not consist solely of a scheduled item. |
| Optional | Calibration-profile scope | profile.scope | Enum: single session / local to device / synced across devices. Cross-device sync must fall within the range allowed by data.processing.locality. | Determines whether the user needs to calibrate repeatedly. The calibration profile's retention period is listed separately in data.retention. |
| Optional | Calibration verification scheme | validation.profile | A resolvable scheme: reference targets and coverage region, quality metrics, acceptance criteria, check timing, failure handling, and expiry. | Configured when the product performs or promises calibration, imports a profile, or applies implicit correction; calibration fitting and verification are kept separate, and re-verification is required after a profile switches users or devices. |
Boundaries: Accuracy is an operational state, not a one-time configuration outcome. error.max is the dividing line for product behavior; accuracy.report is the exposure surface — the two are different.
5. Feedback: whether to say it, when to say it, how heavily to say it
Prefix: gaze.feedback
| Level | Design decision | Token field | Type and legal values | Applicable conditions and role |
|---|---|---|---|---|
| Required | Feedback onset timing | onset_delay | A non-negative duration, or a platform-behavior reference, defined separately for basic acknowledgment versus supplementary expansion; zero MAY be used for a stable, lightweight base highlight, while expansion must define a delay or suppression per context. | Carries forward guideline E4-2. Zero delay must not be misread as the raw sample directly driving feedback; validity and suppression conditions must still be satisfied. |
| Required | Feedback channel | modality | A set: visual / auditory / haptic; at least one. Visual feedback must not distinguish state by color alone. | Carries forward guidelines E4-1 and E4-3. Continuous hover sound effects are off by default; discrete-activation acknowledgment sound and accessibility prompts are selected as needed. |
| Optional | Feedback intensity | intensity | Enum: subtle / pronounced. Subtle by default. | Trigger frequency is determined by the user's eye movement rather than by their operation, so the default intensity should lean conservative. |
| Optional | Suppression conditions | suppress.contexts | A set: saccade in progress / within an activation exclusion zone / video playing / accuracy insufficient. This field controls only supplementary effects (supplementary animation, expansion, routine sound effects); it MUST NOT suppress candidate distinguishability, the charging-and-cancellation acknowledgment, or the invalid-and-closing acknowledgment — these MUST be retained under any suppression condition. | Carries forward guideline E4-2. Division of labor with signal.saccade.suppression: the latter suppresses determination, this item suppresses presentation. |
| Optional | Offset visibility | offset_disclosure | Enum: off / present an additional offset diagnostic based on existing validated data. This field governs "additional diagnostic presentation"; turning it off does not waive E4-1's basic acknowledgment (the currently identified object must still be distinguishable). When there is no current reliable basis for measuring deviation, display "unknown" — do not give a directional indicator — the system only knows which object it has identified, not which one the user actually meant to look at. | Carries forward guideline E4-1's attributability requirement. The target state is preferred by default; an assistive scenario MAY provide an adjustable, hideable gaze cursor, with the chase-and-disturbance risk verified. |
| Optional | Expanded-content behavior | reveal.behavior | A rule reference: trigger region and content region, cross-region persistence condition, close entry, end condition, and alternative-input entry. | Configured when gaze expands a menu, tooltip, or hidden control, carrying forward E4-4; must not disappear the moment the gaze moves into it. |
| Optional | State presentation | state.presentation | A mapping: candidate / charging / frozen / canceled / awaiting reinitiation / awaiting result / success / failure / result unknown / channel invalid → a component presentation or platform-behavior reference; covers every enabled state. Includes non-color cues and the presentation under reduced-motion. | Configured for custom multi-level interaction; the result comes from a genuine acknowledgment — progress reaching full is not treated as success, and per-frame samples are not fed into screen-reader announcements. |
Boundaries: This section controls "presentation," not "determination." Suppression on the determination side is in Section 3. A feedback preset must be combined with sustained-use testing, such as 20 minutes of continuous use; that duration is only a review example, not a uniform passing threshold.
6. Data: what is collected, what is inferred, how long it is kept, where it goes
Prefix: gaze.data
| Level | Design decision | Token field | Type and legal values | Applicable conditions and role |
|---|---|---|---|---|
| Required | Raw-gaze exposure granularity | raw_gaze.exposure | Enum: not exposed / region granularity / hit object / gaze-point coordinates. The default takes the lowest level sufficient for the function; taking "gaze-point coordinates" requires independent authorization, not covered by "gaze enabled." | Carries forward guideline E5-2. Placing hit-testing at the system layer lets most functions work at the "hit object" level. |
| Required | Collection purpose | purpose | A set, non-empty; each item is a use statable to the user. Any use beyond that requires re-authorization. Like raw_gaze.exposure, inference.types, processing.locality, and export.scope, this field declares the upper bound of capability the product can support — it is not a Cartesian-product grant — purpose containing "research" and export.scope containing "samples" does not mean any research recipient may obtain samples. | Carries forward guideline E5-1's purpose binding. "Improving the experience" is not a resolvable use. |
| Required | Itemized retention period | retention | Itemized entries: raw gaze samples / gaze events / calibration profile / inference conclusions, each entry including: the counting-from event (collection time / event-occurrence time / profile-update time — one must be stated), the period (a non-negative duration or "not persisted"), whether it is persisted, and the handling window for bounded memory. Being merely read does not extend the period. At least these four are set separately, with other actually collected categories listed additionally, not sharing a single value; a scope required by law to be retained is stated separately. Deletion and disabling are two different things: after deletion, the data must not be reconstructed from old data or its copies, while forming a new conclusion from new data — when authorization remains valid and the user has not disabled that inference type — does not count as reconstruction. | Carries forward guideline E5-5. Take the shortest period necessary for the purpose; calibration is managed independently, and this does not block user-initiated deletion or full clearing. |
| Optional | Inference types | inference.types | A set: attention and interest / cognitive load / emotion / drowsiness or fatigue / identity recognition / health-related indicators. Empty set by default, authorized item by item, must not be bundled with interaction authorization; must satisfy E1-5's reliability requirements and applicable-use restrictions. | Carries forward guideline E5-3. Identity recognition and health-indicator items each require a separate domain-compliance assessment. |
| Optional | Processing locality | processing.locality | Enum: device-local only / upload aggregated results only / may upload authorized non-raw data / may upload authorized raw samples. Device-local only by default; the specific category is still bounded by export.scope — no tier auto-selects everything. | Carries forward guideline E5-1. Uploading raw samples significantly changes the re-identification risk level. |
| Optional | Collection indicator | active_indicator | Enum: always shown / shown while collecting / not shown. Taking "not shown" is limited to declared necessary system-level functions, and does not apply to any inference.types item. | Carries forward guideline E5-4. The indicator itself should not become a source of attentional distraction. |
| Optional | Export scope | export.scope | A set; the data categories permitted to be exported or provided to a third party, empty set by default. | Configured when data sharing exists. An empty set is not relaxed because a third party requests it. Every runtime access is separately bound: subject or application, purpose, data category, granularity, recipient, period, and authorization basis — this binding is an operational fact, it is not written into this dictionary, and no default value assigns it "authorized"; interaction permission granted to Application A must not be used by Application B for analytics, a newly added category does not automatically open to an existing recipient, and local authorization does not automatically cover upload. |
Boundaries: The three required items in this section jointly define "what the system will know about the user, and how long that knowledge is kept." An empty inference.types is a fully legal configuration — gaze interaction can work without any state inference.
7. Fallback: which path to take when it can't be used
Prefix: gaze.fallback
| Level | Design decision | Token field | Type and legal values | Applicable conditions and role |
|---|---|---|---|---|
| Required | Alternative input channel | alternative_input | A set, non-empty; completion methods functionally equivalent to the gaze path. A dedicated assistive device where gaze is the only available channel MAY take an empty set, but must explicitly declare this exception. | Carries forward guideline E6-1. Equivalent means equal reachable functionality, not an equal number of steps. |
| Required | Degraded behavior | degraded_behavior | A state mapping: uncalibrated / verification expired / error over limit / quality unknown / temporarily interrupted / unavailable / permission off / user-paused / scene non-interactive. The output for each applicable state is a set of structured decisions, containing at least six items: activation permission, disposition of in-progress progress, disposition of ongoing commands, alternative entry, acknowledgment to the user, and recovery condition. "Enlarge and verify the target" is selectable only when valid tracking is still present and the target is verified to remain distinguishable; hardware unavailable, permission off, user-disabled, and object invalidated all uniformly take "deactivate activation and cancel the related selection" — enlarging the target must not substitute for deactivation. Every applicable state must have a determinate behavior; authorization must not be loosened, nor may erroneous submission simply be tolerated. A recovery condition only restores eligibility for a valid selection; an uncanceled short interruption continues under its timing contract, a canceled attempt must restart, and an old submission is never automatically completed. (This is a set of internal decisions and is not required to be exposed item by item as a user-visible setting.) | The behavior when error exceeds calibration.error.max, quality is unknown, or tracking is lost. Carries forward guidelines E3-2 and E6-3. |
| Optional | Disable scope | disable.scope | A set: gaze activation / state inference / data retention and upload / all. Must support disabling by scope, and must not offer only all-on or all-off. | Carries forward guideline E6-4. The granularity of disable items should align with the itemized uses in data.purpose. |
| Optional | Uncalibrated behavior | uncalibrated_behavior | Enum: block gaze functionality / degraded but usable / guide through calibration. Must be configured when calibration.required takes "skippable with degradation." | Determines whether the user can start using the product after skipping calibration, and which functions are available at that point. |
| Optional | Stepped path for continuous control | continuous_control.alternative | A mapping: dragging / scrolling / value adjustment and other enabled capabilities → an equivalent path such as single selection, stepping, or numeric input, together with start, stop, cancel, and failure handling. | Configured when providing continuous control, carrying forward E6-6; "keyboard support exists" does not substitute for verifying the single-pointer path. |
Boundaries: This section revolves around the four causes of "why the user cannot use this channel": the device can't do it (degraded_behavior), not yet calibrated (uncalibrated_behavior), doesn't want to use it (disable.scope), and the alternative path that always exists (alternative_input).
8. Load: how the eyes' toll is accounted for
Prefix: gaze.load
| Level | Design decision | Token field | Type and legal values | Applicable conditions and role |
|---|---|---|---|---|
| Required | Continuous-use ceiling | continuous_use.max | A positive duration, or "unlimited." Taking a specific value requires configuring rest_prompt or changing the trigger method upon exceeding it. | Carries forward guideline E6-5. Taking "unlimited" is a legal configuration, but must match the product's actual usage pattern. |
| Optional | Rest prompt | rest_prompt | Duration and method; the prompt must not block an in-progress task. | Configured for long-session products. For an assistive scenario where gaze is the only channel, it is preferable to instead provide a less-effortful trigger method. |
| Optional | Per-task dwell budget | dwell_budget_per_task | A positive integer; beyond it, switch to explicit activation or prompt a channel switch. | Configured for high-frequency repeated dwell-activation scenarios. Carries forward the linkage between guidelines E2-1 and E6-5. |
| Optional | Spatial comfort profile | spatial.comfort_profile | A configuration reference: the visual-angle region where primary targets sit, depth variation, orientation, and distance-scaling policy, with verification conditions for the device and target population attached. No universal value. | Configured for spatial or wide-field-of-view interfaces; carries forward E3-1 and E6-5, avoiding sustained looking at the edge and frequent depth switching. |
Boundaries: This section governs the load of gaze as a control channel, not screen-use duration itself.
9. Linkage requirements among optional items
A capability may go unenabled; once enabled, its dependencies must be complete. The table below adds no new field or third level; related values may be inherited from product rules. Within the table, the common prefix gaze. is omitted.
| Capability or promise | Dependencies that must be explicit | When unmet |
|---|---|---|
| Dwell activation | activation.dwell.duration, activation.dwell.cancel_window, activation.dwell.interruption_window, and activation.dwell.progress are non-empty; validity, blink tolerance, and object-binding policy are complete; custom timing must also specify signal.sample.max_age. | Do not offer dwell activation; fall back to explicit activation or observe-only; do not pass off timing with no progress and no cancellation window as dwell interaction. |
| Gaze plus explicit signal / speech | The initiation semantics, clock, and freshness policy of activation.multimodal.binding_window are complete; a platform-bound result MAY be inherited, and custom look-back must additionally have a compatible sampling rate and signal.sample.max_age. | Do not use the gaze at the moment recognition completes as the object acted on; when timing alignment cannot be guaranteed, request disambiguation or switch to input that still fits the error-cost tier — do not automatically downgrade to dwell. |
| An irreversible action activatable by gaze | activation.cost_tier.binding excludes dwell and gaze-entry for this tier; a genuine abort opportunity exists before it takes effect; assistive confirmation when gaze is the only channel available is separately declared and verified per E2-1, not reusing the original timer. | This action is not connected to the gaze-activation channel. |
| Probabilistic hit-testing or intent prediction | target.hit_test.model and target.hit_test.ambiguity; E1-4's correction path exists; a stepped or magnification scheme exists when gaze is the only channel available. | Do not auto-activate; enter explicit disambiguation or observe-only. |
| Skipping calibration and using directly | calibration.required takes "skippable with degradation"; fallback.uncalibrated_behavior is explicit; calibration.error.max still applies. | Do not offer skipping; or after skipping, open only functions that do not depend on accuracy. |
| Exposing gaze-point coordinates to an application | data.raw_gaze.exposure is set to that level and independently authorized; data.active_indicator is not "not shown"; the raw-samples item in data.retention is valid. | Reduce to hit-object or region granularity; do not raise the default level because an application requests it. |
| Any state inference | The corresponding item in data.inference.types is authorized; data.purpose includes that use; the inference-conclusions item in data.retention is valid; fallback.disable.scope includes "state inference"; the inference meets E1-5's verification scope and allows unknown, and the use is not prohibited by applicable law. | Do not produce that inference; interaction functionality continues to work unaffected. |
| Gaze data leaving the device | data.processing.locality permits it; data.export.scope includes the corresponding category; the use and retention period are disclosed. | Process only on the device; do not upload by default on the grounds that "cloud analysis can improve accuracy." |
| Attention data entering an evaluative judgment | The criteria, misjudgment possibility, and appeal path are separately disclosed; the corresponding domain-compliance assessment is passed (this dictionary does not constitute that assessment). | This data does not enter a judgment chain that produces an adverse consequence for the user. |
| Eye-gesture shortcut | When activation.gesture.enabled is true, an equivalent path covers the same function; only a gaze-assistance-only scenario may declare the E2-5 exception, and it must be verified. | Do not offer eye gestures; do not expose any function only through an eye-gesture path. |
| Long sessions or continuous gaze input | When load.continuous_use.max takes a specific value, either load.rest_prompt or a trigger-method switch is in effect. | Do not make a load-management promise; take a more conservative value for the parameters. |
| Cross-device calibration sync | calibration.profile.scope taking "synced across devices" must fall within the range permitted by data.processing.locality, data.export.scope, and the itemized retention period, and the target device must be verified per calibration.validation.profile, not directly reusing the hardware's fitted parameters. | The calibration profile is retained on-device only. |
| Custom event detection | signal.source.profile, signal.fixation.detector, signal.fixation.min_duration; a dispersion algorithm additionally needs signal.fixation.max_dispersion, and other algorithms' necessary thresholds are stated in the method reference. | Do not treat a brief pause as a valid selection on its own determination. |
| Repeated selection with an ordinary button | activation.reactivation.cooldown, or an explicit platform reinitiation guarantee; submission deduplication and result acknowledgment are verifiable. | Do not offer a path that auto-repeat-clicks without reinitiation. |
| Custom multi-level feedback | feedback.state.presentation; the necessary states and their reduced-motion presentation are complete. | Use an already-validated platform presentation; hidden states must not be used to solve disturbance. |
| A dynamic or asynchronously changing interface | target.motion.policy, target.stability.policy, a stable object and action meaning, sample and scene timing. | Cancel this selection; do not transfer progress to a new target. |
| Gaze-expanded content | feedback.reveal.behavior, with E4-4's reachability, persistence, closing, and alternative entry. | Do not offer an expansion interaction that cannot be moved into or closed. |
| Calibration and quality promises | calibration.validation.profile; the basis, expiry, and unknown-handling policy of a numeric error or platform level are explicit. | Do not label it "calibration passed" or "accuracy reliable"; handle it as degraded. |
| Dragging, auto-scroll, or value adjustment | fallback.continuous_control.alternative; ongoing commands are cleared after a failure. | Do not offer a primary task with no stepped path and no way to stop. |
"Inherit default" must resolve to an explicit value, source, and applicable condition — it cannot be a mere statement. When multiple invalid states hold at once, first stop gaze-dependent actions, then select an available alternative path; recovering tracking does not automatically resume an incomplete submission.
Preset records and re-verification
Each preset cites a lightweight record (one line is enough — dozens of columns per field are not required): device and platform conditions, target population and task, the source or verification location of the value, the reason this value was chosen, the person responsible for the configuration, applicable and exit conditions, when it takes effect, and re-verification trigger conditions.
When load.continuous_use.max takes "unlimited," the record must state why no time threshold is needed, and what instead carries E6-5's purpose (a less-effortful trigger method, the task's own pacing, or a user-controllable rest entry); "making no load-management promise" is not a permanent exemption — it is a [SHOULD]-level deviation, and the rationale and alternative verification must be recorded.
Re-verification triggers include at minimum: a firmware or platform behavior change, a tracking-method or hardware-configuration change, a significant reduction in target size or layout, or a change in target population or use distance. After a trigger, only the affected presets and tests are re-verified — a full re-run is not required; an unverified new range must not continue to be marked "verified."
10. Fixed floor: cannot be turned off through configuration
Interpretation and authorization. Gaze does not constitute consent, having-read, being-informed, or understanding; no configuration may write a gaze event into the determination chain for these states. No configuration may open the door to an unconfirmed gaze signal directly producing an irreversible action, outbound sending, payment, or a business-state submission. An irreversible action or one producing an external effect must not be triggered by a single passive dwell or gaze entry; gaze-assistance-only confirmation strictly applies E2-1's staged exception. Enabling gaze interaction must not be a condition for mandatorily turning on state inference; state inference must undergo scope and misjudgment verification, with unknown allowed when evidence is insufficient; a use prohibited by law cannot be opened through configuration. Emotion, identity, and health-indicator inference must not be enabled by default, and must not have a newly added type covered by existing authorization.
Determination and geometry. The size and spacing of a gaze-activatable target are defined by visual angle with the distance condition stated; a pixel or point value must be traceable to display geometry or a platform-scaling convention. During tracking loss, gaze position must not be extrapolated, the last valid gaze point must not be reused for hit-testing, and dwell timing must not continue to accumulate. When accuracy is known to be below the usable floor, determination must not continue at the nominal accuracy. A natural blink interruption, a saccade passing through, or a dwell below the gaze-determination threshold must not be judged as activation; active assistive eye gestures strictly apply the E2-5 exception.
Acknowledgment and presentation. When gaze participates in selection, the user can determine the object the system has identified as the gaze target; insufficient accuracy and tracking loss are perceptible to the user, and system failure must not present as "nothing happened." Basic hit acknowledgment may be presented instantly; supplementary expansion and animation must have appropriate timing and suppression, and must not let every saccade trigger a noticeable change.
Data. Raw gaze-point coordinates do not open by default because an application requests them; collection status can be known by the user, and undeclared background collection must not occur. Raw gaze samples, gaze events, calibration profile, and inference conclusions each have their retention and deletion managed separately; after deleting an inference conclusion, an equivalent inference must not be automatically reconstructed from retained raw data. The collection purpose is bound to actual use, and a use beyond that purpose requires re-authorization.
Channel. Gaze must not be the only channel for completing a primary task (except for a dedicated assistive device where gaze is the only available input, and that exception must be explicitly declared). The disable entry must not be reachable only through gaze. The user can disable by scope, and only all-on or all-off must not be the sole offering. Tracking being unavailable for an individual must not reduce that user's reachable functionality.
Object and sustained operation. Dwell and confirmation are bound to the specific object, action meaning, and content at the time; old progress is not transferred to a new target. Custom determination must not use an expired sample or one with unknown time semantics. Hover content can be moved into and closed, continuous control has a stepped path, and a tracking failure stops ongoing commands.
The above carries forward the applicability requirements of Design-Guidelines.md; this dictionary does not replace the full set of guidelines, and does not constitute proof of safety, privacy, accessibility, or domain compliance.
11. Contextual presets and combination checks
11.1 Choosing a preset by task
The following are configuration directions, not fixed values ready for direct deployment. A value with no basis from platform or user research remains pending; a capability that depends on a pending parameter must not be enabled. All applicable required items must still be fully resolved.
| Scenario | Primary values | Conditions that must be filled in | Behavior the user should feel |
|---|---|---|---|
| Browsing and presentation optimization only | activation.mode=observe-only, no activation; data.inference.types=[] | Necessary data use, minimal exposure, invalid-state presentation; no dwell timer created | Reading does not submit any operation |
| Large-target, low-cost dwell selection | activation.mode=dwell activation; target.hit_test.ambiguity=no selection; activation.reactivation.cooldown=must leave the target first | Measured geometry, dwell duration, departure and short-interruption windows, quality basis, progress, and alternative path | Charging is visible, leaving stops it, continuing to look does not repeat-click |
| Gaze pointing plus key press or gesture | activation.mode=gaze plus explicit signal | Initiation event, binding window, time semantics, object snapshot; prefer inheriting a platform binding | What the user confirms is the object pointed to at initiation |
| Gaze-assistance-only confirmation | activation.mode=staged assistive confirmation; fallback.alternative_input=[] only when the exception holds | End the original timer after presenting the consequence, reinitiate confirmation; an independent cancellation region, failure help-seeking, and target-user verification | Can confirm, can back out, is not required to use an unavailable body movement |
Inference capability is chosen independently, and is not enabled by default merely by adopting a given interaction preset.
11.2 A computable timing example
The following is only a replay fixture, not a recommended parameter set, and not a complete product preset. Assume the candidate is already established, timing accumulates from that point, and a single timing interval already has credible coverage evidence:
| Full field | Test value |
|---|---|
gaze.activation.dwell.duration | 800 ms |
gaze.activation.dwell.cancel_window | 120 ms |
gaze.activation.dwell.interruption_window | 150 ms |
gaze.signal.blink.suppression | 150 ms |
gaze.signal.tracking_loss.timeout | 500 ms |
gaze.activation.reactivation.cooldown | must leave the target first |
Valid residency from 0–400 ms yields 400 ms of progress; from 400–500 ms the signal is invalid, freezing it; at 500 ms it recovers on the same target, progress remains 400 ms — recovery must not backfill it. After this, sustained valid residency does not reach 800 ms until 900 ms, and the object, authorization, and quality must be re-checked once more before submission. Continuing to look at the same button must not submit again. If the interruption reaches 150 ms, progress resets to zero; if no valid tracking returns by 500 ms, it enters the sustained-invalid state. The time limits above are computed from the interruption's starting point, not from the session's starting point.
11.3 Combination errors and reasons for rejection
| Configuration or event | Verdict | Action to take |
|---|---|---|
| Short-interruption retention 600 ms, sustained-invalidity time limit 500 ms | Illegal: the invalid state still retains pending-trigger progress | Reject this preset — it must not be silently truncated to another value |
| Dwell activation with no short-interruption retention policy | Incomplete: cannot decide when to cancel after freezing | This capability is disabled; use a still-legal explicit path or observe-only |
| Smoothing window set to 1.5 samples | Illegal type | Reject; sample count may only be a positive integer |
raw_gaze.exposure=hit object, yet eye images are uploaded | Exposure configuration does not match the actual data flow | Block the unauthorized data flow; images must be listed as a separate item |
| The original attempt already accumulated enough time when the dwell threshold was shortened | Retroactive activation is not allowed | Reinitiate per the declared policy, or complete the still-legal original attempt |
| Binocular input missing one eye, averaged with a zero point to fill in | Input contract error | Degrade to a validated monocular capability, otherwise pause |
| Deauthorization and threshold-reached received simultaneously | Blocking takes precedence | Cancel — do not submit first and then hide the acknowledgment |
| The platform does not expose raw samples, yet custom per-sample determination is configured | Capability not supported | Use platform events, or disable this custom capability |
| Cooldown expires or a business callback repeats, with no user reinitiation | Does not constitute a new selection | Do not resubmit; check first when the result is unknown |
11.4 Delivery record
Each preset is delivered as one line or one card: task and population → behavior choices and rationale → resolved fields and platform inheritance → object and input contract → user feedback and exit path → test evidence → unverified scope. Configuration validation, mechanism replay, and target-user real-world testing each record their results separately. A structurally complete record does not equal having obtained on-device evidence.
Configuration delivery and validation
The cancellation window for leaving a target and the freeze window for a signal stream cutoff are not the same timer. 0 means immediate cancellation only for this field; a recovery must have new valid evidence, and an unmeasured gap is not counted toward dwell. The example expresses explicit quantities; target geometry, calibration quality, and the input-initiation contract must still be separately verified.
The accompanying executable sample covers only gaze.activation.dwell.cancel_window; the remaining fields are validated item by item per this dictionary — not being covered does not mean not applicable or already passed. The sample is a positive/negative format example for the selected field, not a product preset that directly enables every capability. A complete product delivery additionally includes applicability, dependencies, evidence, execution mapping, and the effective boundary of an in-progress operation.
When a field name, type, or meaning changes, update the referencing parties and acceptance samples; when only the description changes without altering legal behavior, keep the existing field name. A caller reads the resolved effective configuration, and does not back-infer permission, measurement, or completion facts from a UI control, animation, or model wording. See corresponding scenarios.
References
This document provides external basis for the Design Guidelines and Design Token. Vendor practice, measurement research, and legal text each have their own scope of application; the state machine, timing priority, assistive confirmation, and parameter dependencies are this guideline's design inferences, and must not be passed off as a unified industry standard. Source retrieval and document inspection are not equivalent to on-device or user testing.
0. How this basis is used
| Evidence type | What it can support | What it is not sufficient to support |
|---|---|---|
| Geometric relationships | Visual-angle conversion given a distance, direction, and size | A universal minimum target size or hit rate |
| Vendor body text and official talks | Design principles, capabilities, and known failure modes of a specific platform | All devices adopting the same threshold or interface |
| Primary research and measurement guidelines | Experimental conditions, measurement basis, confounding factors | Directly granting a product usability or safety certification |
| Standards and legal text | Requirements within the applicable subject and conditions | The same clause applying to any jurisdiction or device |
| Design inference | Proposing a testable rule to honor an experience commitment | Proving the rule has already been validated by an actual product |
"Body text verified" refers only to reading the listed relevant sections; "abstract / table of contents" does not represent the full text; a lead not backed by verified body text is not used for a specific value or a definitive conclusion. The strength of a [MUST] in this document comes from its experience commitment and the consequences of failure, not from the number of citations.
1. Vendor and platform guidelines
1.1 Microsoft: gaze interaction
Eye-gaze-based interaction on HoloLens 2 — body text verified: Challenges, Design recommendations.
The source describes the conflict between observing and controlling, that a user may look away before a click completes, the burden of feedback disturbance, and of overly small targets. 2° is this device's recommendation, not a physiological floor. The risk tiering that applies independent confirmation to all high-impact actions is proposed separately by these guidelines.
Used for: E1-1, E2-1–E2-5, E3-1, E4-1, E4-2, E6-5.
1.2 Tobii: interaction states
Gaze Interaction States — body text verified: Gaze Enter, Gaze Activation, Dwell Activation.
The source distinguishes gaze entry, activation paired with an explicit signal, and dwell activation, and describes the sense of control and the burden of a long dwell. It supports choosing a trigger method by task, and does not provide a uniform dwell duration across devices.
Used for: E2-1, E2-2, E4-3, E6-5. The specific contract for cancellation, freezing, and single submission is this guideline's inference.
1.3 Apple: hover and spatial input
Design hover interactions for visionOS — official talk verified: Fundamentals, Custom effects, Look to Scroll, Persistent controls.
The talk distinguishes instant, delayed, and progressive animation, emphasizes element anchoring, discoverable entries, avoiding a suddenly appearing close control, and on-device verification. It also explains that the system performs hover outside the application process; an application cannot directly perform an operation such as a download by way of animation. Platform-hosted feedback does not mean the application can obtain raw gaze or per-frame hover callbacks.
The geometric reference is at least 60 pt of space per element; a fixed-ratio 3D object is approximately 2.5°, approximately 4.4 cm at 1 m. These are references with platform conditions attached, not conversion constants for an arbitrary device.
Used for: E2-6, E3-1, E4-2, E4-4, E5-2, E6-5, E6-6. For foundational spatial input see also Design for spatial input.
1.4 Apple: gaze-assisted input
Control iPhone with the movement of your eyes — relevant body text verified: Eye Tracking, Dwell Control, smoothing and pointer settings.
This implementation provides dwell duration, smoothing, and pointer-related options, showing that pointing and dwell activation can be separated. An assistive-input scenario may use a cursor; "avoid a continuous cursor" on a given headset must not be generalized into a blanket prohibition. This page does not prove every platform has the same functionality, nor that every data-use toggle required by these guidelines has already been provided.
Used for: E1-4, E2-2, E4-1, E6-2, E6-4.
2. Measurement and accessibility materials
2.1 ISO 15007: driver visual behavior
ISO official catalog — only the abstract and scope of application were verified; the paid full text was not read. The research subject is driver visual behavior; it must not be treated as a general gaze-control button-size, heatmap-research, or dwell-duration standard.
2.2 Boundaries of specialized domains
Driver monitoring, medical use, workplace, or products for minors must each separately identify the actual use, target population, jurisdiction, and specific product requirements. The label "safety feature" does not bypass review of false-alarm rate, validity, and data use. This document does not complete a domain-specific applicability assessment for any specific product.
2.3 W3C: available input and feedback
The following are official explanatory materials; for web success criteria the WCAG body text governs, and the corresponding behavior in a native gaze-control application is a design requirement of these guidelines.
- Content on Hover or Focus — relevant body text verified: dismissible, hoverable, persistent; used for the overlay check in E4-4.
- Dragging Movements — relevant body text verified: completion via a single pointer without dragging; explicitly discusses the difficulty for gaze-control users. A keyboard path alone is not sufficient to cover this requirement; used for E6-6.
- On Focus — relevant body text verified: receiving focus does not automatically change context. Distinguishing gaze candidate, input focus, and operation submission is this guideline's application to gaze control; used for E1-1.
- Target Size — an entry point for web pointer targets and their exceptions; CSS px does not substitute for visual angle and measured hit-testing.
3. Input interfaces and time semantics
3.1 Khronos OpenXR
XR_EXT_eye_gaze_interaction official source document — body text verified: Overview, Eye tracker, Eye gaze input, Sample time.
| Interface fact | Boundary of interpretation |
|---|---|
supportsEyeGazeInteraction | Capability support, not a current availability state |
XrActionStatePose.isActive and the pose's VALID/TRACKED flags | Authorization, validity, and tracking quality must be checked separately; a degraded pose must not impersonate normal quality |
/user/eyes_ext/input/gaze_ext/pose | An output pose, not a screen point, intent, or confirmed object |
XrEyeGazeSampleTimeEXT.time | The moment the pose corresponds to, which may be clamped, interpolated, or predicted; 0 means unavailable, and it is not guaranteed to be the raw camera sampling moment |
Used for: E2-3, E3-2, E3-3, and signal.source.profile, signal.sample.max_age. The stream-cutoff watchdog, monotonic timing, interaction-layer invalidation, and blocking conditions taking precedence over submission are engineering contracts of these guidelines, not capability this extension has already implemented on the application's behalf.
4. Research and measurement
4.1 Evidence use for assistive input
Whether a target user still has another available channel must be confirmed through actual research, and cannot be directly inferred from a diagnostic label. Implementation references for assistive paths are in §1.4 and §2.3; staged assistive confirmation is a product design pending target-user verification, and is not claimed to have been universally proven safe by any single source.
4.2 Dwell and content layout
Penkar, Lutteroth, Weber: Designing for the Eye – Design Parameters for Dwell in Gaze Interaction — relevant body text of the paper verified.
The experiment jointly varied dwell time, button size, and reading-content layout. Used for the joint evaluation in E1-1, E2-2, E6-5; the best duration from a single experiment is not extracted as a default for every population.
4.3 The distinction between intent and measurement
Midas Touch is a design problem where observation is mistaken for an operation; §1.1, §1.2, and §4.2 provide related description. Gaze duration, hit probability, and candidate confidence alone cannot independently prove the user intends to submit. This guideline accordingly handles the candidate, the selection attempt, and the business result separately.
4.4 Calibration and data quality
Dunn et al.: Minimal reporting guideline for research involving eye tracking — relevant body text of the reporting guideline verified: calibration, verification, measurement uncertainty, processing, loss, and latency.
The guideline supports reporting measurement method and conditions; it does not give an interaction product a pass rate. Calibration fit, verification result, accuracy, precision, loss rate, and end-to-end latency should be described separately. Region-and-population-split acceptance, including failed users in the denominator, preset re-verification, and the three classes of acceptance evidence are supplements from these guidelines.
Used for: E3-2, E3-4, Appendix A, and the calibration and signal parameters. When a production interface cannot provide a given metric, it should be recorded as unknown — do not fabricate a number to fill in a field.
4.5 Pupil and state inference
Mathôt: Pupillometry: Psychology, Physiology, and Function — relevant body text verified.
The pupil is affected by factors such as brightness, near-viewing gaze, and mental activity. Used for E1-5: a metric does not equal a single mental state. On this basis, these guidelines propose confound control, independent labels, unseen-user evaluation, and allowing unknown; these product rules are not compliance thresholds given by the paper.
5. Data use and legal boundaries
5.1 Data representation
Eye samples, object events, calibration parameters, and state conclusions carry different information. Risk also depends on the recipient, associated information, identifiability, and use, and cannot be ranked into a fixed sensitivity order merely by "raw / derived." Minimum-necessary exposure is a design requirement, not a guarantee that aggregated data is already anonymized.
5.2 Evaluative use
"Helping the user complete an operation" and "evaluating the user based on it" are checked for purpose and consequence separately. State monitoring is not proven reliable merely because an appeal button is attached; a prohibited use is not opened merely because the user consented. This document does not substitute an ethics proposal for specific legal or product verification.
5.3 Data checklist
Raw samples, gaze events, calibration profile, and inference conclusions are the minimum categories. Eye images, pupil metrics, head pose, scene content, and quality logs actually collected are listed as additional items. Local processing, de-identification, and anonymization are different things; deletion, stopping collection, and disabling inference are likewise designed separately.
5.4 China's Personal Information Protection Law
Legal text reposted by the Cyberspace Administration of China — relevant provisions verified: Articles 4, 13–16, 19, 24, 28–31, 47, 55.
Actual processing must be assessed by identifiability, use, sensitive inference, minors, and impact on rights and interests; it is not assumed in general that every coordinate is biometric information, nor that data without a name is not personal information. Consent is not the only lawful basis for processing. Statutory retention and deletion exceptions must be stated truthfully, and must not be falsely claimed as physically erased.
5.5 EU AI Act
EUR-Lex legal text — relevant provisions verified: Article 5(1)(f) and its definitional context.
The provision sets a prohibition, with medical and safety exceptions, for specific emotion-inference uses in workplaces and educational institutions. Attention, drowsiness, and emotion are not interchangeable labels; the exception must be checked against the actual use. This document does not constitute a complete compliance conclusion for any jurisdiction, product, or industry.
6. Discipline in the use of values
Dwell duration, short-interruption tolerance, look-back window, quality threshold, and continuous-use budget must each be verified by the specific product. The replay fixture in this document only proves the computational semantics are checkable; it does not show the values are suitable for real users.
7. Mechanism inference and verification responsibility
| Inference | Failure it prevents | Evidence needed |
|---|---|---|
| An independent cancellation window separate from the short-interruption retention window | Conflating looking away with loss into the same event | Cross-checked replay of valid departure, invalidity, stream cutoff, and recovery |
| Binding to object, action, and input space | Old coordinates activating replaced content or a hidden object | Testing under dynamic layout, occlusion, and spatial repositioning |
| A reinitiation threshold and single submission | Repeat-clicking from prolonged looking, duplicate callbacks across dual channels | Event deduplication and unknown-result testing |
| Separating status feedback from the actual result | Charging completion being treated as operation success | Replay of delay, failure, and unknown-result cases |
| Presets for four interaction scenarios | Forcing the same dwell method on every user | Real-world testing with target users, devices, and specific tasks |
8. Basis for numeric values
| Reference | Source | Applicable conditions |
|---|---|---|
| 2° target | §1.1 | HoloLens 2 reference, not a universal floor |
| 60 pt; fixed ratio approximately 2.5° / approximately 4.4 cm at 1 m | §1.3 | visionOS's target space and fixed-ratio condition |
size = 2 × distance × tan(visual angle / 2) | Geometric relationship | Target directly facing the observer; an oblique surface uses the projected size |
| CSS px target size | §2.3 | Web clause and its exceptions; cannot substitute for gaze-control geometry |
9. Index of basis by rule
| Rule | External basis | This guideline's inference or applicability boundary |
|---|---|---|
| E1-1 Observing state and controlling state | §1.1, §1.2, §2.3 | Requires a free-observation path, without forcing a global mode switch |
| E1-2 Gaze does not constitute authorization or informed consent | §5.4's explicit consent; §4.5's measurement boundary | Does not use gaze as evidence of understanding or of rights and obligations |
| E1-3 Implicit use does not change task state | Use scenarios in §1.1, §1.3 | Separates presentation from business submission; the safety exception is checked separately |
| E1-4 Intent inference is correctable | §1.1, §1.4 | Does not force another unavailable channel when gaze is the only one available |
| E1-5 State inference is evidence-based | §4.5 | Independent verification, confound control, and allowing unknown |
| E2-1 Error-cost tiering | §1.1, §1.2, §1.4 | The risk matrix and assistive confirmation are this guideline's proposal |
| E2-2 Dwell is cancelable and shows progress | §1.2, §1.4, §4.2 | The specific contract for freezing, resetting, and adjustable parameters |
| E2-3 Multimodal initiation moment | §1.1, §1.3, §3.1 | Clock and initiation semantics must be defined per channel |
| E2-4 Mis-trigger and repeat suppression | §1.1, §4.2 | Suppresses natural blinks, without negating the assistive-eye-gesture exception |
| E2-5 Unnatural eye movement | §1.1, §1.4 | Optional shortcuts and the gaze-assistance-only exception |
| E2-6 Object and operation meaning | Mis-closure record in §1.3 | Binding of object, scene timing, and progress |
| E3-1 Target geometry | §1.1, §1.3, §8 | Size combined with measured testing, not treated as a fixed error circle |
| E3-2 Operational quality | §3.1, §4.4 | Allows unknown; the direction of the angular-error ceiling is explicit |
| E3-3 Tracking loss | §3.1 | Invalid or expired data does not drive activation |
| E3-4 Calibration cost | §1.4, §4.4 | Verification and calibration are separated; implicit correction must prove its benefit |
| E4-1 Attributable acknowledgment | §1.1, §1.4 | Target state by default, an assistive cursor may be adjustable |
| E4-2 Feedback timing | §1.1, §1.3 | Instant lightweight acknowledgment separated from delayed expansion |
| E4-3 State distinction | §1.2, §1.4 | Unified states, without prescribing a single animation |
| E4-4 Hover content reachability | §1.3, §2.3 | A native gaze-control adaptation must verify the cross-region path |
| E5-1 Purpose disclosure and binding | §3.1, §5.4 | The product's purpose rule does not replace the lawful basis for processing |
| E5-2 Minimum exposure | §1.3, §5.1 | Hit-test results are also exposed by necessity |
| E5-3 Inference authorized item by item | §5.1, §5.4, §5.5 | Permission, inference validity, and prohibited use are judged separately |
| E5-4 Collection is visible | The transparency principle in §3.1, §5.4 | The specific indication method is a design inference |
| E5-5 Itemized retention and deletion | §5.3, §5.4 | The four categories are the minimum checklist; statutory retention does not mean continued analysis is allowed |
| E5-6 Evaluative judgment | §5.2, §5.4, §5.5 | Does not treat an ethics proposal as law; a prohibition is checked against actual use |
| E6-1 Equivalent path | §1.4, §2.3 | The exit for a gaze-assistance-only scenario needs dedicated design |
| E6-2 Individual differences | §1.4, §4.4 | Which conditions to cover needs a device and target-population basis |
| E6-3 Degraded behavior | §3.1, §4.4 | The state-and-recovery contract is this guideline's proposal |
| E6-4 Disable by scope | §1.4, §5.4 | Does not treat one platform toggle as proof every use can be individually controlled |
| E6-5 Sustained load | §1.1, §1.2, §1.3 | Duration, frequency, and spatial comfort range need measured testing |
| E6-6 Continuous-operation alternative | §2.3 | The web has an explicit requirement; a native adaptation must verify it |
10. Limits of the evidence
- No device measurement, user recruitment, or business-system verification has been performed; a complete document does not mean the product has been verified.
- No universal population dwell threshold has been established; assistive confirmation, monocular strategy, and moving targets must be verified under their adopted conditions.
- No domain-specific assessment has been completed for specific products such as medical or driver monitoring.
- Portions of paid standards whose full text was not obtained serve only as applicability leads.
- Parameters form a human-readable contract; they provide no machine schema or cross-platform implementation guarantee.