{
  "schemaVersion": 2,
  "id": "keyboard",
  "title": "Use the keyboard and accessible controls",
  "video": "keyboard.mp4",
  "poster": "keyboard-poster.jpg",
  "captions": "keyboard.vtt",
  "srt": "keyboard.srt",
  "subtitleLog": "keyboard.json",
  "sourceMaster": "output/video-masters-narrated/keyboard.mp4",
  "fps": 30,
  "frameIndexConvention": "zero-based; start inclusive, end exclusive",
  "width": 1280,
  "height": 1040,
  "screenHeight": 800,
  "frameCount": 927,
  "durationSeconds": 30.9,
  "captionsBurnedIn": true,
  "audioTracks": 1,
  "exampleDate": "2026-09-24",
  "capture": "Live Chromium Page.startScreencast frames; resampled to constant frame rate without cutting or speeding up actions.",
  "nativeDialogs": "OS file pickers are not captured. Cues explicitly identify file-selection steps.",
  "demoNote": null,
  "cues": [
    {
      "id": "keyboard-01",
      "helpStep": 1,
      "stepTitle": "Move between controls",
      "text": "Tab moves focus forward; Shift+Tab moves it backward. The outline shows your position.",
      "narrationText": "Tab moves focus forward; Shift+Tab moves it backward. The outline shows your position.",
      "startFrame": 0,
      "endFrameExclusive": 188,
      "startSeconds": 0.0,
      "endSeconds": 6.266666666666667,
      "actions": [
        {
          "action": "keyboard",
          "key": "Tab"
        },
        {
          "action": "keyboard",
          "key": "Tab"
        },
        {
          "action": "keyboard",
          "key": "Shift+Tab"
        }
      ],
      "originalStartFrame": 0,
      "originalEndFrameExclusive": 166,
      "addedHoldFrames": 22,
      "narration": {
        "voice": "Niki",
        "sourceClip": "output/narration/clips/keyboard-01.mp3",
        "taskId": "045fa112-9ce1-4455-a42e-717e08b0b5e7",
        "generationSpeed": 1.05,
        "playbackSpeed": 1.0,
        "sampleRate": 48000,
        "startSample": 4800,
        "endSampleExclusive": 292356,
        "startSeconds": 0.1,
        "endSeconds": 6.09075,
        "startFrame": 3,
        "endFrameExclusive": 183,
        "sourceSha256": "c853c666629eca46c03de74dbacb9d7195cf9956b58e940ac26612a0f01f3376"
      }
    },
    {
      "id": "keyboard-02",
      "helpStep": 2,
      "stepTitle": "Open New task quickly",
      "text": "Press N outside text fields to open New task. The name field receives focus.",
      "narrationText": "Press N outside text fields to open New task. The name field receives focus.",
      "startFrame": 188,
      "endFrameExclusive": 344,
      "startSeconds": 6.266666666666667,
      "endSeconds": 11.466666666666667,
      "actions": [
        {
          "action": "keyboard",
          "key": "n"
        }
      ],
      "originalStartFrame": 166,
      "originalEndFrameExclusive": 316,
      "addedHoldFrames": 6,
      "narration": {
        "voice": "Niki",
        "sourceClip": "output/narration/clips/keyboard-02.mp3",
        "taskId": "191e2145-6a98-43cf-a9b4-460ca02a551e",
        "generationSpeed": 1.05,
        "playbackSpeed": 1.0,
        "sampleRate": 48000,
        "startSample": 305600,
        "endSampleExclusive": 541887,
        "startSeconds": 6.366666666666666,
        "endSeconds": 11.2893125,
        "startFrame": 191,
        "endFrameExclusive": 339,
        "sourceSha256": "875b22e6e283a60e3081d33b2e144ec1fda0e3a013e27e9adea2e32848b98f5b"
      }
    },
    {
      "id": "keyboard-03",
      "helpStep": 3,
      "stepTitle": "Work inside the dialog",
      "text": "Type a name, then Tab to Notes. Enter creates a new line in Notes.",
      "narrationText": "Type a name, then Tab to Notes. Enter creates a new line in Notes.",
      "startFrame": 344,
      "endFrameExclusive": 486,
      "startSeconds": 11.466666666666667,
      "endSeconds": 16.2,
      "actions": [
        {
          "action": "type",
          "target": "#task-title",
          "value": "Prepare keyboard demo"
        },
        {
          "action": "keyboard",
          "key": "Tab"
        },
        {
          "action": "keyboard",
          "key": "Enter"
        }
      ],
      "originalStartFrame": 316,
      "originalEndFrameExclusive": 451,
      "addedHoldFrames": 7,
      "narration": {
        "voice": "Niki",
        "sourceClip": "output/narration/clips/keyboard-03.mp3",
        "taskId": "31517150-0c18-42be-8481-2118a1703e04",
        "generationSpeed": 1.05,
        "playbackSpeed": 1.0,
        "sampleRate": 48000,
        "startSample": 555200,
        "endSampleExclusive": 769195,
        "startSeconds": 11.566666666666666,
        "endSeconds": 16.024895833333332,
        "startFrame": 347,
        "endFrameExclusive": 481,
        "sourceSha256": "4715ec70258522483c55b0f80d78eab48acad30f75e0a262d80f8d9ce2c777db"
      }
    },
    {
      "id": "keyboard-04",
      "helpStep": 3,
      "stepTitle": "Work inside the dialog",
      "text": "Tab through List, Priority, Due date, and the dialog actions.",
      "narrationText": "Tab through List, Priority, Due date, and the dialog actions.",
      "startFrame": 486,
      "endFrameExclusive": 614,
      "startSeconds": 16.2,
      "endSeconds": 20.466666666666665,
      "actions": [
        {
          "action": "keyboard",
          "key": "Tab"
        },
        {
          "action": "keyboard",
          "key": "Tab"
        },
        {
          "action": "keyboard",
          "key": "Tab"
        }
      ],
      "originalStartFrame": 451,
      "originalEndFrameExclusive": 577,
      "addedHoldFrames": 2,
      "narration": {
        "voice": "Niki",
        "sourceClip": "output/narration/clips/keyboard-04.mp3",
        "taskId": "c997afe2-357c-4318-8b6b-42ec1802a388",
        "generationSpeed": 1.05,
        "playbackSpeed": 1.0,
        "sampleRate": 48000,
        "startSample": 782400,
        "endSampleExclusive": 974104,
        "startSeconds": 16.3,
        "endSeconds": 20.293833333333332,
        "startFrame": 489,
        "endFrameExclusive": 609,
        "sourceSha256": "378774ba4824ad7f95dc38f678508a6e58adeada93eec2bf5610fc8d970fc2b6"
      }
    },
    {
      "id": "keyboard-05",
      "helpStep": 4,
      "stepTitle": "Submit or dismiss deliberately",
      "text": "Focus Create task and press Enter to save. Escape would dismiss an unsaved editor.",
      "narrationText": "Focus Create task and press Enter to save. Escape would dismiss an unsaved editor.",
      "startFrame": 614,
      "endFrameExclusive": 779,
      "startSeconds": 20.466666666666665,
      "endSeconds": 25.966666666666665,
      "actions": [
        {
          "action": "keyboard",
          "key": "Enter"
        },
        {
          "action": "keyboard",
          "key": "n"
        },
        {
          "action": "keyboard",
          "key": "Escape"
        }
      ],
      "originalStartFrame": 577,
      "originalEndFrameExclusive": 737,
      "addedHoldFrames": 5,
      "narration": {
        "voice": "Niki",
        "sourceClip": "output/narration/clips/keyboard-05.mp3",
        "taskId": "67f19261-54a0-4dd5-b12c-3f648a17af91",
        "generationSpeed": 1.05,
        "playbackSpeed": 1.0,
        "sampleRate": 48000,
        "startSample": 987200,
        "endSampleExclusive": 1239090,
        "startSeconds": 20.566666666666666,
        "endSeconds": 25.814375,
        "startFrame": 617,
        "endFrameExclusive": 775,
        "sourceSha256": "0daa7f7a25bcc6afe0e5800204035050e2c0b3168f3b312c484b10c33a78cbe2"
      }
    },
    {
      "id": "keyboard-06",
      "helpStep": 5,
      "stepTitle": "Use accessible names",
      "text": "Task controls have accessible names. A focused checkbox toggles with Space.",
      "narrationText": "Task controls have accessible names. A focused checkbox toggles with Space.",
      "startFrame": 779,
      "endFrameExclusive": 927,
      "startSeconds": 25.966666666666665,
      "endSeconds": 30.9,
      "actions": [
        {
          "action": "keyboard",
          "key": "Space"
        },
        {
          "action": "click",
          "target": "[data-view=\"completed\"]"
        },
        {
          "action": "highlight",
          "target": "[data-id=\"demo-1\"]"
        }
      ],
      "originalStartFrame": 737,
      "originalEndFrameExclusive": 885,
      "addedHoldFrames": 0,
      "narration": {
        "voice": "Niki",
        "sourceClip": "output/narration/clips/keyboard-06.mp3",
        "taskId": "92b8148a-da7a-41a6-9c97-d9b89fbaaf78",
        "generationSpeed": 1.05,
        "playbackSpeed": 1.0,
        "sampleRate": 48000,
        "startSample": 1251200,
        "endSampleExclusive": 1471883,
        "startSeconds": 26.066666666666666,
        "endSeconds": 30.664229166666665,
        "startFrame": 782,
        "endFrameExclusive": 920,
        "sourceSha256": "c36e46b58282f7aa942509594ab7e3444aeecabc2d2ca1fbce25a1d039ba305a"
      }
    }
  ],
  "subtitleBoundaryEncoding": "ASS cue boundaries quantized down to centiseconds to align exactly with the logged 30 fps frames.",
  "videoSha256": "54c70a484add7691cb7770bf95830bada957191326bb5cca9989013db5df2e5f",
  "masterSha256": "5a4991d7ac52d58900a78baa90f3892744e39d089191e74ee13ffafe1584c772",
  "controlsClearancePixels": 128,
  "originalSourceMaster": "output/video-masters/keyboard.mp4",
  "originalMasterSha256": "1bd09dec6ced6c21869810e5c713eb75597e2d8412b4192e235512bc58be3b2f",
  "originalFrameCount": 885,
  "addedNarrationHoldFrames": 42,
  "narration": {
    "voice": "Niki",
    "language": "en",
    "description": "Friendly American narration",
    "generatedSpeech": true,
    "model": "eleven_multilingual_v2",
    "generationSpeed": 1.05,
    "sampleRate": 48000,
    "codec": "AAC",
    "audioFile": "keyboard-narration.m4a",
    "trackMaster": "output/narration/tracks/keyboard.wav",
    "alignment": "Each original cue plays at its original pace. End-frame holds extend cues when needed for natural speech, with 100 ms lead-in and at least 150 ms end clearance. Audio is never truncated or sped up.",
    "timingConvention": "Audio sample indices at 48000 Hz are exact; covering video frame ranges are rounded outward."
  }
}
