{
  "schemaVersion": "1.0",
  "generatedAt": "2026-10-27T16:59:17.338Z",
  "elapsedMs": 55582,
  "beam": {
    "model": "Beam-1.0-501B-A23B",
    "reasoningEffort": "medium"
  },
  "pages": [
    "index.html",
    "contact.html"
  ],
  "summary": {
    "baseline": {
      "totalNodeCount": 6,
      "targetedNodeCount": 6,
      "ruleCounts": {
        "button-name": 2,
        "html-has-lang": 2,
        "label": 2
      }
    },
    "final": {
      "totalNodeCount": 0,
      "targetedNodeCount": 0,
      "ruleCounts": {}
    },
    "repairedPages": 2,
    "rejectedPages": 0,
    "errorPages": 0
  },
  "pageReports": [
    {
      "sourceFilename": "index.html",
      "route": "/index.html",
      "baseline": {
        "route": "/index.html",
        "loadError": null,
        "totalNodeCount": 3,
        "targetedNodeCount": 3,
        "ruleCounts": {
          "button-name": 2,
          "html-has-lang": 1
        }
      },
      "final": {
        "route": "/index.html",
        "loadError": null,
        "totalNodeCount": 0,
        "targetedNodeCount": 0,
        "ruleCounts": {}
      },
      "attempts": [
        {
          "attempt": 1,
          "status": "accepted",
          "appliedEdits": [
            {
              "find": "<html>",
              "replace": "<html lang=\"en\">",
              "ruleIds": [
                "html-has-lang"
              ]
            },
            {
              "find": "<button type=\"submit\" id=\"search-button\"><span aria-hidden=\"true\">&#128269;</span></button>",
              "replace": "<button type=\"submit\" id=\"search-button\" aria-label=\"Search\"><span aria-hidden=\"true\">&#128269;</span></button>",
              "ruleIds": [
                "button-name"
              ]
            },
            {
              "find": "<button type=\"reset\" id=\"clear-button\"><span aria-hidden=\"true\">&times;</span></button>",
              "replace": "<button type=\"reset\" id=\"clear-button\" aria-label=\"Clear search\"><span aria-hidden=\"true\">&times;</span></button>",
              "ruleIds": [
                "button-name"
              ]
            }
          ],
          "validationError": null,
          "rejectionReasons": [],
          "candidate": {
            "route": "/index.html",
            "loadError": null,
            "totalNodeCount": 0,
            "targetedNodeCount": 0,
            "ruleCounts": {}
          },
          "finishReason": "stop",
          "usage": {
            "promptTokens": 1520,
            "completionTokens": 461,
            "totalTokens": 1981,
            "reasoningTokens": 248
          },
          "requestId": "196d425b-761e-4541-9561-162700ca2f39",
          "manualReview": [],
          "error": null
        }
      ],
      "outcome": "repaired",
      "manualReview": []
    },
    {
      "sourceFilename": "contact.html",
      "route": "/contact.html",
      "baseline": {
        "route": "/contact.html",
        "loadError": null,
        "totalNodeCount": 3,
        "targetedNodeCount": 3,
        "ruleCounts": {
          "html-has-lang": 1,
          "label": 2
        }
      },
      "final": {
        "route": "/contact.html",
        "loadError": null,
        "totalNodeCount": 0,
        "targetedNodeCount": 0,
        "ruleCounts": {}
      },
      "attempts": [
        {
          "attempt": 1,
          "status": "accepted",
          "appliedEdits": [
            {
              "find": "<html>",
              "replace": "<html lang=\"en\">",
              "ruleIds": [
                "html-has-lang"
              ]
            },
            {
              "find": "          <input id=\"email\" name=\"email\" type=\"email\" autocomplete=\"email\">",
              "replace": "          <label for=\"email\">Email</label>\n          <input id=\"email\" name=\"email\" type=\"email\" autocomplete=\"email\">",
              "ruleIds": [
                "label"
              ]
            },
            {
              "find": "          <textarea id=\"message\" name=\"message\" rows=\"6\"></textarea>",
              "replace": "          <label for=\"message\">Message</label>\n          <textarea id=\"message\" name=\"message\" rows=\"6\"></textarea>",
              "ruleIds": [
                "label"
              ]
            }
          ],
          "validationError": null,
          "rejectionReasons": [],
          "candidate": {
            "route": "/contact.html",
            "loadError": null,
            "totalNodeCount": 0,
            "targetedNodeCount": 0,
            "ruleCounts": {}
          },
          "finishReason": "stop",
          "usage": {
            "promptTokens": 1426,
            "completionTokens": 698,
            "totalTokens": 2124,
            "reasoningTokens": 486
          },
          "requestId": "e33fdbd4-b2e5-48e3-879a-c4df974e9db9",
          "manualReview": [],
          "error": null
        }
      ],
      "outcome": "repaired",
      "manualReview": []
    }
  ],
  "usage": {
    "promptTokens": 2946,
    "completionTokens": 1159,
    "totalTokens": 4105,
    "reasoningTokens": 734
  },
  "limitations": "Automated checks with axe-core cover only a subset of accessibility requirements. They do not establish full WCAG compliance. Manual review by people with disabilities is still required."
}
