{
  "startedAt": "2026-10-19T18:25:27.719Z",
  "target": "https://whatisada.com/tools/heading-validator",
  "productionRevision": "01beb11e33e9b01733417acaa231ff73984a64ec",
  "harnessRevision": "54098501333377b418a25deacd4eec1407dc0526",
  "runUrl": "https://github.com/Grow-Wild-Agency/whatisADA/actions/runs/39302180164",
  "method": "Real portable NVDA speech messages captured by Guidepup. Browser setup uses Playwright and Guidepup navigateToWebContent (including a setup click). Recorded task uses NVDA keyboard commands. No participant usability test or audio recording.",
  "environment": {
    "os": "Windows Server 2022 Datacenter",
    "release": "10.0.20348",
    "browser": "156.0.8078.4",
    "screenReader": "NVDA",
    "assetVersion": "0.2.1-2026.2",
    "viewport": {
      "width": 1280,
      "height": 900
    },
    "nvdaExecutable": {
      "Name": "nvda.exe",
      "ProductVersion": "2026.2",
      "FileVersion": "2026.2.0.57664",
      "SHA256": "D239FD2BE81FC7D97F62616A6ACDFB08010B92DE6DF65CA314E19F2D8C03C8B0"
    }
  },
  "settings": {
    "general": {
      "showWelcomeDialogAtStartup": false,
      "language": "Windows",
      "saveConfigurationOnExit": false,
      "askToExit": false,
      "playStartAndExitSounds": false,
      "loggingLevel": "OFF",
      "preventDisplayTurningOff": true
    },
    "speech": {
      "synth": "oneCore",
      "oneCore": {
        "voice": "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech_OneCore\\Voices\\Tokens\\MSTTS_V110_enGB_GeorgeM",
        "volume": 100,
        "rate": 100,
        "rateBoost": true
      }
    },
    "virtualBuffers": {
      "autoSayAllOnPageLoad": false
    }
  },
  "steps": [
    {
      "label": "NVDA browse: Control+Home",
      "at": "2026-10-19T18:25:34.686Z",
      "speech": [
        "same page, link, Skip to main content"
      ],
      "state": {
        "focus": {
          "tag": "A",
          "id": "",
          "text": "Explore help at ADA Compliant Web Design \u2197"
        },
        "input": "",
        "status": []
      }
    },
    {
      "label": "NVDA next heading: h",
      "at": "2026-10-19T18:25:35.977Z",
      "speech": [
        "main landmark, Heading Structure Validator, heading, level 1"
      ],
      "state": {
        "focus": {
          "tag": "A",
          "id": "",
          "text": "Explore help at ADA Compliant Web Design \u2197"
        },
        "input": "",
        "status": []
      }
    },
    {
      "label": "NVDA next button: b (1)",
      "at": "2026-10-19T18:25:37.259Z",
      "speech": [
        "Validate Your Headings, region, Load: A deeper level jump, button"
      ],
      "state": {
        "focus": {
          "tag": "A",
          "id": "",
          "text": "Explore help at ADA Compliant Web Design \u2197"
        },
        "input": "",
        "status": []
      }
    },
    {
      "label": "NVDA next button: b (2)",
      "at": "2026-10-19T18:25:38.535Z",
      "speech": [
        "Load: Returning to a parent section, button"
      ],
      "state": {
        "focus": {
          "tag": "A",
          "id": "",
          "text": "Explore help at ADA Compliant Web Design \u2197"
        },
        "input": "",
        "status": []
      }
    },
    {
      "label": "NVDA next button: b (3)",
      "at": "2026-10-19T18:25:39.818Z",
      "speech": [
        "Load: A second H 1, button"
      ],
      "state": {
        "focus": {
          "tag": "A",
          "id": "",
          "text": "Explore help at ADA Compliant Web Design \u2197"
        },
        "input": "",
        "status": []
      }
    },
    {
      "label": "NVDA next button: b (4)",
      "at": "2026-10-19T18:25:41.098Z",
      "speech": [
        "Load: Two HTML headings on one line, button"
      ],
      "state": {
        "focus": {
          "tag": "A",
          "id": "",
          "text": "Explore help at ADA Compliant Web Design \u2197"
        },
        "input": "",
        "status": []
      }
    },
    {
      "label": "NVDA next button: b (5)",
      "at": "2026-10-19T18:25:42.379Z",
      "speech": [
        "Load: HTML with nested markup, button"
      ],
      "state": {
        "focus": {
          "tag": "A",
          "id": "",
          "text": "Explore help at ADA Compliant Web Design \u2197"
        },
        "input": "",
        "status": []
      }
    },
    {
      "label": "NVDA next button: b (6)",
      "at": "2026-10-19T18:25:43.660Z",
      "speech": [
        "Load: Mismatched HTML tags, button"
      ],
      "state": {
        "focus": {
          "tag": "A",
          "id": "",
          "text": "Explore help at ADA Compliant Web Design \u2197"
        },
        "input": "",
        "status": []
      }
    },
    {
      "label": "Activate malformed sample: Enter",
      "at": "2026-10-19T18:25:44.947Z",
      "speech": [
        ""
      ],
      "state": {
        "focus": {
          "tag": "BUTTON",
          "id": "",
          "text": "Load: Mismatched HTML tags"
        },
        "input": "<h2>Products</h3>",
        "status": []
      }
    },
    {
      "label": "Tab to input",
      "at": "2026-10-19T18:25:46.225Z",
      "speech": [
        "Enter your heading structure (one per line), edit, multi line, Maximum 30,000 characters; one heading per line. Use plain text headings, Markdown-style headings, or a simple HTML heading with matching tags and no attributes or nested markup. This is not a full-page HTML parser. Accepted formats: h 1 Page Title , number Page Title , or less h 1 greater Page Title less slash h 1 greater, less h 2 greater Products less slash h 3 greater"
      ],
      "state": {
        "focus": {
          "tag": "TEXTAREA",
          "id": "heading-input",
          "text": "<h2>Products</h3>"
        },
        "input": "<h2>Products</h3>",
        "status": []
      }
    },
    {
      "label": "Tab to Validate Headings",
      "at": "2026-10-19T18:25:48.584Z",
      "speech": [
        "Validate Headings, button"
      ],
      "state": {
        "focus": {
          "tag": "BUTTON",
          "id": "",
          "text": "Validate Headings"
        },
        "input": "<h2>Products</h3>",
        "status": []
      }
    },
    {
      "label": "Activate Validate: Enter; automatic speech",
      "at": "2026-10-19T18:25:49.927Z",
      "speech": [
        "Heading review results, heading, level 2"
      ],
      "state": {
        "focus": {
          "tag": "H2",
          "id": "",
          "text": "Heading review results"
        },
        "input": "<h2>Products</h3>",
        "status": [
          "0 headings recognized; 1 nonempty lines not recognized. 0 structural observations need review."
        ]
      }
    },
    {
      "label": "Explicit NVDA current-focus report",
      "at": "2026-10-19T18:25:51.390Z",
      "speech": [
        "Heading review results, heading, focused, level 2"
      ],
      "state": {
        "focus": {
          "tag": "H2",
          "id": "",
          "text": "Heading review results"
        },
        "input": "<h2>Products</h3>",
        "status": [
          "0 headings recognized; 1 nonempty lines not recognized. 0 structural observations need review."
        ]
      }
    },
    {
      "label": "Explicit next-line reading after malformed result (1)",
      "at": "2026-10-19T18:25:52.677Z",
      "speech": [
        "0 headings recognized; 1 nonempty lines not recognized. 0 structural observations need review."
      ],
      "state": {
        "focus": {
          "tag": "H2",
          "id": "",
          "text": "Heading review results"
        },
        "input": "<h2>Products</h3>",
        "status": [
          "0 headings recognized; 1 nonempty lines not recognized. 0 structural observations need review."
        ]
      }
    },
    {
      "label": "Explicit next-line reading after malformed result (2)",
      "at": "2026-10-19T18:25:53.962Z",
      "speech": [
        "Not recognized: line 1. Correct these lines before interpreting the outline. Use one supported"
      ],
      "state": {
        "focus": {
          "tag": "H2",
          "id": "",
          "text": "Heading review results"
        },
        "input": "<h2>Products</h3>",
        "status": [
          "0 headings recognized; 1 nonempty lines not recognized. 0 structural observations need review."
        ]
      }
    },
    {
      "label": "Explicit next-line reading after malformed result (3)",
      "at": "2026-10-19T18:25:55.243Z",
      "speech": [
        "heading per line; for nested HTML, copy the heading level and its text into the plain-text format."
      ],
      "state": {
        "focus": {
          "tag": "H2",
          "id": "",
          "text": "Heading review results"
        },
        "input": "<h2>Products</h3>",
        "status": [
          "0 headings recognized; 1 nonempty lines not recognized. 0 structural observations need review."
        ]
      }
    },
    {
      "label": "Shift+Tab from result reading (1)",
      "at": "2026-10-19T18:25:56.516Z",
      "speech": [
        "Heading review results, heading, level 2"
      ],
      "state": {
        "focus": {
          "tag": "H2",
          "id": "",
          "text": "Heading review results"
        },
        "input": "<h2>Products</h3>",
        "status": [
          "0 headings recognized; 1 nonempty lines not recognized. 0 structural observations need review."
        ]
      }
    },
    {
      "label": "Shift+Tab from result reading (2)",
      "at": "2026-10-19T18:25:57.856Z",
      "speech": [
        "Validate Headings, button"
      ],
      "state": {
        "focus": {
          "tag": "BUTTON",
          "id": "",
          "text": "Validate Headings"
        },
        "input": "<h2>Products</h3>",
        "status": [
          "0 headings recognized; 1 nonempty lines not recognized. 0 structural observations need review."
        ]
      }
    },
    {
      "label": "Shift+Tab from result reading (3)",
      "at": "2026-10-19T18:25:59.183Z",
      "speech": [
        "Enter your heading structure (one per line), edit, multi line, Maximum 30,000 characters; one heading per line. Use plain text headings, Markdown-style headings, or a simple HTML heading with matching tags and no attributes or nested markup. This is not a full-page HTML parser. Accepted formats: h 1 Page Title , number Page Title , or less h 1 greater Page Title less slash h 1 greater, less h 2 greater Products less slash h 3 greater"
      ],
      "state": {
        "focus": {
          "tag": "TEXTAREA",
          "id": "heading-input",
          "text": "<h2>Products</h3>"
        },
        "input": "<h2>Products</h3>",
        "status": [
          "0 headings recognized; 1 nonempty lines not recognized. 0 structural observations need review."
        ]
      }
    },
    {
      "label": "Select all: Control+A",
      "at": "2026-10-19T18:26:00.513Z",
      "speech": [
        "less h 2 greater Products less slash h 3 greater selected"
      ],
      "state": {
        "focus": {
          "tag": "TEXTAREA",
          "id": "heading-input",
          "text": "<h2>Products</h3>"
        },
        "input": "<h2>Products</h3>",
        "status": [
          "0 headings recognized; 1 nonempty lines not recognized. 0 structural observations need review."
        ]
      }
    },
    {
      "label": "Type first supported line",
      "at": "2026-10-19T18:26:01.811Z",
      "speech": [
        "h. unselected",
        "1",
        "space",
        "S",
        "t",
        "o",
        "r",
        "e"
      ],
      "state": {
        "focus": {
          "tag": "TEXTAREA",
          "id": "heading-input",
          "text": "h1 Store"
        },
        "input": "h1 Store",
        "status": []
      }
    },
    {
      "label": "Insert line break: Enter",
      "at": "2026-10-19T18:26:12.818Z",
      "speech": [
        ""
      ],
      "state": {
        "focus": {
          "tag": "TEXTAREA",
          "id": "heading-input",
          "text": "h1 Store"
        },
        "input": "h1 Store\n",
        "status": []
      }
    },
    {
      "label": "Type second supported line",
      "at": "2026-10-19T18:26:14.111Z",
      "speech": [
        "h",
        "2",
        "space",
        "P",
        "r",
        "o",
        "d",
        "u",
        "c",
        "t",
        "s"
      ],
      "state": {
        "focus": {
          "tag": "TEXTAREA",
          "id": "heading-input",
          "text": "h1 Store\nh2 Products"
        },
        "input": "h1 Store\nh2 Products",
        "status": []
      }
    },
    {
      "label": "Tab to Validate corrected input",
      "at": "2026-10-19T18:26:28.654Z",
      "speech": [
        "Validate Headings, button"
      ],
      "state": {
        "focus": {
          "tag": "BUTTON",
          "id": "",
          "text": "Validate Headings"
        },
        "input": "h1 Store\nh2 Products",
        "status": []
      }
    },
    {
      "label": "Activate Validate: Enter; corrected automatic speech",
      "at": "2026-10-19T18:26:29.983Z",
      "speech": [
        "Heading review results, heading, level 2"
      ],
      "state": {
        "focus": {
          "tag": "H2",
          "id": "",
          "text": "Heading review results"
        },
        "input": "h1 Store\nh2 Products",
        "status": [
          "2 headings recognized; 0 nonempty lines not recognized. 0 structural observations need review."
        ]
      }
    },
    {
      "label": "Explicit NVDA current-focus report after correction",
      "at": "2026-10-19T18:26:31.382Z",
      "speech": [
        "Heading review results, heading, focused, level 2"
      ],
      "state": {
        "focus": {
          "tag": "H2",
          "id": "",
          "text": "Heading review results"
        },
        "input": "h1 Store\nh2 Products",
        "status": [
          "2 headings recognized; 0 nonempty lines not recognized. 0 structural observations need review."
        ]
      }
    },
    {
      "label": "Explicit next-line reading after corrected result (1)",
      "at": "2026-10-19T18:26:32.665Z",
      "speech": [
        "2 headings recognized; 0 nonempty lines not recognized. 0 structural observations need review."
      ],
      "state": {
        "focus": {
          "tag": "H2",
          "id": "",
          "text": "Heading review results"
        },
        "input": "h1 Store\nh2 Products",
        "status": [
          "2 headings recognized; 0 nonempty lines not recognized. 0 structural observations need review."
        ]
      }
    },
    {
      "label": "Explicit next-line reading after corrected result (2)",
      "at": "2026-10-19T18:26:33.945Z",
      "speech": [
        "This is a structural heuristic. Check the actual content relationships and heading labels; multiple"
      ],
      "state": {
        "focus": {
          "tag": "H2",
          "id": "",
          "text": "Heading review results"
        },
        "input": "h1 Store\nh2 Products",
        "status": [
          "2 headings recognized; 0 nonempty lines not recognized. 0 structural observations need review."
        ]
      }
    },
    {
      "label": "Explicit next-line reading after corrected result (3)",
      "at": "2026-10-19T18:26:35.264Z",
      "speech": [
        "H 1s or a skipped level alone do not establish a WCAG failure."
      ],
      "state": {
        "focus": {
          "tag": "H2",
          "id": "",
          "text": "Heading review results"
        },
        "input": "h1 Store\nh2 Products",
        "status": [
          "2 headings recognized; 0 nonempty lines not recognized. 0 structural observations need review."
        ]
      }
    },
    {
      "label": "Tab forward to examples download",
      "at": "2026-10-19T18:26:36.553Z",
      "speech": [
        "What we found in our own heading validator, region, Download all nine test inputs and expected results (JSON), link"
      ],
      "state": {
        "focus": {
          "tag": "A",
          "id": "",
          "text": "Download all nine test inputs and expected results (JSON)"
        },
        "input": "h1 Store\nh2 Products",
        "status": [
          "2 headings recognized; 0 nonempty lines not recognized. 0 structural observations need review."
        ]
      }
    }
  ],
  "status": "Completed scoped journey; speech log reviewed against the recorded actions",
  "finishedAt": "2026-10-19T18:26:37.933Z",
  "settingsNote": "Relevant configured settings only. Disposable runner relay, update and unrelated feature settings omitted from public copy.",
  "reviewedAt": "2026-10-19T18:27:15.507717+00:00",
  "limitations": [
    "Automated operation of real NVDA; no disabled-participant usability session.",
    "Speech-message capture for recorded actions, not a continuous audio recording.",
    "Browser setup includes a click and mode changes before the recorded NVDA keyboard task.",
    "One browser, OS, NVDA version and configuration; no whole-site or criterion-wide conformance claim.",
    "Counts were captured during explicit next-line reading, not in the automatic heading announcement.",
    "Download link reachability only; activation not tested.",
    "VoiceOver/Safari speech remains unverified."
  ]
}
