{
  "name": "CPSKit Double-Click Input Behavior Reference",
  "version": "1.2.2",
  "methodVersion": "browser-v1.0",
  "generated": "2026-09-14",
  "publisher": "CPSKit (Clooms)",
  "license": "CC BY 4.0 — cite as: CPSKit Double-Click Input Behavior Reference v1.2.2",
  "pinned_snapshot": "/data/double-click-input-behavior-v1.2.2.json",
  "citation_note": "This URL (…-v1.json) serves the latest v1.x. For a stable citation that will not change, cite the pinned snapshot URL in 'pinned_snapshot'.",
  "summary": "First-hand, reproducible observations of how browsers report double-click-related input events. Published so the data can be cited and re-checked, not taken on trust.",
  "scope_note": "These are browser-observed events. They document how browser engines report input in the tested sessions; they do not certify any physical device, latency, or switch lifespan.",
  "capture_note": "Cross-browser rows were captured through a computer-use automation tool driving real browsers; events reached the page as trusted events. The scroll amount was NOT controlled between browsers, so scroll totals are not directly comparable as an engine difference.",
  "changelog": [
    { "version": "1.2.2", "date": "2026-09-14", "change": "Removed tab-switch from the verified cross-engine results (no independent raw line supports it) and moved it to not_independently_verified; corrected the description's reference to the raw report location." },
    { "version": "1.2.1", "date": "2026-09-14", "change": "Interruption accuracy: distinguished on-screen status text from the saved report line (they differ by surface); linked each interruption to its raw_reports key." },
    { "version": "1.2.0", "date": "2026-09-14", "change": "Completed raw_reports: added Safari/Firefox double-click and per-browser interruption raw lines with timestamps, so every summary row is traceable. Introduced pinned immutable snapshot URLs." },
    { "version": "1.1.0", "date": "2026-09-14", "change": "Added cross_browser_keyboard; added verbatim raw_reports for auditability; neutralized scroll causal wording. (No pinned snapshot; retrievable from source control.)" },
    { "version": "1.0.0", "date": "2026-09-14", "change": "Initial: threshold sensitivity, cross-browser double-click, scroll units, interruption behavior. (No pinned snapshot; retrievable from source control.)" }
  ],
  "datasets": {
    "threshold_sensitivity": {
      "description": "How the double-click review threshold changes the flagged short-interval count. Inputs are STATED example interval sets used to demonstrate the filter, computed with the tool's real shortIntervals function.",
      "illustrative_synthetic_inputs": true,
      "thresholds_ms": [40, 80, 120],
      "rows": [
        { "intervals_ms": [140, 155, 160, 148, 152, 145], "label": "even, deliberate", "flagged": { "40": 0, "80": 0, "120": 0 }, "n": 6 },
        { "intervals_ms": [150, 55, 160, 145, 158], "label": "one brief pair", "flagged": { "40": 0, "80": 1, "120": 1 }, "n": 5 },
        { "intervals_ms": [150, 45, 160, 70, 155], "label": "two brief pairs", "flagged": { "40": 0, "80": 2, "120": 2 }, "n": 5 },
        { "intervals_ms": [90, 85, 78, 92, 88, 95], "label": "fast, intentional", "flagged": { "40": 0, "80": 1, "120": 6 }, "n": 6 }
      ]
    },
    "cross_browser_double_click": {
      "description": "Same six deliberate, separated left-clicks at an 80 ms review threshold, in three real browser engines on one machine.",
      "environment": { "os": "macOS 15.7.7", "pointer": "built-in trackpad", "capture": "computer-use automation, trusted events" },
      "results": [
        { "browser": "Chrome 152.0.7977.83", "threshold_ms": 80, "short_intervals": 0, "of": 5 },
        { "browser": "Safari 18.6", "threshold_ms": 80, "short_intervals": 0, "of": 5 },
        { "browser": "Firefox 155.0.1", "threshold_ms": 80, "short_intervals": 0, "of": 5 }
      ],
      "finding": "Identical across engines on this setup: no short intervals flagged from deliberate, separated clicking."
    },
    "cross_browser_keyboard": {
      "description": "Same key sequence (A, B, Shift+A combination, down arrow) in three engines; recorded down/up codes.",
      "environment": { "os": "macOS 15.7.7", "capture": "computer-use automation, trusted events" },
      "results": [
        { "browser": "Chrome 152", "codes": "KeyA: 2/2, KeyB: 1/1, ShiftLeft: 1/1, ArrowDown: 1/1" },
        { "browser": "Safari 18.6", "codes": "KeyA: 2/2, KeyB: 1/1, ShiftLeft: 1/1, ArrowDown: 1/1" },
        { "browser": "Firefox 155", "codes": "KeyA: 2/2, KeyB: 1/1, ShiftLeft: 1/1, ArrowDown: 1/1" }
      ],
      "finding": "Identical key codes across engines; no engine relabeled a key or dropped the Shift modifier."
    },
    "cross_browser_scroll_units": {
      "description": "Six downward wheel events per engine; the tool keeps pixel/line/page unit totals separate. Scroll amount was not controlled between browsers.",
      "environment": { "os": "macOS 15.7.7", "pointer": "built-in trackpad" },
      "results": [
        { "browser": "Chrome 152", "units": { "px": 1392 }, "opposite_direction_events": 0 },
        { "browser": "Safari 18.6", "units": { "px": 1458 }, "opposite_direction_events": 0 },
        { "browser": "Firefox 155", "units": { "px": 1308 }, "opposite_direction_events": 0 }
      ],
      "finding": "All three engines reported pixel-mode (deltaMode 0) wheel deltas on this trackpad. The px totals differ, but because the scroll amount was not controlled between browsers, that difference cannot be attributed to the engine — this run establishes the unit type, not a magnitude comparison."
    },
    "interruption_behavior": {
      "description": "How each engine handles an interrupted run. 'onscreen_status' is the result-panel wording; the saved Copy-report wording for the same event is different (different surface) and is at raw_reports[browser][raw_key]. Only rows with identical_across_engines:true have an independent per-browser raw line supporting the cross-engine claim.",
      "environment": { "os": "macOS 15.7.7", "browsers": ["Chrome 152", "Safari 18.6", "Firefox 155"] },
      "results": [
        { "action": "Alt/Cmd-Tab away (window blur)", "onscreen_status": "Window lost focus. This run has no valid score.", "raw_key": "interrupt_blur", "identical_across_engines": true },
        { "action": "press Escape (keyboard check)", "onscreen_status": "Run canceled with Escape. This run cannot be judged.", "raw_key": "interrupt_escape", "identical_across_engines": true },
        { "action": "press Tab (keyboard check)", "onscreen_status": "Focus navigation ended this run.", "raw_key": "interrupt_tab", "identical_across_engines": true }
      ],
      "not_independently_verified": [
        { "action": "switch browser tab", "observed": "voided the run with a window-lost-focus message during the capture, but it was not logged as a separate raw line distinct from Alt/Cmd-Tab blur, so it is excluded from the cross-engine conclusion." }
      ],
      "finding": "For window blur, Escape, and Tab, each engine produced the same handling and the same saved reason, with a per-browser raw line for each. Tab-switch is not independently verified and is listed separately, not as a cross-engine result."
    }
  },
  "raw_reports": {
    "note": "Verbatim lines from each browser's History -> Copy report (old report format on the capture date), with the run timestamp. Included so every summarized row above can be independently audited. Each summary row has a corresponding raw line below.",
    "chrome": {
      "double_click": "2026-09-14T09:54:48.397Z | double check | mouse (trackpad not distinguishable) | completed | 0 of 5 adjacent press intervals were below 80 ms.",
      "scroll": "2026-09-14T09:56:30.822Z | scroll check | wheel event (device unverified) | completed | 6 wheel events, 0 vertical events opposite the intended down direction. Units: {\"px\":1392}.",
      "keyboard": "2026-09-14T09:56:56.692Z | keyboard check | keyboard | completed | KeyA: 2/2, KeyB: 1/1, ShiftLeft: 1/1, ArrowDown: 1/1.",
      "interrupt_blur": "2026-09-14T09:58:03.051Z | CPS | mouse | interrupted | Run interrupted: Window lost focus. No comparable score.",
      "interrupt_escape": "2026-09-14T09:58:29.736Z | keyboard check | unknown | interrupted | Run canceled with Escape.",
      "interrupt_tab": "2026-09-14T09:58:36.993Z | keyboard check | unknown | interrupted | Focus navigation ended this run."
    },
    "safari": {
      "double_click": "2026-09-14T09:59:26.386Z | double check | mouse (trackpad not distinguishable) | completed | 0 of 5 adjacent press intervals were below 80 ms.",
      "scroll": "2026-09-14T10:00:14.802Z | scroll check | wheel event (device unverified) | completed | 6 wheel events, 0 vertical events opposite the intended down direction. Units: {\"px\":1458}.",
      "keyboard": "2026-09-14T10:12:20.301Z | keyboard check | keyboard | completed | KeyA: 2/2, KeyB: 1/1, ShiftLeft: 1/1, ArrowDown: 1/1.",
      "interrupt_blur": "2026-09-14T10:01:31.405Z | CPS | mouse | interrupted | Run interrupted: Window lost focus. No comparable score.",
      "interrupt_escape": "2026-09-14T10:01:47.066Z | keyboard check | unknown | interrupted | Run canceled with Escape.",
      "interrupt_tab": "2026-09-14T10:01:49.349Z | keyboard check | unknown | interrupted | Focus navigation ended this run."
    },
    "firefox": {
      "double_click": "2026-09-14T10:19:23.122Z | double check | mouse (trackpad not distinguishable) | completed | 0 of 5 adjacent press intervals were below 80 ms.",
      "scroll": "2026-09-14T10:20:09.306Z | scroll check | wheel event (device unverified) | completed | 6 wheel events, 0 vertical events opposite the intended down direction. Units: {\"px\":1308}.",
      "keyboard": "2026-09-14T10:20:54.137Z | keyboard check | keyboard | completed | KeyA: 2/2, KeyB: 1/1, ShiftLeft: 1/1, ArrowDown: 1/1.",
      "interrupt_blur": "2026-09-14T10:21:30.108Z | CPS | mouse | interrupted | Run interrupted: Window lost focus. No comparable score.",
      "interrupt_escape": "2026-09-14T10:24:16.680Z | keyboard check | unknown | interrupted | Run canceled with Escape.",
      "interrupt_tab": "2026-09-14T10:24:27.387Z | keyboard check | unknown | interrupted | Focus navigation ended this run."
    }
  },
  "pending_captures": [
    "Notched-wheel (non-trackpad) scroll units per engine — needed to confirm whether any engine reports 'line' units instead of pixels. Awaiting device QA.",
    "Controlled equal-distance scroll to compare magnitudes across engines.",
    "Windows and Linux runs of all of the above.",
    "Additional browsers (Edge, Opera) and additional OS versions."
  ],
  "reproduce": "shortIntervals: build cumulative timestamps from the interval gaps, then count gaps where (gap >= 0 && gap < threshold). Cross-browser rows: run the matching CPSKit check in each browser and read History -> Copy report."
}
