{
  "issueNumber": 68,
  "issueUrl": "https://github.com/mgifford/open-scans/issues/68",
  "issueTitle": "WEEKLY: London",
  "scanTitle": "London",
  "submittedBy": "mgifford",
  "engines": [
    "axe",
    "accesslint"
  ],
  "scannedAt": "2026-04-04T01:18:19.312Z",
  "totalElapsedMs": 1495429,
  "totalSubmitted": 100,
  "acceptedCount": 100,
  "scannedCount": 100,
  "skippedDueToTimeout": 0,
  "skippedDueToErrAborted": 0,
  "rejectedCount": 0,
  "rejected": [],
  "alfaTotals": {
    "passed": 0,
    "failed": 0,
    "cantTell": 0,
    "inapplicable": 0
  },
  "axeTotals": {
    "passed": 78738,
    "failed": 174,
    "cantTell": 278,
    "inapplicable": 6376
  },
  "equalAccessTotals": {
    "passed": 0,
    "failed": 0,
    "uniqueFailed": 0,
    "duplicates": 0,
    "cantTell": 0,
    "inapplicable": 0
  },
  "accesslintTotals": {
    "passed": 8312,
    "failed": 520,
    "uniqueFailed": 519,
    "duplicates": 1,
    "cantTell": 0,
    "inapplicable": 0
  },
  "qualwebTotals": {
    "passed": 0,
    "failed": 0,
    "cantTell": 0,
    "inapplicable": 0
  },
  "duplicateFindingTotals": 2,
  "darkModeUrlCount": 26,
  "reducedMotionUrlCount": 70,
  "highContrastUrlCount": 1,
  "forcedColorsUrlCount": 2,
  "reducedTransparencyUrlCount": 0,
  "results": [
    {
      "submittedUrl": "https://london.gov.uk/",
      "finalUrl": "https://www.london.gov.uk/",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Home page - London City Hall",
      "elapsedMs": 12462,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1529,
          "failed": 1,
          "cantTell": 5,
          "inapplicable": 34
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-toggle-field-name",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "autocomplete-valid",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "frame-tested",
          "frame-title",
          "frame-title-unique",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "input-button-name",
          "label",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "presentation-role-conflict",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "16aa65584af9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1569,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b1a567ce19da",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "cf54c4488235",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8ec958249f4f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "e43235448e37",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f8af49a0e040",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8367d359c133",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/find-us-facebook",
      "finalUrl": "https://www.facebook.com/OldOakParkRoyal/",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=\"utf-8\"",
      "pageTitle": "Old Oak and Park Royal Development Corporation | London",
      "elapsedMs": 17689,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 766,
          "failed": 6,
          "cantTell": 106,
          "inapplicable": 104
        },
        "failedRules": [
          "aria-dialog-name",
          "color-contrast",
          "meta-viewport-large"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-command-name",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "color-contrast",
          "document-title",
          "form-field-multiple-labels",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "nested-interactive",
          "page-has-heading-one",
          "presentation-role-conflict",
          "region",
          "scrollable-region-focusable",
          "tabindex"
        ],
        "failures": [
          {
            "rule": "aria-dialog-name",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-dialog-name?application=playwright",
            "impact": "serious",
            "wcagSc": [],
            "xpath": ".x1afcbsf",
            "html": "<div role=\"dialog\" class=\"x1n2onr6 x1ja2u2z x1afcbsf x78zum5 xdt5ytf x1a2a7pz x6ikm8r x10wlt62 x71s49j x1jx94hy xw5cjc7 x1dmpuos x1vsv7so xau1kf4 x104qc98 x15o3w11 xogydr4 x1vmz7ll x1yyrj1m x193iq5w\">",
            "message": "ARIA dialog and alertdialog nodes should have an accessible name",
            "fixSummary": "Fix any of the following:\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9b64f11a9951",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "color-contrast",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2aa",
              "wcag143"
            ],
            "xpath": ".xp48ta0 > .x14ayic.xwyz465.x1e0frkt > .xsqbvy7.xb9jzoj[role=\"none\"] > .x1lkfr7t.x1lbecb7.xtk6v10 > .xlyipyv.xuxw1ft.x6ikm8r",
            "html": "<span class=\"x1lliihq x6ikm8r x10wlt62 x1n2onr6 xlyipyv xuxw1ft\">Create new account</span>",
            "message": "Elements must meet minimum color contrast ratio thresholds",
            "fixSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.27 (foreground color: #ffffff, background color: #31a24c, font size: 12.8pt (17px), font weight: normal). Expected contrast ratio of 4.5:1",
            "relatedPaths": [
              ".xp48ta0"
            ],
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "09f2fe5a76c0",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-viewport-large",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-viewport-large?application=playwright",
            "impact": "minor",
            "wcagSc": [],
            "xpath": "meta[name=\"viewport\"]",
            "html": "<meta name=\"viewport\" content=\"width=device-width,initial-scale=1,maximum-scale=2,shrink-to-fit=no\">",
            "message": "Users should be able to zoom and scale the text up to 500%",
            "fixSummary": "Fix any of the following:\n  <meta> tag limits zooming on mobile devices",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8d09da2f85a5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "aria-dialog-name",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-dialog-name?application=playwright",
            "impact": "serious",
            "wcagSc": [],
            "xpath": ".x1afcbsf",
            "html": "<div role=\"dialog\" class=\"x1n2onr6 x1ja2u2z x1afcbsf x78zum5 xdt5ytf x1a2a7pz x6ikm8r x10wlt62 x71s49j x1jx94hy xw5cjc7 x1dmpuos x1vsv7so xau1kf4 x104qc98 x15o3w11 xogydr4 x1vmz7ll x1yyrj1m x193iq5w\">",
            "message": "ARIA dialog and alertdialog nodes should have an accessible name",
            "fixSummary": "Fix any of the following:\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4b6466832651",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "color-contrast",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2aa",
              "wcag143"
            ],
            "xpath": ".xp48ta0 > .x14ayic.xwyz465.x1e0frkt > .xsqbvy7.xb9jzoj[role=\"none\"] > .x1lkfr7t.x1lbecb7.xtk6v10 > .xlyipyv.xuxw1ft.x6ikm8r",
            "html": "<span class=\"x1lliihq x6ikm8r x10wlt62 x1n2onr6 xlyipyv xuxw1ft\">Create new account</span>",
            "message": "Elements must meet minimum color contrast ratio thresholds",
            "fixSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.27 (foreground color: #ffffff, background color: #31a24c, font size: 12.8pt (17px), font weight: normal). Expected contrast ratio of 4.5:1",
            "relatedPaths": [
              ".xp48ta0"
            ],
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ec58c59c6323",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-viewport-large",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-viewport-large?application=playwright",
            "impact": "minor",
            "wcagSc": [],
            "xpath": "meta[name=\"viewport\"]",
            "html": "<meta name=\"viewport\" content=\"width=device-width,initial-scale=1,maximum-scale=2,shrink-to-fit=no\">",
            "message": "Users should be able to zoom and scale the text up to 500%",
            "fixSummary": "Fix any of the following:\n  <meta> tag limits zooming on mobile devices",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "dfadc9fc1543",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 982,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": true,
          "highContrast": true,
          "forcedColors": true,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 6
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": false,
        "error": "page.addScriptTag: Executing inline script violates the following Content Security Policy directive 'script-src *.facebook.com *.fbcdn.net *.facebook.net 127.0.0.1:* 'nonce-KsjE9aOa' blob: 'self' connect.facebook.net 'wasm-unsafe-eval' https://accounts.google.com https://*.google-analytics.com *.google.com'. Either the 'unsafe-inline' keyword, a hash ('sha256-iLB/qGn2fKTfTYFKNKTMDW4mWOq+TwpFIWKi5guSmvk='), or a nonce ('nonce-...') is required to enable inline execution. The action has been blocked.",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/find-advice-and-support",
      "finalUrl": "https://www.london.gov.uk/programmes-strategies/communities-and-social-justice/european-londoners-hub/advice-and-support-services",
      "redirected": true,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26915,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "06c739613915",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "44186fb51952",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2b4bd35d2e60",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d38079fde13a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/warmer-homes-faqs/i-received-support-under-first-phase-warmer-homes-can-i-re-apply-phase-warmer-homes",
      "finalUrl": "https://www.london.gov.uk/warmer-homes-faqs/i-received-support-under-first-phase-warmer-homes-can-i-re-apply-phase-warmer-homes",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "I received support under the first phase of Warmer Homes. Can I re-apply for this phase of Warmer Homes? | London City Hall",
      "elapsedMs": 11567,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1376,
          "failed": 3,
          "cantTell": 1,
          "inapplicable": 42
        },
        "failedRules": [
          "heading-order",
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "heading-order",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/heading-order?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".u-space-y-4 > h3",
            "html": "<h3 class=\"h3\">\n                    Related questions\n            </h3>",
            "message": "Heading levels should only increase by one",
            "fixSummary": "Fix any of the following:\n  Heading order invalid",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ddf6bd4c6864",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "heading-order",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/heading-order?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".u-mb-10:nth-child(1) > .u-bg-off-white.u-p-6.sm\\:u-px-12 > h5",
            "html": "<h5 class=\"h5\">\n                    Eligibility\n            </h5>",
            "message": "Heading levels should only increase by one",
            "fixSummary": "Fix any of the following:\n  Heading order invalid",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1a138c983029",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "775a6f87c8ba",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1422,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 3
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 84,
          "failed": 8,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "navigable/heading-order",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "890f7a615d48",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9645c8386f2d",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "787fcd6d5bea",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "navigable/heading-order",
            "xpath": "div:nth-of-type(2) > h3",
            "selector": "div:nth-of-type(2) > h3",
            "html": "<h3 class=\"h3\">\n                    Related questions\n            </h3>",
            "impact": "moderate",
            "message": "Heading level 3 skipped from level 1. Use h2 instead.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9f05d1d6e446",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "navigable/heading-order",
            "xpath": "div:nth-of-type(1) > div > h5",
            "selector": "div:nth-of-type(1) > div > h5",
            "html": "<h5 class=\"h5\">\n                    Eligibility\n            </h5>",
            "impact": "moderate",
            "message": "Heading level 5 skipped from level 3. Use h4 instead.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "03009a3c38c8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7e4663727645",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "fedf036fcf18",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "dfdc4a7810c1",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 8,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/programmes-strategies/accessibility",
      "finalUrl": "https://london.gov.uk/programmes-strategies/accessibility",
      "redirected": false,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26554,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4aff83ed4490",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "fdc53c202ae8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6cb871cb4944",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f74dc924e3a3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/programmes-strategies/accessibility-statement-talk-london",
      "finalUrl": "https://london.gov.uk/programmes-strategies/accessibility-statement-talk-london",
      "redirected": false,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26534,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b92eadbf111b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7229c37a6b20",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3f22dabbd247",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d5cce043e82b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/programmes-strategies/arts-and-culture/space-culture/help-resources-and-guidance/finding-building-or-land",
      "finalUrl": "https://london.gov.uk/programmes-strategies/arts-and-culture/space-culture/help-resources-and-guidance/finding-building-or-land",
      "redirected": false,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26486,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2ecc9905d339",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6aaa109d5996",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c6c6ad27d937",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a159e91771fe",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/find-affordable-home",
      "finalUrl": "https://homes.london.gov.uk/",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Home - Homes for Londoners",
      "elapsedMs": 13708,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1324,
          "failed": 5,
          "cantTell": 21,
          "inapplicable": 41
        },
        "failedRules": [
          "color-contrast",
          "region"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "autocomplete-valid",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "presentation-role-conflict",
          "region",
          "skip-link",
          "svg-img-alt",
          "tabindex"
        ],
        "failures": [
          {
            "rule": "color-contrast",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2aa",
              "wcag143"
            ],
            "xpath": "p:nth-child(1)",
            "html": "<p>We use some essential cookies to make this website work.</p>",
            "message": "Elements must meet minimum color contrast ratio thresholds",
            "fixSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.01 (foreground color: #787878, background color: #f4f4f4, font size: 9.7pt (12.96px), font weight: normal). Expected contrast ratio of 4.5:1",
            "relatedPaths": [
              "#ccc-notify"
            ],
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8219dcf3d7af",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "color-contrast",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2aa",
              "wcag143"
            ],
            "xpath": "p > p:nth-child(3)",
            "html": "<p>We also use cookies set by other sites to help us deliver content from their services.</p>",
            "message": "Elements must meet minimum color contrast ratio thresholds",
            "fixSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.01 (foreground color: #787878, background color: #f4f4f4, font size: 9.7pt (12.96px), font weight: normal). Expected contrast ratio of 4.5:1",
            "relatedPaths": [
              "#ccc-notify"
            ],
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "44a020220bbb",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "region",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".footer-locations-grid",
            "html": "<div class=\"footer-locations-grid slide-toggle__child\">",
            "message": "All page content should be contained by landmarks",
            "fixSummary": "Fix any of the following:\n  Some page content is not contained by landmarks",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f111314f7fde",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "region",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": "a[aria-label=\"Share to Buy\"]",
            "html": "<a href=\"https://www.sharetobuy.com/\" aria-label=\"Share to Buy\">",
            "message": "All page content should be contained by landmarks",
            "fixSummary": "Fix any of the following:\n  Some page content is not contained by landmarks",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "90ee2231415f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "region",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".footer-inline-nav",
            "html": "<div class=\"footer-inline-nav inline-nav\">",
            "message": "All page content should be contained by landmarks",
            "fixSummary": "Fix any of the following:\n  Some page content is not contained by landmarks",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7112ab3dde02",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1391,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 5
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "adaptable/list-children",
          "distinguishable/color-contrast"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "adaptable/list-children",
            "xpath": "ul > div",
            "selector": "ul > div",
            "html": "<div class=\"my-account-menu-divider\"></div>",
            "impact": "serious",
            "message": "List contains non-<li> child <div>.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5bfa3e6dddfe",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "p > p:nth-of-type(1)",
            "selector": "p > p:nth-of-type(1)",
            "html": "<p>We use some essential cookies to make this website work.</p>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.01:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "77a63884e60f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "p > p:nth-of-type(2)",
            "selector": "p > p:nth-of-type(2)",
            "html": "<p>We'd like to set additional cookies to understand how you use london.gov.uk, remember your settings and improve government services.</p>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.01:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "28f4f1408e70",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "p > p:nth-of-type(3)",
            "selector": "p > p:nth-of-type(3)",
            "html": "<p>We also use cookies set by other sites to help us deliver content from their services.</p>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.01:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "cde4eeceeb23",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f5dd5be39862",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f47c4504bf3b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/find-course-london",
      "finalUrl": "https://www.london.gov.uk/programmes-strategies/jobs-and-skills/find-adult-learning-providers-near-me",
      "redirected": true,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 27015,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "860f23c8a99d",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7db8e0ebc1d4",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "423bbb52c00f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7c7825691e89",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/find-healthy-school",
      "finalUrl": "https://www.london.gov.uk/programmes-strategies/education-and-youth/schools-success/schools-success-mapped",
      "redirected": true,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26715,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "cc12e4e92ab4",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "93cc614b9758",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1900cfbea76a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2cecb3eca756",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/find-opportunities",
      "finalUrl": "https://www.london.gov.uk/programmes-strategies/volunteering/search/",
      "redirected": true,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26843,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "308273964936",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "080ab5d53b57",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "bed1f8d82bd1",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "749a6f1921c5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/find-your-london-festival",
      "finalUrl": "https://www.london.gov.uk/events/2016-03-18/find-your-london/find-your-london-festival-map",
      "redirected": true,
      "statusCode": 404,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Sorry - page not found | London City Hall",
      "elapsedMs": 11018,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 830,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 43
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3f48eb105626",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 876,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1fe8373a24a7",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2f9576151555",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "aaf837bbc6f3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3ba647828d44",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7249923bde8b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "809e5b7ffaf2",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/programmes-strategies/accessibility/accessible-comms-policy",
      "finalUrl": "https://london.gov.uk/programmes-strategies/accessibility/accessible-comms-policy",
      "redirected": false,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26527,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c1c7bbeadfd6",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f4c4094b77bd",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "17aa478a6459",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b75a8b25f418",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/programmes-strategies/communities-and-social-justice/european-londoners-hub/advice-and-support-services",
      "finalUrl": "https://london.gov.uk/programmes-strategies/communities-and-social-justice/european-londoners-hub/advice-and-support-services",
      "redirected": false,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26535,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4d9dbec10622",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d7ff4e938cee",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8f8db9d120c1",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "afba2d7d76ad",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/programmes-strategies/communities-and-social-justice/help-cost-living/income-and-budgeting/debt-help/where-find-debt-advice",
      "finalUrl": "https://london.gov.uk/programmes-strategies/communities-and-social-justice/help-cost-living/income-and-budgeting/debt-help/where-find-debt-advice",
      "redirected": false,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26968,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "dc4c49e33166",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3ecb1489d710",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "978e87c15bef",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8ba78887368b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/programmes-strategies/education-and-youth/young-londoners/new-deal-young-people/find-resources-mentoring-programmes/mentoring-and-mental-health-support-programme-funding-2026-27",
      "finalUrl": "https://london.gov.uk/programmes-strategies/education-and-youth/young-londoners/new-deal-young-people/find-resources-mentoring-programmes/mentoring-and-mental-health-support-programme-funding-2026-27",
      "redirected": false,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26563,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "40093779f682",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "aa7ec7c0c573",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a24b81c7d21c",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9a87744da659",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/programmes-strategies/mayors-office-policing-and-crime/services-we-fund/supporting-victims-and-witnesses",
      "finalUrl": "https://london.gov.uk/programmes-strategies/mayors-office-policing-and-crime/services-we-fund/supporting-victims-and-witnesses",
      "redirected": false,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26482,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2b5e214366cb",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5d36830e46a4",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "888d4279856c",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ea66b20a3df2",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/what-affordable-home-and-how-can-i-find-one",
      "finalUrl": "https://www.london.gov.uk/what-affordable-home-and-how-can-i-find-one",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "What is an affordable home and how can I find one? | London City Hall",
      "elapsedMs": 10607,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 963,
          "failed": 3,
          "cantTell": 1,
          "inapplicable": 42
        },
        "failedRules": [
          "heading-order",
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "heading-order",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/heading-order?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".u-space-y-4 > h3",
            "html": "<h3 class=\"h3\">\n                    Related questions\n            </h3>",
            "message": "Heading levels should only increase by one",
            "fixSummary": "Fix any of the following:\n  Heading order invalid",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1f62327af10a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "heading-order",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/heading-order?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": "h5",
            "html": "<h5 class=\"h5\">\n                    General\n            </h5>",
            "message": "Heading levels should only increase by one",
            "fixSummary": "Fix any of the following:\n  Heading order invalid",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "26f0629c185a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ba0cb8335751",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1009,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 3
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 84,
          "failed": 8,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "navigable/heading-order",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "007440762252",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9a6ccfab5191",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "05f1400eef93",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "navigable/heading-order",
            "xpath": "div:nth-of-type(2) > h3",
            "selector": "div:nth-of-type(2) > h3",
            "html": "<h3 class=\"h3\">\n                    Related questions\n            </h3>",
            "impact": "moderate",
            "message": "Heading level 3 skipped from level 1. Use h2 instead.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "631a84c4a09c",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "navigable/heading-order",
            "xpath": "div > h5",
            "selector": "div > h5",
            "html": "<h5 class=\"h5\">\n                    General\n            </h5>",
            "impact": "moderate",
            "message": "Heading level 5 skipped from level 3. Use h4 instead.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a8588940e245",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2907a157db30",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0c6c71df5214",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5aaaaa2bde71",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 8,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/who-we-are/city-halls-buildings-and-squares/accessibility-city-hall",
      "finalUrl": "https://www.london.gov.uk/who-we-are/city-halls-buildings-and-squares/accessibility-city-hall",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Accessibility at City Hall | London City Hall",
      "elapsedMs": 11292,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1381,
          "failed": 1,
          "cantTell": 3,
          "inapplicable": 40
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-complementary-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "presentation-role-conflict",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "dbe70ebd9237",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1425,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 85,
          "failed": 7,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6fe3f9cac008",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "div:nth-of-type(2) > h1",
            "selector": "div:nth-of-type(2) > h1",
            "html": "<h1 class=\"h2\">\n                    Accessibility at City Hall\n            </h1>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 1:1 (required 3:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "204139f731ac",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1456842dccde",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8cb080df1d6c",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "fc06e20a098a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "883ae6cce91a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8ee357973dd0",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 7,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/workshop-findings",
      "finalUrl": "https://www.london.gov.uk/publications/festival-ideas-workshop-findings",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Festival of Ideas Workshop Findings | London City Hall",
      "elapsedMs": 12036,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1872,
          "failed": 10,
          "cantTell": 1,
          "inapplicable": 38
        },
        "failedRules": [
          "empty-table-header",
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "empty-table-header",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "table-duplicate-name",
          "td-headers-attr",
          "th-has-data-cells",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "empty-table-header",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/empty-table-header?application=playwright",
            "impact": "minor",
            "wcagSc": [],
            "xpath": "tr:nth-child(2) > th",
            "html": "<th>&nbsp;</th>",
            "message": "Table header text should not be empty",
            "fixSummary": "Fix any of the following:\n  Element does not have text that is visible to screen readers",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8a05dbe792c9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "empty-table-header",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/empty-table-header?application=playwright",
            "impact": "minor",
            "wcagSc": [],
            "xpath": "tr:nth-child(3) > th",
            "html": "<th>&nbsp;</th>",
            "message": "Table header text should not be empty",
            "fixSummary": "Fix any of the following:\n  Element does not have text that is visible to screen readers",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "881f08eccca3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "empty-table-header",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/empty-table-header?application=playwright",
            "impact": "minor",
            "wcagSc": [],
            "xpath": "tr:nth-child(5) > th",
            "html": "<th>&nbsp;</th>",
            "message": "Table header text should not be empty",
            "fixSummary": "Fix any of the following:\n  Element does not have text that is visible to screen readers",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ff703d2a55ac",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "empty-table-header",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/empty-table-header?application=playwright",
            "impact": "minor",
            "wcagSc": [],
            "xpath": "tr:nth-child(6) > th",
            "html": "<th>&nbsp;</th>",
            "message": "Table header text should not be empty",
            "fixSummary": "Fix any of the following:\n  Element does not have text that is visible to screen readers",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ccab4eda0a9c",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "empty-table-header",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/empty-table-header?application=playwright",
            "impact": "minor",
            "wcagSc": [],
            "xpath": "tr:nth-child(7) > th",
            "html": "<th>&nbsp;</th>",
            "message": "Table header text should not be empty",
            "fixSummary": "Fix any of the following:\n  Element does not have text that is visible to screen readers",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "43ff290aeec2",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "empty-table-header",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/empty-table-header?application=playwright",
            "impact": "minor",
            "wcagSc": [],
            "xpath": "tr:nth-child(8) > th",
            "html": "<th>&nbsp;</th>",
            "message": "Table header text should not be empty",
            "fixSummary": "Fix any of the following:\n  Element does not have text that is visible to screen readers",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "209c4f638ff4",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "empty-table-header",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/empty-table-header?application=playwright",
            "impact": "minor",
            "wcagSc": [],
            "xpath": "tr:nth-child(10) > th",
            "html": "<th>&nbsp;</th>",
            "message": "Table header text should not be empty",
            "fixSummary": "Fix any of the following:\n  Element does not have text that is visible to screen readers",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "92f736e177f6",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "empty-table-header",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/empty-table-header?application=playwright",
            "impact": "minor",
            "wcagSc": [],
            "xpath": "tr:nth-child(11) > th",
            "html": "<th>&nbsp;</th>",
            "message": "Table header text should not be empty",
            "fixSummary": "Fix any of the following:\n  Element does not have text that is visible to screen readers",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "e25dfc83a346",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "empty-table-header",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/empty-table-header?application=playwright",
            "impact": "minor",
            "wcagSc": [],
            "xpath": "tr:nth-child(12) > th",
            "html": "<th>&nbsp;</th>",
            "message": "Table header text should not be empty",
            "fixSummary": "Fix any of the following:\n  Element does not have text that is visible to screen readers",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9ad18ec82acc",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2f20eb646547",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1921,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 10
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 77,
          "failed": 15,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "adaptable/empty-table-header",
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8824e8c51e94",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "adaptable/empty-table-header",
            "xpath": "tr:nth-of-type(2) > th",
            "selector": "tr:nth-of-type(2) > th",
            "html": "<th>&nbsp;</th>",
            "impact": "minor",
            "message": "Table header cell is empty. Add text or use aria-label.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7459b53645bd",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "adaptable/empty-table-header",
            "xpath": "tr:nth-of-type(3) > th",
            "selector": "tr:nth-of-type(3) > th",
            "html": "<th>&nbsp;</th>",
            "impact": "minor",
            "message": "Table header cell is empty. Add text or use aria-label.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "493369a1c5dc",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "adaptable/empty-table-header",
            "xpath": "tr:nth-of-type(5) > th",
            "selector": "tr:nth-of-type(5) > th",
            "html": "<th>&nbsp;</th>",
            "impact": "minor",
            "message": "Table header cell is empty. Add text or use aria-label.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "24b5444a11df",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "adaptable/empty-table-header",
            "xpath": "tr:nth-of-type(6) > th",
            "selector": "tr:nth-of-type(6) > th",
            "html": "<th>&nbsp;</th>",
            "impact": "minor",
            "message": "Table header cell is empty. Add text or use aria-label.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7c536b6fae99",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "adaptable/empty-table-header",
            "xpath": "tr:nth-of-type(7) > th",
            "selector": "tr:nth-of-type(7) > th",
            "html": "<th>&nbsp;</th>",
            "impact": "minor",
            "message": "Table header cell is empty. Add text or use aria-label.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "69c4d20ca526",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "adaptable/empty-table-header",
            "xpath": "tr:nth-of-type(8) > th",
            "selector": "tr:nth-of-type(8) > th",
            "html": "<th>&nbsp;</th>",
            "impact": "minor",
            "message": "Table header cell is empty. Add text or use aria-label.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0f2de1ee8e08",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "adaptable/empty-table-header",
            "xpath": "tr:nth-of-type(10) > th",
            "selector": "tr:nth-of-type(10) > th",
            "html": "<th>&nbsp;</th>",
            "impact": "minor",
            "message": "Table header cell is empty. Add text or use aria-label.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "60e668d7e602",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "adaptable/empty-table-header",
            "xpath": "tr:nth-of-type(11) > th",
            "selector": "tr:nth-of-type(11) > th",
            "html": "<th>&nbsp;</th>",
            "impact": "minor",
            "message": "Table header cell is empty. Add text or use aria-label.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1c11fa0076d5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "adaptable/empty-table-header",
            "xpath": "tr:nth-of-type(12) > th",
            "selector": "tr:nth-of-type(12) > th",
            "html": "<th>&nbsp;</th>",
            "impact": "minor",
            "message": "Table header cell is empty. Add text or use aria-label.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "13a7cf5a1cba",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "205b4ed89ecd",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "82a7783c6ad9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "aa6769f08912",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9cf8cab3930a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a0ab7d4cc4bc",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 15,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/city-hall-blog/do-you-have-rogue-landlord-find-out-here",
      "finalUrl": "https://www.london.gov.uk/city-hall-blog/do-you-have-rogue-landlord-find-out-here",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Do you have a rogue landlord? Find out here | London City Hall",
      "elapsedMs": 10701,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 993,
          "failed": 1,
          "cantTell": 1,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b807777d7ff2",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1037,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4f76b4d96578",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "56d1ee6febc9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "81cc8875cf93",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2a5c71f9d80b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "dc5e68d57f1f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "295de4836604",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/city-hall-blog/find-out-how-our-empty-land-being-used-benefit-londoners",
      "finalUrl": "https://www.london.gov.uk/city-hall-blog/find-out-how-our-empty-land-being-used-benefit-londoners",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Find out how our empty land is being used to benefit Londoners | London City Hall",
      "elapsedMs": 10659,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 962,
          "failed": 1,
          "cantTell": 1,
          "inapplicable": 43
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7056d3f757c9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1007,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c44ed42fb4f8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5b5ed43b2a97",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "54fba0888086",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b571cb165ee2",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "40cdef3f3bdd",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6140e2f93d20",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/city-hall-blog/finding-ways-get-more-women-cleantech-and-keep-them-there",
      "finalUrl": "https://www.london.gov.uk/city-hall-blog/finding-ways-get-more-women-cleantech-and-keep-them-there",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Finding ways to get more women into cleantech – and keep them there! | London City Hall",
      "elapsedMs": 11015,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1001,
          "failed": 2,
          "cantTell": 1,
          "inapplicable": 42
        },
        "failedRules": [
          "heading-order",
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "heading-order",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/heading-order?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": "#by-karen-lawrence-commissioner-on-the-london-sustainable-development-commission",
            "html": "<h4 id=\"by-karen-lawrence-commissioner-on-the-london-sustainable-development-commission\">",
            "message": "Heading levels should only increase by one",
            "fixSummary": "Fix any of the following:\n  Heading order invalid",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "36e4090064b3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "be3bfae637af",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1046,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 85,
          "failed": 7,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "navigable/heading-order",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "13dbc30bd3a0",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "eb2ccae87002",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6ae18d7ebba3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "navigable/heading-order",
            "xpath": "#by-karen-lawrence-commissioner-on-the-london-sustainable-development-commission",
            "selector": "#by-karen-lawrence-commissioner-on-the-london-sustainable-development-commission",
            "html": "<h4 id=\"by-karen-lawrence-commissioner-on-the-london-sustainable-development-commission\"><a href=\"/who-we-are/city-halls-partners/london-sustainable-development-commission/who-we-are/meet-commissioner...",
            "impact": "moderate",
            "message": "Heading level 4 skipped from level 1. Use h2 instead.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "fff9424b680e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "dbc761013ddc",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1f7eb21de1d8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d0b32a1f6506",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 7,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/city-hall-blog/step-outside-and-find-your-london-spring",
      "finalUrl": "https://www.london.gov.uk/city-hall-blog/step-outside-and-find-your-london-spring",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Step outside and Find Your London this spring | London City Hall",
      "elapsedMs": 10518,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 957,
          "failed": 1,
          "cantTell": 1,
          "inapplicable": 43
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4cb44a9c74f7",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1002,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "cac8e71a7dcb",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4013965be347",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8cea9b8c51c5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4fb651c35cc3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4f2a83258236",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2704e749a41b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/city-hall-blog/where-find-best-londons-culture-online",
      "finalUrl": "https://www.london.gov.uk/city-hall-blog/where-find-best-londons-culture-online",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Where to find the best of London’s culture online | London City Hall",
      "elapsedMs": 12122,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1551,
          "failed": 1,
          "cantTell": 3,
          "inapplicable": 35
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-toggle-field-name",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "frame-tested",
          "frame-title",
          "frame-title-unique",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "input-button-name",
          "label",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "presentation-role-conflict",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "029e0581604e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1590,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b0dcf21afb1e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c9cc11170f29",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ec50bd244e01",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "fafd31b3b799",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f6bb837b4434",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a946dfdf7a34",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/programmes-and-strategies/environment-and-climate-change/energy/renew-0/renew-support",
      "finalUrl": "https://www.london.gov.uk/programmes-and-strategies/environment-and-climate-change/energy/renew-0/renew-support",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "RE:NEW support | London City Hall",
      "elapsedMs": 10824,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1153,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 39
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "table-duplicate-name",
          "td-headers-attr",
          "th-has-data-cells",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a981eb982673",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1195,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 85,
          "failed": 7,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "66e698a4d242",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "div:nth-of-type(2) > h1",
            "selector": "div:nth-of-type(2) > h1",
            "html": "<h1 class=\"h2\">\n                    RE:NEW support\n            </h1>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 1:1 (required 3:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c5bddf818906",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ac308b95e2e7",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "635c9db6ce6e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4464494f1445",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6ea5892bcfd3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "83da31faf1f3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 7,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/programmes-strategies/arts-and-culture/space-culture/help-resources-and-guidance/space-register",
      "finalUrl": "https://london.gov.uk/programmes-strategies/arts-and-culture/space-culture/help-resources-and-guidance/space-register",
      "redirected": false,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26510,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "65ede0e061c4",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0d5162e5db27",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "eeeee7e80015",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d9a47cda0c71",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/programmes-strategies/education-and-youth/healthy-early-years-london-and-healthy-schools-london/accessibility-statement-healthy-early-years-london-and-healthy-schools-london",
      "finalUrl": "https://london.gov.uk/programmes-strategies/education-and-youth/healthy-early-years-london-and-healthy-schools-london/accessibility-statement-healthy-early-years-london-and-healthy-schools-london",
      "redirected": false,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26499,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4872ff5f8377",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "dec3ea988e5f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "31f53b401aec",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "29a2b43ecdd7",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/warmer-homes-faqs/where-can-i-find-out-more-about-different-kinds-improvements",
      "finalUrl": "https://www.london.gov.uk/warmer-homes-faqs/where-can-i-find-out-more-about-different-kinds-improvements",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Where can I find out more about the different kinds of improvements? | London City Hall",
      "elapsedMs": 11771,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1392,
          "failed": 3,
          "cantTell": 1,
          "inapplicable": 42
        },
        "failedRules": [
          "heading-order",
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "heading-order",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/heading-order?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".u-space-y-4 > h3",
            "html": "<h3 class=\"h3\">\n                    Related questions\n            </h3>",
            "message": "Heading levels should only increase by one",
            "fixSummary": "Fix any of the following:\n  Heading order invalid",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4d38b6f19b0b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "heading-order",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/heading-order?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".u-mb-10:nth-child(1) > .u-bg-off-white.u-p-6.sm\\:u-px-12 > h5",
            "html": "<h5 class=\"h5\">\n                    Eligibility\n            </h5>",
            "message": "Heading levels should only increase by one",
            "fixSummary": "Fix any of the following:\n  Heading order invalid",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d36b9ff1b427",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "fc0075a80b36",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1438,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 3
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 84,
          "failed": 8,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "navigable/heading-order",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "db31cba9984d",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "20d4c18aa3e8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "010b303394ce",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "navigable/heading-order",
            "xpath": "div:nth-of-type(2) > h3",
            "selector": "div:nth-of-type(2) > h3",
            "html": "<h3 class=\"h3\">\n                    Related questions\n            </h3>",
            "impact": "moderate",
            "message": "Heading level 3 skipped from level 1. Use h2 instead.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d8c23dfcdb86",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "navigable/heading-order",
            "xpath": "div:nth-of-type(1) > div > h5",
            "selector": "div:nth-of-type(1) > div > h5",
            "html": "<h5 class=\"h5\">\n                    Eligibility\n            </h5>",
            "impact": "moderate",
            "message": "Heading level 5 skipped from level 3. Use h4 instead.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3812c44ac21e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0296c38cd557",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4745b5bd5b84",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0264a5ba4f05",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 8,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/who-we-are/what-london-assembly-does/assembly-members/publications-tom-copley/centre-stage-report-supporting",
      "finalUrl": "https://www.london.gov.uk/who-we-are/what-london-assembly-does/assembly-members/publications-tom-copley/centre-stage-report-supporting",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Centre Stage Report: Supporting Small Theatres in the capital | London City Hall",
      "elapsedMs": 10662,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 970,
          "failed": 1,
          "cantTell": 1,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "62b88a25978d",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1014,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "db5f82c0fee6",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f95d38297a55",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0e80a8da5cff",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1ca819a0256f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "fe73ea7a9fac",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "22dd0ecb6fbe",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/who-we-are/what-london-assembly-does/questions-mayor/accessibility-statement-mayors-question-time",
      "finalUrl": "https://www.london.gov.uk/who-we-are/what-london-assembly-does/questions-mayor/accessibility-statement-mayors-question-time",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Accessibility statement for Mayor&#039;s Question Time | London City Hall",
      "elapsedMs": 11068,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1178,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1af253066068",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1223,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "46fd9cfdfbe8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8dc5e48a3b4c",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d7bed5fcb804",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "14ba14ff66fa",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3b8c93ec884d",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d0d5bcdf521a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/apply-access",
      "finalUrl": "https://www.london.gov.uk/media-centre",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Media centre | London City Hall",
      "elapsedMs": 12344,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1022,
          "failed": 3,
          "cantTell": 3,
          "inapplicable": 43
        },
        "failedRules": [
          "landmark-unique",
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "landmark-unique",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/landmark-unique?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".layout__region--first > .u-items-baseline.u-h-full > .layout__region.u-space-y-1.u-w-full > section",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">",
            "message": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination",
            "fixSummary": "Fix any of the following:\n  The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable",
            "relatedPaths": [
              ".layout__region--second > .u-items-baseline.u-h-full > .layout__region.u-space-y-1.u-w-full > section"
            ],
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5adfe10bbf88",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmark-unique",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/landmark-unique?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".layout__region--first > .u-items-baseline.u-h-full > .layout__region.u-space-y-1.u-w-full > section > nav",
            "html": "<nav>",
            "message": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination",
            "fixSummary": "Fix any of the following:\n  The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable",
            "relatedPaths": [
              ".layout__region--second > .u-items-baseline.u-h-full > .layout__region.u-space-y-1.u-w-full > section > nav"
            ],
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b8ae3e38168f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6f78ec79903c",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1071,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 3
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 84,
          "failed": 8,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "labels-and-names/duplicate-id-aria",
          "landmarks/landmark-unique",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b873182cf2ec",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "292af28bdd5d",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8fa487197c88",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/landmark-unique",
            "xpath": "div:nth-of-type(2) > div > div > section",
            "selector": "div:nth-of-type(2) > div > div > section",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">\n      \n  \n    \n<h2 id=\"key-info-heading\" c...",
            "impact": "moderate",
            "message": "Multiple region landmarks have the same label \"mayor's press office\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5ecec6e3a705",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f9fc6121e944",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8a87772fc92a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "eb298b9ba40b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "labels-and-names/duplicate-id-aria",
            "xpath": "#key-info-heading",
            "selector": "#key-info-heading",
            "html": "<h2 id=\"key-info-heading\" class=\"h3\">\n                    London Assembly media relations office\n            </h2>",
            "impact": "critical",
            "message": "Duplicate ID \"key-info-heading\" referenced by aria-labelledby.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b57bbd5f7a2e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 8,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/apply-settled-status",
      "finalUrl": "https://www.gov.uk/settled-status-eu-citizens-families/applying-for-settled-status",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=utf-8",
      "pageTitle": "Apply to the EU Settlement Scheme (settled and pre-settled status): Apply to the EU Settlement Scheme - GOV.UK",
      "elapsedMs": 8971,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1000,
          "failed": 3,
          "cantTell": 0,
          "inapplicable": 46
        },
        "failedRules": [
          "region"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-banner-is-top-level",
          "landmark-complementary-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "presentation-role-conflict",
          "region",
          "scrollable-region-focusable",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "region",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": "body > .gem-c-skip-link.govuk-skip-link[data-module=\"govuk-skip-link\"]",
            "html": "<a data-module=\"govuk-skip-link\" class=\"gem-c-skip-link govuk-skip-link govuk-!-display-none-print\" href=\"#content\" data-govuk-skip-link-init=\"\" data-govuk-skip-link-module-started=\"true\">Skip to main content</a>",
            "message": "All page content should be contained by landmarks",
            "fixSummary": "Fix any of the following:\n  Some page content is not contained by landmarks",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2c0c9c8d2ac0",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "region",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".gem-c-step-nav-header",
            "html": "<div data-module=\"ga4-link-tracker\" class=\"gem-c-step-nav-header\" title=\"Stay in the UK ('settled status'): step by step\" data-ga4-link-tracker-module-started=\"true\">",
            "message": "All page content should be contained by landmarks",
            "fixSummary": "Fix any of the following:\n  Some page content is not contained by landmarks",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9b7d2a0f2c73",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "region",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".gem-c-feedback__prompt-question",
            "html": "<h2 class=\"gem-c-feedback__prompt-question\">Is this page useful?</h2>",
            "message": "All page content should be contained by landmarks",
            "fixSummary": "Fix any of the following:\n  Some page content is not contained by landmarks",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4ef6b4ee4a2c",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1049,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": true,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 3
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": false,
        "error": "page.addScriptTag: Executing inline script violates the following Content Security Policy directive 'script-src 'self' www.google-analytics.com ssl.google-analytics.com stats.g.doubleclick.net www.googletagmanager.com www.region1.google-analytics.com region1.google-analytics.com region1.analytics.google.com www.google.co.uk www.gstatic.com *.ytimg.com www.youtube.com www.youtube-nocookie.com 'nonce-fYjANLEIAPyetr+QDgwmBA==''. Either the 'unsafe-inline' keyword, a hash ('sha256-iLB/qGn2fKTfTYFKNKTMDW4mWOq+TwpFIWKi5guSmvk='), or a nonce ('nonce-...') is required to enable inline execution. The action has been blocked.",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/bookshop-sales-assistant",
      "finalUrl": "https://www.london.gov.uk/programmes-strategies/volunteering/resources-organisations-social-enterprises-and-charities/changes-team-london-volunteering-website-faqs",
      "redirected": true,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 27415,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "16ed0a7f683b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "421cdecc1bad",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "e3bb45f6e326",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "edf5ae62f652",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/bus-services-436-and-452",
      "finalUrl": "https://consultations.tfl.gov.uk/buses/436-452",
      "redirected": true,
      "statusCode": 530,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Error - Transport for London",
      "elapsedMs": 9009,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 55,
          "failed": 5,
          "cantTell": 0,
          "inapplicable": 69
        },
        "failedRules": [
          "image-alt",
          "landmark-one-main",
          "meta-viewport",
          "region"
        ],
        "passedRules": [
          "aria-hidden-body",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-redundant-alt",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "image-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/image-alt?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": "img",
            "html": "<img height=\"40\" src=\"data:image/svg+xml;b...\">",
            "message": "Images must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element does not have an alt attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "621e74091cf6",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmark-one-main",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/landmark-one-main?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": "html",
            "html": "<html lang=\"en\" class=\"\">",
            "message": "Document should have one main landmark",
            "fixSummary": "Fix all of the following:\n  Document does not have a main landmark",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c3c81374d67b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-viewport",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-viewport?application=playwright",
            "impact": "moderate",
            "wcagSc": [
              "wcag2aa",
              "wcag144"
            ],
            "xpath": "meta[name=\"viewport\"]",
            "html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale = 1.0, maximum-scale=1.0, user-scalable=no\">",
            "message": "Zooming and scaling must not be disabled",
            "fixSummary": "Fix any of the following:\n  user-scalable=no on <meta> tag disables zooming on mobile devices",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "679ac1638caa",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "region",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".top-row",
            "html": "<div class=\"top-row\">",
            "message": "All page content should be contained by landmarks",
            "fixSummary": "Fix any of the following:\n  Some page content is not contained by landmarks",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "e4a957f005f6",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "region",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": "#full-width-content",
            "html": "<div id=\"full-width-content\">",
            "message": "All page content should be contained by landmarks",
            "fixSummary": "Fix any of the following:\n  Some page content is not contained by landmarks",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f47cea57fecc",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 129,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 5
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 87,
          "failed": 5,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/meta-viewport",
          "landmarks/landmark-main",
          "landmarks/region",
          "text-alternatives/img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/img-alt",
            "xpath": "div > img",
            "selector": "div > img",
            "html": "<img height=\"40\" src=\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNjQwIiBoZWlnaHQ9IjUyMCI+DQogPHRpdGxl...",
            "impact": "critical",
            "message": "Image element missing alt attribute.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "76b5083e0cd7",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/meta-viewport",
            "xpath": "head > meta[name=\"viewport\"]",
            "selector": "head > meta[name=\"viewport\"]",
            "html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale = 1.0, maximum-scale=1.0, user-scalable=no\">",
            "impact": "critical",
            "message": "Viewport disables user scaling (user-scalable=no). Remove this restriction.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ad3aba9cb00e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/meta-viewport",
            "xpath": "head > meta[name=\"viewport\"]",
            "selector": "head > meta[name=\"viewport\"]",
            "html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale = 1.0, maximum-scale=1.0, user-scalable=no\">",
            "impact": "critical",
            "message": "Viewport maximum-scale=1 restricts zooming. Set to at least 2 or remove.",
            "isDuplicate": true,
            "duplicateOf": "accesslint"
          },
          {
            "rule": "landmarks/landmark-main",
            "xpath": "html",
            "selector": "html",
            "html": "<html>",
            "impact": "moderate",
            "message": "Page has no main landmark.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6876fd6c1dfc",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "#full-width-content",
            "selector": "#full-width-content",
            "html": "<div id=\"full-width-content\">\n    <h1>Something went wrong?</h1>\n    <h2>Sorry for the inconvenience</h2>\n    <p></p><div class=\"cf-error-details cf-error-1016\">\n  <h1>Origin DNS error</h1>\n  <p>You'v...",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "82658d462a25",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 4,
        "duplicateFailedCount": 1,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 1
    },
    {
      "submittedUrl": "https://london.gov.uk/contact-renew",
      "finalUrl": "https://www.london.gov.uk/user/login?destination=/programmes-and-strategies/environment-and-climate-change/energy/renew-0/contact-renew",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Log in | London City Hall",
      "elapsedMs": 11587,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 235,
          "failed": 1,
          "cantTell": 1,
          "inapplicable": 44
        },
        "failedRules": [
          "region"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "frame-tested",
          "frame-title",
          "frame-title-unique",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "presentation-role-conflict",
          "region",
          "tabindex"
        ],
        "failures": [
          {
            "rule": "region",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": "iframe[title=\"reCAPTCHA\"]",
            "html": "<div class=\"rc-anchor-invisible-text\"><span>protected by <strong>reCAPTCHA</strong></span><div class=\"rc-anchor-pt\"></div></div>",
            "message": "All page content should be contained by landmarks",
            "fixSummary": "Fix any of the following:\n  Some page content is not contained by landmarks",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1b07c968df6f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 281,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 91,
          "failed": 1,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "landmarks/region"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f6e38cb09ee1",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 1,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/could-you-please-confirm-if-we-need-apply-map-quality-mark-construction-provision-if-it-already",
      "finalUrl": "https://www.london.gov.uk/could-you-please-confirm-if-we-need-apply-map-quality-mark-construction-provision-if-it-already",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Could you please confirm if we need to apply for a MAP Quality Mark for Construction provision if it is already under the Mayor’s Construction Academy? Or does the Mayor’s Construction Academy provide the same status as the MAP Quality Mark? | London City Hall",
      "elapsedMs": 11180,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1172,
          "failed": 3,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "heading-order",
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "heading-order",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/heading-order?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".u-space-y-4 > h3",
            "html": "<h3 class=\"h3\">\n                    Related questions\n            </h3>",
            "message": "Heading levels should only increase by one",
            "fixSummary": "Fix any of the following:\n  Heading order invalid",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "071e04455f7f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "heading-order",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/heading-order?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": "h5",
            "html": "<h5 class=\"h5\">\n                    General\n            </h5>",
            "message": "Heading levels should only increase by one",
            "fixSummary": "Fix any of the following:\n  Heading order invalid",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "568192fb0abc",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "48b8bb324d66",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1219,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 3
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 84,
          "failed": 8,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "navigable/heading-order",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0c677d8400ab",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "dd52b1923ede",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "bea0c74d2e63",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "navigable/heading-order",
            "xpath": "div:nth-of-type(2) > h3",
            "selector": "div:nth-of-type(2) > h3",
            "html": "<h3 class=\"h3\">\n                    Related questions\n            </h3>",
            "impact": "moderate",
            "message": "Heading level 3 skipped from level 1. Use h2 instead.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6a7961173d71",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "navigable/heading-order",
            "xpath": "div > h5",
            "selector": "div > h5",
            "html": "<h5 class=\"h5\">\n                    General\n            </h5>",
            "impact": "moderate",
            "message": "Heading level 5 skipped from level 3. Use h4 instead.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "064f171142ce",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "432f49c0aab4",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ea63729f377d",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "526eda71b640",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 8,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/covid-19-resources-and-services-your-language",
      "finalUrl": "https://www.london.gov.uk/covid-19-resources-and-services-your-language",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "COVID-19 resources and services in your language | London City Hall",
      "elapsedMs": 15307,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1701,
          "failed": 2,
          "cantTell": 2,
          "inapplicable": 40
        },
        "failedRules": [
          "heading-order",
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "input-button-name",
          "label",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "heading-order",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/heading-order?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".h5.u-bg-off-white.u-px-5",
            "html": "<h3 class=\"u-py-3 u-px-5 u-bg-off-white h5\">\n                    Filter results\n            </h3>",
            "message": "Heading levels should only increase by one",
            "fixSummary": "Fix any of the following:\n  Heading order invalid",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "48ce28c96c50",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6c6993abff5e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1745,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 84,
          "failed": 8,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "navigable/heading-order",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0da9be0ab95b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ce8575ed128d",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5fe46937dcdb",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "navigable/heading-order",
            "xpath": "div:nth-of-type(2) > div > div > div:nth-of-type(1) > h3",
            "selector": "div:nth-of-type(2) > div > div > div:nth-of-type(1) > h3",
            "html": "<h3 class=\"u-py-3 u-px-5 u-bg-off-white h5\">\n                    Filter results\n            </h3>",
            "impact": "moderate",
            "message": "Heading level 3 skipped from level 1. Use h2 instead.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c74ef0ad90a5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "cc355176ba48",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "#drupal-live-announce",
            "selector": "#drupal-live-announce",
            "html": "<div id=\"drupal-live-announce\" class=\"visually-hidden\" aria-live=\"polite\" aria-busy=\"false\">Showing 1-10 of 705 results found.</div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1be276a4dd12",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "20ae351d2279",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "af7849c81165",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 8,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/defending-londons-postal-service",
      "finalUrl": "https://www.london.gov.uk/defending-londons-postal-service",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Defending London&#039;s Postal Service | London City Hall",
      "elapsedMs": 10761,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1034,
          "failed": 4,
          "cantTell": 4,
          "inapplicable": 42
        },
        "failedRules": [
          "link-in-text-block",
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "link-in-text-block",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/link-in-text-block?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag141"
            ],
            "xpath": "a[name=\"_ftnref3\"]",
            "html": "<a href=\"https://www.london.g...\" name=\"_ftnref3\" style=\"margin: 0px; padding...\" title=\"\">",
            "message": "Links must be distinguishable without relying on color",
            "fixSummary": "Fix any of the following:\n  The link has insufficient color contrast of 2:1 with the surrounding text. (Minimum contrast is 3:1, link text: #255faf, surrounding text: #333333)\n  The link has no styling (such as underline) to distinguish it from the surrounding text",
            "relatedPaths": [
              ".field--name-field-c-m-motion-detail > p:nth-child(2)"
            ],
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f008e13fa7f1",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "link-in-text-block",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/link-in-text-block?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag141"
            ],
            "xpath": "a[name=\"_ftnref4\"]",
            "html": "<a href=\"https://www.london.g...\" name=\"_ftnref4\" style=\"margin: 0px; padding...\" title=\"\">",
            "message": "Links must be distinguishable without relying on color",
            "fixSummary": "Fix any of the following:\n  The link has insufficient color contrast of 2:1 with the surrounding text. (Minimum contrast is 3:1, link text: #255faf, surrounding text: #333333)\n  The link has no styling (such as underline) to distinguish it from the surrounding text",
            "relatedPaths": [
              ".field--name-field-c-m-motion-detail > p:nth-child(2)"
            ],
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5fca79a946a2",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "link-in-text-block",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/link-in-text-block?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag141"
            ],
            "xpath": "a[name=\"_ftn4\"]",
            "html": "<a href=\"https://www.london.g...\" name=\"_ftn4\" style=\"margin: 0px; padding...\" title=\"\">",
            "message": "Links must be distinguishable without relying on color",
            "fixSummary": "Fix any of the following:\n  The link has insufficient color contrast of 2:1 with the surrounding text. (Minimum contrast is 3:1, link text: #255faf, surrounding text: #333333)\n  The link has no styling (such as underline) to distinguish it from the surrounding text",
            "relatedPaths": [
              "p:nth-child(7)"
            ],
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "e7d3cc8051e4",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5ffd04ae01a4",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1084,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 4
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 81,
          "failed": 11,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "distinguishable/link-in-text-block",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "579036ecbccf",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/link-in-text-block",
            "xpath": "p:nth-of-type(1) > a[name=\"_ftnref1\"]",
            "selector": "p:nth-of-type(1) > a[name=\"_ftnref1\"]",
            "html": "<a href=\"https://www.london.gov.uk/mayor-assembly/london-assembly/meetings-whole-assembly/motions/defending-londons-postal-service#_ftn1\" name=\"_ftnref1\" style=\"margin: 0px; padding: 0px; border: 0px;...",
            "impact": "serious",
            "message": "Link in text block is not visually distinguishable from surrounding text. Add a non-color visual indicator such as an underline or border.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "951e16e41f39",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/link-in-text-block",
            "xpath": "p:nth-of-type(1) > a[name=\"_ftnref2\"]",
            "selector": "p:nth-of-type(1) > a[name=\"_ftnref2\"]",
            "html": "<a href=\"https://www.london.gov.uk/mayor-assembly/london-assembly/meetings-whole-assembly/motions/defending-londons-postal-service#_ftn2\" name=\"_ftnref2\" style=\"margin: 0px; padding: 0px; border: 0px;...",
            "impact": "serious",
            "message": "Link in text block is not visually distinguishable from surrounding text. Add a non-color visual indicator such as an underline or border.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "38ee9f136d1e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/link-in-text-block",
            "xpath": "p:nth-of-type(2) > a[name=\"_ftnref3\"]",
            "selector": "p:nth-of-type(2) > a[name=\"_ftnref3\"]",
            "html": "<a href=\"https://www.london.gov.uk/mayor-assembly/london-assembly/meetings-whole-assembly/motions/defending-londons-postal-service#_ftn3\" name=\"_ftnref3\" style=\"margin: 0px; padding: 0px; border: 0px;...",
            "impact": "serious",
            "message": "Link in text block is not visually distinguishable from surrounding text. Add a non-color visual indicator such as an underline or border.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ab6aa97e84bd",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/link-in-text-block",
            "xpath": "p:nth-of-type(2) > a[name=\"_ftnref4\"]",
            "selector": "p:nth-of-type(2) > a[name=\"_ftnref4\"]",
            "html": "<a href=\"https://www.london.gov.uk/mayor-assembly/london-assembly/meetings-whole-assembly/motions/defending-londons-postal-service#_ftn4\" name=\"_ftnref4\" style=\"margin: 0px; padding: 0px; border: 0px;...",
            "impact": "serious",
            "message": "Link in text block is not visually distinguishable from surrounding text. Add a non-color visual indicator such as an underline or border.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9c5e693ca1e9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/link-in-text-block",
            "xpath": "p:nth-of-type(7) > a[name=\"_ftn4\"]",
            "selector": "p:nth-of-type(7) > a[name=\"_ftn4\"]",
            "html": "<a href=\"https://www.london.gov.uk/mayor-assembly/london-assembly/meetings-whole-assembly/motions/defending-londons-postal-service#_ftnref4\" name=\"_ftn4\" style=\"margin: 0px; padding: 0px; border: 0px;...",
            "impact": "serious",
            "message": "Link in text block is not visually distinguishable from surrounding text. Add a non-color visual indicator such as an underline or border.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "198bcbc72b25",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ebddc680935a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3baafc7d93f6",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8dcb9c77dc71",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "fddbb551051a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3e22676ab71b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 11,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/download-full-report",
      "finalUrl": "https://www.london.gov.uk/sites/default/files/gla_smartlondon_report_web_3.pdf",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "application/pdf",
      "pageTitle": null,
      "elapsedMs": 627,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": false,
        "error": "Skipped (non-HTML content type: application/pdf)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (non-HTML content type: application/pdf)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": false,
        "error": "Skipped (non-HTML content type: application/pdf)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (non-HTML content type: application/pdf)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/investigation-request-metropolitan-police-actions-against-university-london-students",
      "finalUrl": "https://www.london.gov.uk/investigation-request-metropolitan-police-actions-against-university-london-students",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Investigation request into Metropolitan Police actions against University of London Students | London City Hall",
      "elapsedMs": 10739,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 926,
          "failed": 1,
          "cantTell": 1,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "aedb37f40e14",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 970,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3d062e1b5c4e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a6a36fcf48ed",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "eddec4d2222c",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "972e94240a62",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f3c1012f04c0",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "134ceac76706",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/lfb-reporting",
      "finalUrl": "https://data.london.gov.uk/dataset/lfb-financial-and-performance-reporting-2019-20",
      "redirected": true,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26705,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f7939d33b1fd",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6d874e904b18",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d65f2f94db98",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "e0d1c07010b3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/log-or-register",
      "finalUrl": "https://www.london.gov.uk/programmes-and-strategies/environment-and-climate-change/pollution-and-air-quality/non-road-mobile-machinery-register/login",
      "redirected": true,
      "statusCode": 404,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Sorry - page not found | London City Hall",
      "elapsedMs": 10669,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 830,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 43
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7e2746d2aa71",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 876,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a313428185a3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "98123d2f31c2",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "deb466b4cc05",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d0a8d1de6c7a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "bd7324a80cc3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0c3792828f7e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/national-careers-service",
      "finalUrl": "https://nationalcareers.service.gov.uk/",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=utf-8",
      "pageTitle": "Careers advice - job profiles, information and resources | National Careers Service",
      "elapsedMs": 11828,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 597,
          "failed": 2,
          "cantTell": 26,
          "inapplicable": 37
        },
        "failedRules": [
          "aria-prohibited-attr",
          "button-name"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-text",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "frame-tested",
          "frame-title",
          "frame-title-unique",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "presentation-role-conflict",
          "region",
          "scrollable-region-focusable",
          "select-name",
          "summary-name",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "aria-prohibited-attr",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag412"
            ],
            "xpath": "#homepagevideo",
            "html": "<div class=\"html5-video-player ytp-hide-controls ytp-exp-bottom-control-flexbox ytp-modern-caption ytp-livebadge-color unstarted-mode\" tabindex=\"\" id=\"movie_player\" data-version=\"/s/player/f4c47414/player_embed.vflset/en_US/base.js\" aria-label=\"YouTube Video Player\">",
            "message": "Elements must only use permitted ARIA attributes",
            "fixSummary": "Fix all of the following:\n  aria-label attribute cannot be used on a div with no valid role attribute.",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6f786a20f53d",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "button-name",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/button-name?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag412"
            ],
            "xpath": "#homepagevideo",
            "html": "<button class=\"ytmVideoInfoLink ytmVideoInfoChannelAvatar\"><img alt=\"thumbnail-image\" class=\"ytCoreImageHost ytmVideoInfoChannelLogo ytCoreImageFillParentHeight ytCoreImageFillParentWidth ytCoreImageContentModeScaleAspectFill\"></button>",
            "message": "Buttons must have discernible text",
            "fixSummary": "Fix any of the following:\n  Element does not have inner text that is visible to screen readers\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": true,
            "duplicateOf": "axe"
          }
        ],
        "outcomeCount": 662,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 1,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": false,
        "error": "page.addScriptTag: Executing inline script violates the following Content Security Policy directive 'script-src 'self' 'nonce-Rl1oPCo2eLIFow+5WufJNyTM' https://az416426.vo.msecnd.net/scripts/ www.google-analytics.com sc-static.net tr.snapchat.com connect.facebook.net www.facebook.com www.googletagmanager.com https://www.youtube.com https://www.google-analytics.com https://optimize.google.com https://*.clarity.ms https://c.bing.com https://www.googleoptimize.com https://webchat.nationalcareers.service.gov.uk/js/ https://webchat.nationalcareers.service.gov.uk/widget/js/ https://cdn.nationalcareers.service.gov.uk/nationalcareers_toolkit/js/ js.monitor.azure.com js.cdn.applicationinsights.io js.cdn.monitor.azure.com js0.cdn.applicationinsights.io js0.cdn.monitor.azure.com js2.cdn.applicationinsights.io js2.cdn.monitor.azure.com az416426.vo.msecnd.net 'sha256-PX0NHl6Cxq+jkSkG0tKHGB2UQCETZvGoQJFkkS+r/CA=' 'sha256-0mteNZbri+M779hwVaAYTYMOhgTdy1zrlTNxhdCX/xI=' 'sha256-QKMkF+jB+fIC9cewi/8ynEstaNDOT/2hvHZWI3hggnU=' 'sha256-rFUQKswfgkRmkrBc1YzpbIUN+ePSPWHdSZX6BmQ2z+E=' 'sha256-l1eTVSK8DTnK8+yloud7wZUqFrI0atVo6VlC6PJvYaQ=' 'sha256-lL/kILkNOhT9vW0QtSSgm0PwfBFV85BwRQotdY9dujk=' 'sha256-OzxeCM8TJjksWkec74qsw2e3+vmC1ifof7TzRHngpoE=' 'sha256-sQraM3b+lwZqC1Krr12vIz4t3nESs+z7z4prOEzSlIE=' 'sha256-zRPpqMVfkbX+TyKLBirGKv/GPOCVQsfK905KlU7AQYE=' 'sha256-2KDikOjDrH3WmIjT7BljbILViwBEnbb4qYhbzelzcUk=' 'sha256-WOtx1FjGn3btNZ62hMqOlsSAJOOAVSgoE71cvFJ8rvY=' 'sha256-AG33YdCnVr7TrW7POTo6HW6msAY2iZ6ddqP+CtEo8KQ=''. Either the 'unsafe-inline' keyword, a hash ('sha256-iLB/qGn2fKTfTYFKNKTMDW4mWOq+TwpFIWKi5guSmvk='), or a nonce ('nonce-...') is required to enable inline execution. The action has been blocked.",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 1
    },
    {
      "submittedUrl": "https://london.gov.uk/pay-it-forward",
      "finalUrl": "https://www.london.gov.uk/programmes-strategies/health-and-wellbeing/coronavirus-updates-and-guidance",
      "redirected": true,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 27057,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d97b0f3164e8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f4e46ee14a7a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "084fd9980f10",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b1311044cbf2",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/programmes-and-strategies/environment-and-climate-change/pollution-and-air-quality/nrmm/accessibility-statement-non-road-mobile-machinery",
      "finalUrl": "https://www.london.gov.uk/programmes-and-strategies/environment-and-climate-change/pollution-and-air-quality/nrmm/accessibility-statement-non-road-mobile-machinery",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Accessibility statement for Non-Road Mobile Machinery | London City Hall",
      "elapsedMs": 11093,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1423,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1322bcbcb0e9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1468,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2c0045ee8efa",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "842b6d953cc0",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c31aa6eac4b1",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c4538a692bde",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f5d2026fcbb2",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "392df0cdaf44",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/programmes-strategies/arts-and-culture/find-out-whats-useful-culture-websites",
      "finalUrl": "https://london.gov.uk/programmes-strategies/arts-and-culture/find-out-whats-useful-culture-websites",
      "redirected": false,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26639,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d8eea5e16788",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d02a4d91a864",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "10f0fc6c47b9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "fe5cdf45530a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/register",
      "finalUrl": "https://www.london.gov.uk/healthy-early-years-and-healthy-schools-london/",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html",
      "pageTitle": "HEYL and HSL",
      "elapsedMs": 12002,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 393,
          "failed": 2,
          "cantTell": 1,
          "inapplicable": 40
        },
        "failedRules": [
          "color-contrast"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "autocomplete-valid",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "scrollable-region-focusable",
          "skip-link",
          "svg-img-alt",
          "tabindex"
        ],
        "failures": [
          {
            "rule": "color-contrast",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2aa",
              "wcag143"
            ],
            "xpath": "p > p:nth-child(1)",
            "html": "<p>We use some essential cookies to make this website work.</p>",
            "message": "Elements must meet minimum color contrast ratio thresholds",
            "fixSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.01 (foreground color: #787878, background color: #f4f4f4, font size: 9.7pt (12.96px), font weight: normal). Expected contrast ratio of 4.5:1",
            "relatedPaths": [
              "#ccc-notify"
            ],
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "13cd869d4983",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "color-contrast",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2aa",
              "wcag143"
            ],
            "xpath": "p:nth-child(3)",
            "html": "<p>We also use cookies set by other sites to help us deliver content from their services.</p>",
            "message": "Elements must meet minimum color contrast ratio thresholds",
            "fixSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.01 (foreground color: #787878, background color: #f4f4f4, font size: 9.7pt (12.96px), font weight: normal). Expected contrast ratio of 4.5:1",
            "relatedPaths": [
              "#ccc-notify"
            ],
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "cd96378899cc",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 436,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 85,
          "failed": 7,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "p > p:nth-of-type(1)",
            "selector": "p > p:nth-of-type(1)",
            "html": "<p>We use some essential cookies to make this website work.</p>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.01:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "deb14a0dd08c",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "p > p:nth-of-type(2)",
            "selector": "p > p:nth-of-type(2)",
            "html": "<p>We’d like to set additional cookies to understand how you use london.gov.uk, remember your settings and improve government services.</p>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.01:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9b7f62205dd8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "p > p:nth-of-type(3)",
            "selector": "p > p:nth-of-type(3)",
            "html": "<p>We also use cookies set by other sites to help us deliver content from their services.</p>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.01:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5a598e8b3091",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://twitter.com/mayoroflondon\"] > div > svg > title",
            "selector": "a[href=\"https://twitter.com/mayoroflondon\"] > div > svg > title",
            "html": "<title>Twitter icon</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 2.83:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d01765df3e6f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook icon</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9680c70ddf5c",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube icon</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "bad7a78888d9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(2)",
            "selector": "body > div:nth-of-type(2)",
            "html": "<div class=\"skip-to-content-wrapper\"><a id=\"skip-to-content\" href=\"#main-content\" class=\"button-typography absolute left-0 -top-full focus:top-0 transition-all z-1001 text-primary-foreground bg-primar...",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0cc0ff340810",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 7,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/register-your-business",
      "finalUrl": "https://www.london.gov.uk/programmes-strategies/education-and-youth/preparing-young-people-workplace/register-your-interest-businesses",
      "redirected": true,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26713,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2c0c5450c569",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8d6a347fce54",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f9fc6215416e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1955a390fbd9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/register-your-interest",
      "finalUrl": "https://www.london.gov.uk/programmes-strategies/health-and-wellbeing/london-healthy-workplace-award/about-london-healthy-workplace-award/register-your-interest-london-healthy-workplace-awards",
      "redirected": true,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26672,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1fbcd5d7167f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a6c2b407d358",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "66a80c9744ee",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c1dc43514953",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/register-your-interest-1",
      "finalUrl": "https://www.london.gov.uk/programmes-strategies/jobs-and-skills/mayors-construction-academy/register-interest",
      "redirected": true,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26736,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "dadb70376b91",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "98d7690edbde",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c8ab88456b81",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7a386cf342e0",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/register-your-interest-2",
      "finalUrl": "https://www.london.gov.uk/programmes-strategies/health-and-wellbeing/london-healthy-workplace-award/about-london-healthy-workplace-award/register-your-interest-london-healthy-workplace-awards",
      "redirected": true,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26870,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1fbcd5d7167f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a6c2b407d358",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "66a80c9744ee",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c1dc43514953",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/register-your-school",
      "finalUrl": "https://www.london.gov.uk/programmes-strategies/education-and-youth/preparing-young-people-workplace/register-your-interest-schools",
      "redirected": true,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 27093,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9b0caeb7474f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ddc3735d0e37",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0c1670f45079",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c59879b8dceb",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/renew-programme",
      "finalUrl": "https://www.london.gov.uk/programmes-and-strategies/environment-and-climate-change/energy/renew-0",
      "redirected": true,
      "statusCode": 404,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Sorry - page not found | London City Hall",
      "elapsedMs": 10658,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 830,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 43
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "012726b32805",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 876,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "525e32dd5247",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "886ace45f2d5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3c0bbbbc4cab",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "84a213252844",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a42cd146f274",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4c6f0f31ea94",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/report-landlord-or-agent",
      "finalUrl": "https://www.london.gov.uk/programmes-strategies/housing-and-land/renting-home/report-rogue-landlord-or-agent",
      "redirected": true,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 26903,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0c5ec7608480",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "841768f56360",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "612d116c47a9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "bc7068817e33",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/reporting-hate-crime",
      "finalUrl": "https://www.london.gov.uk/programmes-strategies/mayors-office-policing-and-crime-mopac/mopac-guidance-and-resources/reporting-hate-crime",
      "redirected": true,
      "statusCode": 403,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Just a moment...",
      "elapsedMs": 27044,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 116,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 128
        },
        "failedRules": [
          "meta-refresh"
        ],
        "passedRules": [
          "aria-allowed-role",
          "aria-deprecated-role",
          "aria-hidden-body",
          "aria-required-attr",
          "aria-roles",
          "avoid-inline-spacing",
          "bypass",
          "color-contrast",
          "document-title",
          "empty-heading",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "meta-viewport",
          "meta-viewport-large",
          "page-has-heading-one",
          "region"
        ],
        "failures": [
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f6e4bab03f68",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "meta-refresh",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
            "impact": "critical",
            "wcagSc": [
              "wcag2a",
              "wcag221"
            ],
            "xpath": "meta[http-equiv=\"refresh\"]",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "207576df7f13",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 246,
        "darkModeScanned": true,
        "mediaQuerySupport": {
          "darkMode": true,
          "reducedMotion": false,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 90,
          "failed": 2,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "enough-time/meta-refresh",
          "enough-time/meta-refresh-no-exception"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "enough-time/meta-refresh",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ebc075234c11",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "enough-time/meta-refresh-no-exception",
            "xpath": "head > meta:nth-of-type(5)",
            "selector": "head > meta:nth-of-type(5)",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "impact": "critical",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5a5870e1453c",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 2,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/reports-and-toolkits",
      "finalUrl": "https://www.london.gov.uk/publications/reports-toolkits-and-best-practice-guides",
      "redirected": true,
      "statusCode": 404,
      "ok": false,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Sorry - page not found | London City Hall",
      "elapsedMs": 10891,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 830,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 43
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "50a84c4a639a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 876,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d17579b5dab6",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "dd646ab7c507",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "86b03f28fa19",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a1243458f623",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "43e97025ecb5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "069e377fe435",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/request-halt-tfl-consultation-bus-stops-bromley",
      "finalUrl": "https://www.london.gov.uk/request-halt-tfl-consultation-bus-stops-bromley",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Request to halt TfL consultation on bus stops in Bromley | London City Hall",
      "elapsedMs": 10686,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 924,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "98ec3562504f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 969,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "daa579874cc1",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c97189909a67",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0b04b475bec8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "76db73f1c123",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "357dac64e727",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "e74d03839401",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/request-increase-frequency-481-bus",
      "finalUrl": "https://www.london.gov.uk/request-increase-frequency-481-bus",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Request to increase frequency of 481 bus | London City Hall",
      "elapsedMs": 10570,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 920,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8a86e5071f8f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 965,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ef95738d5a30",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "aab6a8be25c5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "94584e461130",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c0a9189b3d99",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "bfb924308794",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "75bb435e77ec",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/request-increase-number-bus-countdown-indicators-greyhound-lane-and-streatham-vale",
      "finalUrl": "https://www.london.gov.uk/request-increase-number-bus-countdown-indicators-greyhound-lane-and-streatham-vale",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Request to increase number of bus countdown indicators on Greyhound Lane and Streatham Vale | London City Hall",
      "elapsedMs": 10725,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 929,
          "failed": 1,
          "cantTell": 1,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c37b19092851",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 973,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a8c430558912",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2c5446501b32",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "246185c9d65f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9ddb268e0bd4",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "290e1ebf0dae",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "fec501cb2650",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/request-increased-police-numbers-and-local-safer-neighbourhood-teams",
      "finalUrl": "https://www.london.gov.uk/request-increased-police-numbers-and-local-safer-neighbourhood-teams",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Request for increased police numbers and local safer neighbourhood teams | London City Hall",
      "elapsedMs": 10805,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 924,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "90e0af884b32",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 969,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "30391957b2b5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "80455cbfb5d6",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c88e164eeaca",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7dcf4675ac38",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3054951cf5ca",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0ebf2ea6327a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/request-pedestrian-crossing-tulse-hill-and-brixton-water-junction",
      "finalUrl": "https://www.london.gov.uk/request-pedestrian-crossing-tulse-hill-and-brixton-water-junction",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Request for a pedestrian crossing at Tulse Hill and Brixton Water junction | London City Hall",
      "elapsedMs": 10722,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 922,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "828e5e465405",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 967,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3035d1d0af74",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5f268e95bce9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "12a1efbba7fd",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9d58a7acea90",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "45c2a4fbf056",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "39ec942f0bb5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/request-reduce-speed-limit-roehampton-vale",
      "finalUrl": "https://www.london.gov.uk/request-reduce-speed-limit-roehampton-vale",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Request to reduce speed limit in Roehampton Vale | London City Hall",
      "elapsedMs": 10820,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 922,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6712aeff6abb",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 967,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1eda568b6a3e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0721a16a4683",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "32931aefef8f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ab025025520a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ac89e0d370cb",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "24fdaaa9c57c",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/request-reduce-speed-limit-roehampton-vale-0",
      "finalUrl": "https://www.london.gov.uk/request-reduce-speed-limit-roehampton-vale-0",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Request to reduce speed limit in Roehampton Vale | London City Hall",
      "elapsedMs": 11742,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 922,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f4789b6f9ad3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 967,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5452edd884bb",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5766c4680531",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "17cdc1085e86",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "bad736e4501e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1e0b57bd3c88",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "463909360ddf",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/request-replacement-bus-shelter-highbury-grange",
      "finalUrl": "https://www.london.gov.uk/request-replacement-bus-shelter-highbury-grange",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Request for replacement bus shelter in Highbury Grange | London City Hall",
      "elapsedMs": 10607,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 924,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "42615acc30db",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 969,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8c7642f0b3a8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6259c7956da9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "266ea1db083e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ab9362d991f2",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5b687ab4d62c",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "950c7b307f1c",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/request-restore-lost-southwark-police-officers",
      "finalUrl": "https://www.london.gov.uk/request-restore-lost-southwark-police-officers",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Request to restore lost Southwark Police Officers | London City Hall",
      "elapsedMs": 10634,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 930,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3f2f68f5cb58",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 975,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "e55137bef0d4",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ad306ec4bbf6",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9f8ff42510cf",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d8c2124e2fdb",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3ef9fc049579",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "67741d266e5a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/request-review-how-control-vehicle-speeds-clapham-common-area",
      "finalUrl": "https://www.london.gov.uk/request-review-how-control-vehicle-speeds-clapham-common-area",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Request for review of how to control vehicle speeds in Clapham Common area | London City Hall",
      "elapsedMs": 10774,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 928,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ba5d79b778f3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 973,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "47c36d3bc28a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "104178a12660",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "781fff881d24",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a56a53aec0f6",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "e40b17e65205",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9b391e33c032",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/request-stop-conversion-premier-house",
      "finalUrl": "https://www.london.gov.uk/request-stop-conversion-premier-house",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Request to stop conversion of Premier House | London City Hall",
      "elapsedMs": 10781,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 922,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "157d0cd70eec",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 967,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c1562a93aed5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b0f9e071b7d8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "e9a9cf95e11c",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b6982f4361e0",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5ee1ee1b1dc4",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5c3a04f5919f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/request-traffic-lights-charterhouse-street-junction",
      "finalUrl": "https://www.london.gov.uk/request-traffic-lights-charterhouse-street-junction",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Request for traffic lights at Charterhouse Street junction | London City Hall",
      "elapsedMs": 10739,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 922,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ed2835623904",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 967,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ae4498967c2f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4db5e026ac55",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "20089836ffa8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c20d8b10a602",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4a19ffd2b4be",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "966c6f4a6339",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/request-traffic-safety-measures-and-around-redbridge-roundabout",
      "finalUrl": "https://www.london.gov.uk/request-traffic-safety-measures-and-around-redbridge-roundabout",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Request for traffic safety measures in and around Redbridge roundabout | London City Hall",
      "elapsedMs": 10723,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 934,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "712f7a3821c8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 979,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4b4ba595611b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6cf5ec55256b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f0b6ba3358d0",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b25e6527c421",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "52ec95493ec6",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "baae07f8d87b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/safer-roads-request-chiswick",
      "finalUrl": "https://www.london.gov.uk/safer-roads-request-chiswick",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Safer roads request for Chiswick | London City Hall",
      "elapsedMs": 10753,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 932,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0a5ef4b4d0c4",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 977,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "e1b1af752756",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "71dc308ecf26",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a22ff255ed67",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ca9c8ad9ff92",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0793a66bc9d9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9673026f6b88",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/step-free-access-rayners-lane-tube-station-request",
      "finalUrl": "https://www.london.gov.uk/step-free-access-rayners-lane-tube-station-request",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Step-free access at Rayners Lane Tube Station request | London City Hall",
      "elapsedMs": 11714,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 934,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2209064fced9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 979,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4c5414157753",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "829a707385d8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a60dfa87ad44",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f2daee93d0d4",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9a01a43a008f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "80260d9a2a9f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/traffic-congestion-report",
      "finalUrl": "https://www.london.gov.uk/who-we-are/what-london-assembly-does/london-assembly-publications/london-stalling-reducing-traffic-congestion",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "London Stalling: Reducing Traffic Congestion in London | London City Hall",
      "elapsedMs": 11393,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1102,
          "failed": 1,
          "cantTell": 1,
          "inapplicable": 43
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "08497c17d60f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1147,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "19532d95da3b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "509103706100",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3463dce178c8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "320f31edc7f0",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "403b4e474e2d",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "18531435a983",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/traffic-review-request-junction-a20-and-a205-following-safety-concerns",
      "finalUrl": "https://www.london.gov.uk/traffic-review-request-junction-a20-and-a205-following-safety-concerns",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Traffic review request for the junction of the A20 and A205 following safety concerns | London City Hall",
      "elapsedMs": 10696,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 946,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "240d34ac3034",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 991,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8465df880c7f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "e94e606020b5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0923ca3def3e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4b6c434fe45b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1369d5beb550",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1b622f0ad5f3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/who-we-are/city-halls-buildings-and-squares/how-find-city-hall",
      "finalUrl": "https://www.london.gov.uk/who-we-are/city-halls-buildings-and-squares/how-find-city-hall",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "How to find City Hall | London City Hall",
      "elapsedMs": 11471,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1080,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 40
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "frame-tested",
          "frame-title",
          "frame-title-unique",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7db66737fd01",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1123,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 85,
          "failed": 7,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "93d22e65a295",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "div:nth-of-type(2) > h1",
            "selector": "div:nth-of-type(2) > h1",
            "html": "<h1 class=\"h2\">\n                    How to find City Hall\n            </h1>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 1:1 (required 3:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0aaffab2a5b5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2d6036f320d7",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "e7a4cd8b8711",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a7fcbb722b26",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d5e109006899",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0bffee90fff9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 7,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/boris-johnson/register-of-interests",
      "finalUrl": "https://www.london.gov.uk/boris-johnson/register-of-interests",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Boris Johnson (past staff) - Register of interests | London City Hall",
      "elapsedMs": 11756,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1179,
          "failed": 1,
          "cantTell": 1,
          "inapplicable": 43
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7c2b1832cfc2",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1224,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "63edf2387444",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8a52d6bca1d8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d16c1b5f6ec5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9f6a9a32dc01",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2b14cb88f5c7",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a9342355792e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/city-hall-blog/applying-government-service-standard-london-boroughs",
      "finalUrl": "https://www.london.gov.uk/city-hall-blog/applying-government-service-standard-london-boroughs",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Applying the Government Service Standard in London boroughs | London City Hall",
      "elapsedMs": 11049,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1143,
          "failed": 1,
          "cantTell": 1,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "69a20d203958",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1187,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c4f48b2e6e12",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "886d59c67c6d",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d84916129460",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7f4e37ef59eb",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "44eb2a085002",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f9e0108b5668",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/city-hall-blog/digital-service-standard-local-government",
      "finalUrl": "https://www.london.gov.uk/city-hall-blog/digital-service-standard-local-government",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Digital Service Standard for Local Government | London City Hall",
      "elapsedMs": 11422,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1019,
          "failed": 2,
          "cantTell": 1,
          "inapplicable": 42
        },
        "failedRules": [
          "heading-order",
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "heading-order",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/heading-order?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": "#digital-service-design-in-central-government",
            "html": "<h3 id=\"digital-service-design-in-central-government\">Digital Service Design in central government</h3>",
            "message": "Heading levels should only increase by one",
            "fixSummary": "Fix any of the following:\n  Heading order invalid",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d9c3cfdd8c0a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5f196bf2a0ae",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1064,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 85,
          "failed": 7,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "navigable/heading-order",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5675352fe5b6",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9d3cfdb7bdfa",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "03ead29d87a5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "navigable/heading-order",
            "xpath": "#digital-service-design-in-central-government",
            "selector": "#digital-service-design-in-central-government",
            "html": "<h3 id=\"digital-service-design-in-central-government\">Digital Service Design in central government</h3>",
            "impact": "moderate",
            "message": "Heading level 3 skipped from level 1. Use h2 instead.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6263a96188eb",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "60b411eea1a6",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "90604a872dde",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f518da763ef5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 7,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/city-hall-blog/grenfell-tower-national-memorial-service",
      "finalUrl": "https://www.london.gov.uk/city-hall-blog/grenfell-tower-national-memorial-service",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Grenfell Tower National Memorial service | London City Hall",
      "elapsedMs": 11176,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 955,
          "failed": 1,
          "cantTell": 1,
          "inapplicable": 43
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "64a509f1d472",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1000,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "226ab6220003",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "262966120313",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "31f07ea3a1a8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b74ca3df8ae6",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3e90f90df2cb",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a94fd67ced3b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/city-hall-blog/how-register-covid-summer-food-fund",
      "finalUrl": "https://www.london.gov.uk/city-hall-blog/how-register-covid-summer-food-fund",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "How to register for the COVID Summer Food Fund | London City Hall",
      "elapsedMs": 10629,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1103,
          "failed": 1,
          "cantTell": 1,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5b5a416b2337",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1147,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b416a80b5368",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "275e0493520d",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7ca315e4d976",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d326212d8d4c",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "657d1b4a5bed",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2fe369a7c859",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/city-hall-blog/im-committed-improving-mental-health-services-london",
      "finalUrl": "https://www.london.gov.uk/city-hall-blog/im-committed-improving-mental-health-services-london",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "I’m committed to improving mental health services in London | London City Hall",
      "elapsedMs": 10623,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 951,
          "failed": 1,
          "cantTell": 1,
          "inapplicable": 43
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "bab4f78cb2ae",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 996,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7a9c5b6d3e06",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8c80f0971252",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "bbc55875de22",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "66a723021631",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "94234a7743c4",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "85f63e1ce4b3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/content/london-accessible-housing-register",
      "finalUrl": "https://www.london.gov.uk/content/london-accessible-housing-register",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "The London Accessible Housing Register | London City Hall",
      "elapsedMs": 10632,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 933,
          "failed": 1,
          "cantTell": 1,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "946065338114",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 977,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d45b943054fe",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "fd4ffd1d9d52",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8e8228945617",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "10fd9d96be86",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "68bd59f6921a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a261d2ba2d75",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/events/77-memorial-service-2023",
      "finalUrl": "https://www.london.gov.uk/events/77-memorial-service-2023",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "7/7 Memorial Service 2023 | London City Hall",
      "elapsedMs": 11146,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1109,
          "failed": 2,
          "cantTell": 2,
          "inapplicable": 41
        },
        "failedRules": [
          "landmark-unique",
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "presentation-role-conflict",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "landmark-unique",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/landmark-unique?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".lg\\:u-col-span-8 > section",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">",
            "message": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination",
            "fixSummary": "Fix any of the following:\n  The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable",
            "relatedPaths": [
              ".jump_links > section"
            ],
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b138cb3be1c5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "e31817220d28",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1154,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 84,
          "failed": 8,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "labels-and-names/duplicate-id-aria",
          "landmarks/landmark-unique",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "eae2b7d21813",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "43be501a9784",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "bb377b8e8152",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/landmark-unique",
            "xpath": "div:nth-of-type(2) > div > section",
            "selector": "div:nth-of-type(2) > div > section",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">\n      \n  \n    \n<h2 id=\"key-info-heading\" c...",
            "impact": "moderate",
            "message": "Multiple region landmarks have the same label \"key information\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "009be3d363cf",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "46e640423e24",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "13cbb4a78eec",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b1680c56f8c0",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "labels-and-names/duplicate-id-aria",
            "xpath": "#key-info-heading",
            "selector": "#key-info-heading",
            "html": "<h2 id=\"key-info-heading\" class=\"h3\">\n                    On this page\n            </h2>",
            "impact": "critical",
            "message": "Duplicate ID \"key-info-heading\" referenced by aria-labelledby.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1420c32653ff",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 8,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/events/77-memorial-service-2024",
      "finalUrl": "https://www.london.gov.uk/events/77-memorial-service-2024",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "7/7 Memorial Service 2024 | London City Hall",
      "elapsedMs": 10518,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1055,
          "failed": 2,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "landmark-unique",
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "landmark-unique",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/landmark-unique?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".lg\\:u-col-span-8 > section",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">",
            "message": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination",
            "fixSummary": "Fix any of the following:\n  The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable",
            "relatedPaths": [
              ".lg\\:u-col-span-4 > section"
            ],
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9568bc3c68f5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "40b6a1b53d38",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1101,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 84,
          "failed": 8,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "labels-and-names/duplicate-id-aria",
          "landmarks/landmark-unique",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ed1ff3a91815",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b26ecfc2b6a8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6a137beb5614",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/landmark-unique",
            "xpath": "div:nth-of-type(2) > section",
            "selector": "div:nth-of-type(2) > section",
            "html": "<section class=\"node--event u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">\n      \n  \n    \n<h2 id=\"key-inf...",
            "impact": "moderate",
            "message": "Multiple region landmarks have the same label \"key information\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3c47bff69f32",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "acf3edac629e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "138b282ceb12",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9b263469ed01",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "labels-and-names/duplicate-id-aria",
            "xpath": "#key-info-heading",
            "selector": "#key-info-heading",
            "html": "<h2 id=\"key-info-heading\" class=\"h3\">\n                    Watch the event\n            </h2>",
            "impact": "critical",
            "message": "Duplicate ID \"key-info-heading\" referenced by aria-labelledby.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "03d0a28a105f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 8,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/events/mayors-christmas-carol-service-2023",
      "finalUrl": "https://www.london.gov.uk/events/mayors-christmas-carol-service-2023",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "The Mayor&#039;s Christmas Carol Service 2023 | London City Hall",
      "elapsedMs": 11248,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1035,
          "failed": 2,
          "cantTell": 3,
          "inapplicable": 43
        },
        "failedRules": [
          "landmark-unique",
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "landmark-unique",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/landmark-unique?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".lg\\:u-col-span-8 > section",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">",
            "message": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination",
            "fixSummary": "Fix any of the following:\n  The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable",
            "relatedPaths": [
              ".lg\\:u-col-span-4 > section"
            ],
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "297e69d21de5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7b053081ef0d",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1083,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 84,
          "failed": 8,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "labels-and-names/duplicate-id-aria",
          "landmarks/landmark-unique",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "24401646d49a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a2a17c64f8cc",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "257fb0984d13",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/landmark-unique",
            "xpath": "div:nth-of-type(2) > section",
            "selector": "div:nth-of-type(2) > section",
            "html": "<section class=\"node--event u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">\n      \n  \n    \n<h2 id=\"key-inf...",
            "impact": "moderate",
            "message": "Multiple region landmarks have the same label \"key information\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a7d67cf695ec",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b681bf6634dd",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "bac962a389b1",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "896cfabfa2e8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "labels-and-names/duplicate-id-aria",
            "xpath": "#key-info-heading",
            "selector": "#key-info-heading",
            "html": "<h2 id=\"key-info-heading\" class=\"h3\">\n                    Watch the event\n            </h2>",
            "impact": "critical",
            "message": "Duplicate ID \"key-info-heading\" referenced by aria-labelledby.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "258280c7f943",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 8,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/events/mayors-christmas-carol-service-2024",
      "finalUrl": "https://www.london.gov.uk/events/mayors-christmas-carol-service-2024",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "The Mayor&#039;s Christmas Carol Service 2024 | London City Hall",
      "elapsedMs": 11139,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1108,
          "failed": 2,
          "cantTell": 2,
          "inapplicable": 41
        },
        "failedRules": [
          "landmark-unique",
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "presentation-role-conflict",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "landmark-unique",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/landmark-unique?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".lg\\:u-col-span-8 > section",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">",
            "message": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination",
            "fixSummary": "Fix any of the following:\n  The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable",
            "relatedPaths": [
              ".lg\\:u-col-span-4 > .node--event",
              ".jump_links > section"
            ],
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ab6378414256",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "14d223788a86",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1153,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 83,
          "failed": 9,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "labels-and-names/duplicate-id-aria",
          "landmarks/landmark-unique",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "04b569b08487",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c248e2ef35d5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ae8c2f0ed275",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/landmark-unique",
            "xpath": "div:nth-of-type(2) > section",
            "selector": "div:nth-of-type(2) > section",
            "html": "<section class=\"node--event u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">\n      \n  \n    \n<h2 id=\"key-inf...",
            "impact": "moderate",
            "message": "Multiple region landmarks have the same label \"key information\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "92c6d7ce7edc",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/landmark-unique",
            "xpath": "div:nth-of-type(2) > div > section",
            "selector": "div:nth-of-type(2) > div > section",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">\n      \n  \n    \n<h2 id=\"key-info-heading\" c...",
            "impact": "moderate",
            "message": "Multiple region landmarks have the same label \"key information\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f2609ad43fe6",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "e36a73e90bbb",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8ba423263ce6",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "bbf9dc2a5d23",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "labels-and-names/duplicate-id-aria",
            "xpath": "#key-info-heading",
            "selector": "#key-info-heading",
            "html": "<h2 id=\"key-info-heading\" class=\"h3\">\n                    View online\n            </h2>",
            "impact": "critical",
            "message": "Duplicate ID \"key-info-heading\" referenced by aria-labelledby.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f7323a4235be",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 9,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/events/mayors-christmas-carol-service-2025",
      "finalUrl": "https://www.london.gov.uk/events/mayors-christmas-carol-service-2025",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "The Mayor&#039;s Christmas Carol Service 2025 | London City Hall",
      "elapsedMs": 10228,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1082,
          "failed": 2,
          "cantTell": 3,
          "inapplicable": 41
        },
        "failedRules": [
          "landmark-unique",
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "presentation-role-conflict",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "landmark-unique",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/landmark-unique?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".lg\\:u-col-span-8 > section",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">",
            "message": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination",
            "fixSummary": "Fix any of the following:\n  The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable",
            "relatedPaths": [
              ".jump_links > section"
            ],
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d982ce37cf7e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6964e02c5346",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1128,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 84,
          "failed": 8,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "labels-and-names/duplicate-id-aria",
          "landmarks/landmark-unique",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4c0e828fde5a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6accd312a386",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "9d107e2af740",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/landmark-unique",
            "xpath": "div:nth-of-type(2) > div > section",
            "selector": "div:nth-of-type(2) > div > section",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">\n      \n  \n    \n<h2 id=\"key-info-heading\" c...",
            "impact": "moderate",
            "message": "Multiple region landmarks have the same label \"key information\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "83c76e645080",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "73dc04019ec2",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4848d7baa586",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7fe1f07f7aa6",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "labels-and-names/duplicate-id-aria",
            "xpath": "#key-info-heading",
            "selector": "#key-info-heading",
            "html": "<h2 id=\"key-info-heading\" class=\"h3\">\n                    On this page\n            </h2>",
            "impact": "critical",
            "message": "Duplicate ID \"key-info-heading\" referenced by aria-labelledby.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "589161479dcb",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 8,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/events/remembrance-day-service-2023",
      "finalUrl": "https://www.london.gov.uk/events/remembrance-day-service-2023",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Remembrance Day Service 2023 | London City Hall",
      "elapsedMs": 10984,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1119,
          "failed": 2,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "landmark-unique",
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "presentation-role-conflict",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "landmark-unique",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/landmark-unique?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".lg\\:u-col-span-8 > section",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">",
            "message": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination",
            "fixSummary": "Fix any of the following:\n  The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable",
            "relatedPaths": [
              ".jump_links > section"
            ],
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "47917f201bf5",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c78de978cb1e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1165,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 84,
          "failed": 8,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "labels-and-names/duplicate-id-aria",
          "landmarks/landmark-unique",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "dccbcc23f261",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "e05cb9828ec6",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ff86b4de55d6",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/landmark-unique",
            "xpath": "div:nth-of-type(2) > div > section",
            "selector": "div:nth-of-type(2) > div > section",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">\n      \n  \n    \n<h2 id=\"key-info-heading\" c...",
            "impact": "moderate",
            "message": "Multiple region landmarks have the same label \"key information\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "bf2668d67dc0",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "e4097986c8ab",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "be70f43ab993",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3945f552d995",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "labels-and-names/duplicate-id-aria",
            "xpath": "#key-info-heading",
            "selector": "#key-info-heading",
            "html": "<h2 id=\"key-info-heading\" class=\"h3\">\n                    On this page\n            </h2>",
            "impact": "critical",
            "message": "Duplicate ID \"key-info-heading\" referenced by aria-labelledby.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "bcd06a07b86e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 8,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/events/remembrance-day-service-2024",
      "finalUrl": "https://www.london.gov.uk/events/remembrance-day-service-2024",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Remembrance Day Service 2024 | London City Hall",
      "elapsedMs": 11283,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1082,
          "failed": 2,
          "cantTell": 2,
          "inapplicable": 41
        },
        "failedRules": [
          "landmark-unique",
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "presentation-role-conflict",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "landmark-unique",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/landmark-unique?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".lg\\:u-col-span-8 > section",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">",
            "message": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination",
            "fixSummary": "Fix any of the following:\n  The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable",
            "relatedPaths": [
              ".jump_links > section"
            ],
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "28fe05b9db7a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "20aad57cf3ba",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1127,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 84,
          "failed": 8,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "labels-and-names/duplicate-id-aria",
          "landmarks/landmark-unique",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "72ebd77a4c8a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3fc9759daa63",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "34ea8f96a743",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/landmark-unique",
            "xpath": "div:nth-of-type(2) > div > section",
            "selector": "div:nth-of-type(2) > div > section",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">\n      \n  \n    \n<h2 id=\"key-info-heading\" c...",
            "impact": "moderate",
            "message": "Multiple region landmarks have the same label \"key information\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2c43fde4672d",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d4fb6cc8cffc",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "44980ee778fb",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f6c877489531",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "labels-and-names/duplicate-id-aria",
            "xpath": "#key-info-heading",
            "selector": "#key-info-heading",
            "html": "<h2 id=\"key-info-heading\" class=\"h3\">\n                    On this page\n            </h2>",
            "impact": "critical",
            "message": "Duplicate ID \"key-info-heading\" referenced by aria-labelledby.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "492f7b12efd4",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 8,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/events/remembrance-service-2025",
      "finalUrl": "https://www.london.gov.uk/events/remembrance-service-2025",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Remembrance Service 2025 | London City Hall",
      "elapsedMs": 10736,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1073,
          "failed": 2,
          "cantTell": 2,
          "inapplicable": 41
        },
        "failedRules": [
          "landmark-unique",
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "presentation-role-conflict",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "landmark-unique",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/landmark-unique?application=playwright",
            "impact": "moderate",
            "wcagSc": [],
            "xpath": ".lg\\:u-col-span-8 > section",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">",
            "message": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination",
            "fixSummary": "Fix any of the following:\n  The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable",
            "relatedPaths": [
              ".jump_links > section"
            ],
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1a95bae2187a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4157927a4e02",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1118,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 2
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 84,
          "failed": 8,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "labels-and-names/duplicate-id-aria",
          "landmarks/landmark-unique",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f4bfdc93763a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "d960a497bb74",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "72b1a6da531a",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/landmark-unique",
            "xpath": "div:nth-of-type(2) > div > section",
            "selector": "div:nth-of-type(2) > div > section",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">\n      \n  \n    \n<h2 id=\"key-info-heading\" c...",
            "impact": "moderate",
            "message": "Multiple region landmarks have the same label \"key information\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f4ac4be00b14",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "016de8583517",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "47b72dd2e424",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7cb1b227f0de",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "labels-and-names/duplicate-id-aria",
            "xpath": "#key-info-heading",
            "selector": "#key-info-heading",
            "html": "<h2 id=\"key-info-heading\" class=\"h3\">\n                    On this page\n            </h2>",
            "impact": "critical",
            "message": "Duplicate ID \"key-info-heading\" referenced by aria-labelledby.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "58b5ec3622b3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 8,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/heidi-alexander/register-of-interests",
      "finalUrl": "https://www.london.gov.uk/heidi-alexander/register-of-interests",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Heidi Alexander (past staff) - Register of interests | London City Hall",
      "elapsedMs": 10520,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1028,
          "failed": 1,
          "cantTell": 1,
          "inapplicable": 43
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "dd766db5d186",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1073,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "cb6b504028a8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "de19354bd88e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "254aa28b8392",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4cc6b273a6f2",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "96cbb722c29e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8a52926da68f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/julia-slay/register-of-interests",
      "finalUrl": "https://www.london.gov.uk/julia-slay/register-of-interests",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Julia Slay - Register of interests | London City Hall",
      "elapsedMs": 10399,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1006,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 43
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "511b3fa2cb33",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1052,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b5f1a0078c23",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "30006e4dd298",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "895167972900",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "bb56277b7d8b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "338db1191ec0",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "fe08a4926887",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/mayor-london/mayors-annual-report",
      "finalUrl": "https://www.london.gov.uk/mayor-london/mayors-annual-report",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "The Mayor&#039;s Annual Report | London City Hall",
      "elapsedMs": 11525,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1280,
          "failed": 1,
          "cantTell": 3,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3c5e54daf384",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1326,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 85,
          "failed": 7,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1bec90380aa3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "div:nth-of-type(2) > h1",
            "selector": "div:nth-of-type(2) > h1",
            "html": "<h1 class=\"h2\">\n                    The Mayor's Annual Report\n            </h1>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 1:1 (required 3:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b132990907b2",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f4b1eedba6b8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b3b1c251e4a0",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c153a4731277",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "88f7cec06c37",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c5171b0a9c7b",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 7,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/motions/70th-anniversary-national-health-service",
      "finalUrl": "https://www.london.gov.uk/motions/70th-anniversary-national-health-service",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "70th Anniversary of the National Health Service | London City Hall",
      "elapsedMs": 10560,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1009,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "af3b90e84b73",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1054,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b2a84dbfbd93",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8728d43a7ce9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8a307500809f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "ee3dd645dcc8",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2fd342ed47e1",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b99397f6af28",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/motions/backing-age-uks-campaign-fully-reinstate-winter-fuel-payment",
      "finalUrl": "https://www.london.gov.uk/motions/backing-age-uks-campaign-fully-reinstate-winter-fuel-payment",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Backing Age UK’s Campaign to Fully Reinstate the Winter Fuel Payment | London City Hall",
      "elapsedMs": 10900,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1027,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "23859b27d14d",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1072,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2120132b2eb3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "2e6bbdd7bbd3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6388fac7a865",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "bd7a568d7a83",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7091c84a5430",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3704adb4b941",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/motions/banking-services",
      "finalUrl": "https://www.london.gov.uk/motions/banking-services",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Banking Services | London City Hall",
      "elapsedMs": 10782,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 996,
          "failed": 1,
          "cantTell": 1,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "b8ec76fd53c9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1040,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8a49adaa1880",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f0d55aa493e7",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "0fe6a1299a91",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "5b31fec80e2c",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1b40bb1021a7",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c4ff68e677ba",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/motions/blair-peach-and-cass-report",
      "finalUrl": "https://www.london.gov.uk/motions/blair-peach-and-cass-report",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Blair Peach and the Cass Report | London City Hall",
      "elapsedMs": 10954,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1030,
          "failed": 1,
          "cantTell": 1,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "f1b678b73d56",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1074,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1ed19b1f290f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "df231a98a240",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3a88d785b3ad",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "3457c4854b0f",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c36b993ba831",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "01ee8f4a5b68",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/motions/child-and-adolescent-mental-health-services-camhs",
      "finalUrl": "https://www.london.gov.uk/motions/child-and-adolescent-mental-health-services-camhs",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Child and Adolescent Mental Health Services (CAMHS) | London City Hall",
      "elapsedMs": 10947,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 1261,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "13435f5d30e9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1306,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6095cf327b53",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "6fb22ca8dcfb",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "31ff968686a9",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "8396f9978518",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "25f67f9ed4d4",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c43ca3f106db",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/motions/coroner-report-cycling-fatalities",
      "finalUrl": "https://www.london.gov.uk/motions/coroner-report-cycling-fatalities",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Coroner report into cycling fatalities | London City Hall",
      "elapsedMs": 10756,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 996,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "e5ef5c3a7246",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1041,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "96a7225da5c7",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4db3dd3dac41",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "009e5a6a7b51",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "76c011bb60c7",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "1bf2e802f30d",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a3fa1f6d2f0c",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    },
    {
      "submittedUrl": "https://london.gov.uk/motions/coroner-report-cycling-fatalities-0",
      "finalUrl": "https://www.london.gov.uk/motions/coroner-report-cycling-fatalities-0",
      "redirected": true,
      "statusCode": 200,
      "ok": true,
      "contentType": "text/html; charset=UTF-8",
      "pageTitle": "Coroner report into cycling fatalities | London City Hall",
      "elapsedMs": 10762,
      "error": null,
      "alfa": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "axe": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 996,
          "failed": 1,
          "cantTell": 2,
          "inapplicable": 42
        },
        "failedRules": [
          "svg-img-alt"
        ],
        "passedRules": [
          "aria-allowed-attr",
          "aria-allowed-role",
          "aria-conditional-attr",
          "aria-deprecated-role",
          "aria-dialog-name",
          "aria-hidden-body",
          "aria-hidden-focus",
          "aria-prohibited-attr",
          "aria-required-attr",
          "aria-roles",
          "aria-valid-attr",
          "aria-valid-attr-value",
          "avoid-inline-spacing",
          "button-name",
          "bypass",
          "color-contrast",
          "document-title",
          "duplicate-id-aria",
          "empty-heading",
          "form-field-multiple-labels",
          "heading-order",
          "html-has-lang",
          "html-lang-valid",
          "image-alt",
          "image-redundant-alt",
          "label-title-only",
          "landmark-banner-is-top-level",
          "landmark-contentinfo-is-top-level",
          "landmark-main-is-top-level",
          "landmark-no-duplicate-banner",
          "landmark-no-duplicate-contentinfo",
          "landmark-no-duplicate-main",
          "landmark-one-main",
          "landmark-unique",
          "link-in-text-block",
          "link-name",
          "list",
          "listitem",
          "meta-viewport",
          "meta-viewport-large",
          "nested-interactive",
          "page-has-heading-one",
          "region",
          "select-name",
          "svg-img-alt",
          "tabindex",
          "valid-lang"
        ],
        "failures": [
          {
            "rule": "svg-img-alt",
            "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
            "impact": "serious",
            "wcagSc": [
              "wcag2a",
              "wcag111"
            ],
            "xpath": ".simple-icons-icon__linkedin",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "334d48f1c39e",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 1041,
        "darkModeScanned": false,
        "mediaQuerySupport": {
          "darkMode": false,
          "reducedMotion": true,
          "highContrast": false,
          "forcedColors": false,
          "reducedTransparency": false
        },
        "duplicateFailedCount": 0,
        "uniqueFailedCount": 1
      },
      "equalAccess": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "accesslint": {
        "executed": true,
        "error": null,
        "counts": {
          "passed": 86,
          "failed": 6,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [
          "distinguishable/color-contrast",
          "landmarks/region",
          "readable/valid-lang",
          "text-alternatives/svg-img-alt"
        ],
        "passedRules": [],
        "failures": [
          {
            "rule": "text-alternatives/svg-img-alt",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "selector": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "impact": "serious",
            "message": "svg with role='img' has no accessible name.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "a9ce0f3cee49",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "selector": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "html": "<title>Facebook</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "333fdcc63a9d",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "distinguishable/color-contrast",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "selector": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "html": "<title>YouTube</title>",
            "impact": "serious",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "c7614541d707",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "landmarks/region",
            "xpath": "body > div:nth-of-type(3)",
            "selector": "body > div:nth-of-type(3)",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "impact": "moderate",
            "message": "Content is not contained within a landmark region.",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "904075675bc3",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "selector": "#gla-select-translation > option:nth-of-type(28)",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"iw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "7d47624c42b7",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          },
          {
            "rule": "readable/valid-lang",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "selector": "#gla-select-translation > option:nth-of-type(68)",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "impact": "serious",
            "message": "Invalid lang attribute value \"jw\".",
            "isDuplicate": false,
            "duplicateOf": null,
            "fingerprint": "4d9be312c045",
            "firstSeenAt": "2026-04-04T01:18:19.312Z"
          }
        ],
        "outcomeCount": 92,
        "uniqueFailedCount": 6,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "qualweb": {
        "executed": false,
        "error": "Skipped (not requested)",
        "counts": {
          "passed": 0,
          "failed": 0,
          "cantTell": 0,
          "inapplicable": 0
        },
        "failedRules": [],
        "passedRules": [],
        "failures": [],
        "outcomeCount": 0,
        "uniqueFailedCount": 0,
        "duplicateFailedCount": 0,
        "crossEngineOverlapCount": 0
      },
      "duplicateFindingCount": 0
    }
  ],
  "enhanced": {
    "consolidatedFailures": [
      {
        "rule": "distinguishable/color-contrast",
        "engine": "accesslint",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": null,
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 149,
        "examples": [
          {
            "url": "https://london.gov.uk/",
            "html": "<title>Facebook</title>",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/",
            "html": "<title>YouTube</title>",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/warmer-homes-faqs/i-received-support-under-first-phase-warmer-homes-can-i-re-apply-phase-warmer-homes",
            "html": "<title>Facebook</title>",
            "xpath": "a[href=\"https://www.facebook.com/MayorofLondon/?ref=nf\"] > div > svg > title",
            "message": "Insufficient color contrast ratio of 4.23:1 (required 4.5:1).",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/warmer-homes-faqs/i-received-support-under-first-phase-warmer-homes-can-i-re-apply-phase-warmer-homes",
            "html": "<title>YouTube</title>",
            "xpath": "a[href=\"https://www.youtube.com/user/MayorsOfficeLondon\"] > div > svg > title",
            "message": "Insufficient color contrast ratio of 4:1 (required 4.5:1).",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/find-affordable-home",
            "html": "<p>We use some essential cookies to make this website work.</p>",
            "xpath": "p > p:nth-of-type(1)",
            "message": "Insufficient color contrast ratio of 4.01:1 (required 4.5:1).",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "readable/valid-lang",
        "engine": "accesslint",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": null,
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 134,
        "examples": [
          {
            "url": "https://london.gov.uk/",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "message": "Invalid lang attribute value \"iw\".",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "message": "Invalid lang attribute value \"jw\".",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/warmer-homes-faqs/i-received-support-under-first-phase-warmer-homes-can-i-re-apply-phase-warmer-homes",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "message": "Invalid lang attribute value \"iw\".",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/warmer-homes-faqs/i-received-support-under-first-phase-warmer-homes-can-i-re-apply-phase-warmer-homes",
            "html": "<option value=\"en|jw\" data-gt-href=\"#\" lang=\"jw\">Basa Jawa</option>",
            "xpath": "#gla-select-translation > option:nth-of-type(68)",
            "message": "Invalid lang attribute value \"jw\".",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/find-your-london-festival",
            "html": "<option value=\"en|iw\" data-gt-href=\"#\" lang=\"iw\">עִבְרִית</option>",
            "xpath": "#gla-select-translation > option:nth-of-type(28)",
            "message": "Invalid lang attribute value \"iw\".",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "landmarks/region",
        "engine": "accesslint",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": null,
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 71,
        "examples": [
          {
            "url": "https://london.gov.uk/",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "xpath": "body > div:nth-of-type(3)",
            "message": "Content is not contained within a landmark region.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/warmer-homes-faqs/i-received-support-under-first-phase-warmer-homes-can-i-re-apply-phase-warmer-homes",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "xpath": "body > div:nth-of-type(3)",
            "message": "Content is not contained within a landmark region.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/find-your-london-festival",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "xpath": "body > div:nth-of-type(3)",
            "message": "Content is not contained within a landmark region.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/what-affordable-home-and-how-can-i-find-one",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "xpath": "body > div:nth-of-type(3)",
            "message": "Content is not contained within a landmark region.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/who-we-are/city-halls-buildings-and-squares/accessibility-city-hall",
            "html": "<div class=\"u-w-full u-bg-black u-text-white\">\n      <a href=\"#main-content\" class=\"visually-hidden focusable\">\n        Skip to main content\n      </a>\n    </div>",
            "xpath": "body > div:nth-of-type(3)",
            "message": "Content is not contained within a landmark region.",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "svg-img-alt",
        "engine": "axe",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [
            "1.1.1"
          ],
          "level": "A"
        },
        "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/svg-img-alt?application=playwright",
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 67,
        "examples": [
          {
            "url": "https://london.gov.uk/",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "xpath": ".simple-icons-icon__linkedin",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/warmer-homes-faqs/i-received-support-under-first-phase-warmer-homes-can-i-re-apply-phase-warmer-homes",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "xpath": ".simple-icons-icon__linkedin",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/find-your-london-festival",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "xpath": ".simple-icons-icon__linkedin",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/what-affordable-home-and-how-can-i-find-one",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "xpath": ".simple-icons-icon__linkedin",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/who-we-are/city-halls-buildings-and-squares/accessibility-city-hall",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">",
            "xpath": ".simple-icons-icon__linkedin",
            "message": "<svg> elements with an img role must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element has no child that is a title\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "text-alternatives/svg-img-alt",
        "engine": "accesslint",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": null,
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 67,
        "examples": [
          {
            "url": "https://london.gov.uk/",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "message": "svg with role='img' has no accessible name.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/warmer-homes-faqs/i-received-support-under-first-phase-warmer-homes-can-i-re-apply-phase-warmer-homes",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "message": "svg with role='img' has no accessible name.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/find-your-london-festival",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "message": "svg with role='img' has no accessible name.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/what-affordable-home-and-how-can-i-find-one",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "message": "svg with role='img' has no accessible name.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/who-we-are/city-halls-buildings-and-squares/accessibility-city-hall",
            "html": "<svg role=\"img\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"simple-icons-icon simple-icons-icon__linkedin\" focusable=\"false\">\n  \n  <path d=\"M22 20h-4.862v-7.03c0-1.841-.76-3.097-2.43...",
            "xpath": "a[href=\"https://www.linkedin.com/company/greater-london-authority/\"] > div > svg",
            "message": "svg with role='img' has no accessible name.",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "meta-refresh",
        "engine": "axe",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [
            "2.2.1"
          ],
          "level": "A"
        },
        "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-refresh?application=playwright",
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 50,
        "examples": [
          {
            "url": "https://london.gov.uk/find-advice-and-support",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "xpath": "meta[http-equiv=\"refresh\"]",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/find-advice-and-support",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "xpath": "meta[http-equiv=\"refresh\"]",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/programmes-strategies/accessibility",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "xpath": "meta[http-equiv=\"refresh\"]",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/programmes-strategies/accessibility",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "xpath": "meta[http-equiv=\"refresh\"]",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "dark",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/programmes-strategies/accessibility-statement-talk-london",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "xpath": "meta[http-equiv=\"refresh\"]",
            "message": "Delayed refresh under 20 hours must not be used",
            "fixSummary": "Fix any of the following:\n  <meta> tag forces timed refresh of page (less than 20 hours)",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "enough-time/meta-refresh",
        "engine": "accesslint",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": null,
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 25,
        "examples": [
          {
            "url": "https://london.gov.uk/find-advice-and-support",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "xpath": "head > meta:nth-of-type(5)",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/programmes-strategies/accessibility",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "xpath": "head > meta:nth-of-type(5)",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/programmes-strategies/accessibility-statement-talk-london",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "xpath": "head > meta:nth-of-type(5)",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/programmes-strategies/arts-and-culture/space-culture/help-resources-and-guidance/finding-building-or-land",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "xpath": "head > meta:nth-of-type(5)",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/find-course-london",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "xpath": "head > meta:nth-of-type(5)",
            "message": "Page auto-refreshes after 360 seconds. Provide user control over refresh.",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "enough-time/meta-refresh-no-exception",
        "engine": "accesslint",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": null,
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 25,
        "examples": [
          {
            "url": "https://london.gov.uk/find-advice-and-support",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "xpath": "head > meta:nth-of-type(5)",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/programmes-strategies/accessibility",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "xpath": "head > meta:nth-of-type(5)",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/programmes-strategies/accessibility-statement-talk-london",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "xpath": "head > meta:nth-of-type(5)",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/programmes-strategies/arts-and-culture/space-culture/help-resources-and-guidance/finding-building-or-land",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "xpath": "head > meta:nth-of-type(5)",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/find-course-london",
            "html": "<meta http-equiv=\"refresh\" content=\"360\">",
            "xpath": "head > meta:nth-of-type(5)",
            "message": "Page has a 360-second meta refresh delay. Remove the auto-refresh or provide user control.",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "heading-order",
        "engine": "axe",
        "metadata": {
          "roles": [
            "Content Author",
            "UX Designer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": "best-practice",
          "description": "Ensures heading levels are not skipped (e.g. h1→h3). Inconsistent heading hierarchy makes page structure difficult to navigate for screen reader users."
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/heading-order?application=playwright",
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 11,
        "examples": [
          {
            "url": "https://london.gov.uk/warmer-homes-faqs/i-received-support-under-first-phase-warmer-homes-can-i-re-apply-phase-warmer-homes",
            "html": "<h3 class=\"h3\">\n                    Related questions\n            </h3>",
            "xpath": ".u-space-y-4 > h3",
            "message": "Heading levels should only increase by one",
            "fixSummary": "Fix any of the following:\n  Heading order invalid",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/warmer-homes-faqs/i-received-support-under-first-phase-warmer-homes-can-i-re-apply-phase-warmer-homes",
            "html": "<h5 class=\"h5\">\n                    Eligibility\n            </h5>",
            "xpath": ".u-mb-10:nth-child(1) > .u-bg-off-white.u-p-6.sm\\:u-px-12 > h5",
            "message": "Heading levels should only increase by one",
            "fixSummary": "Fix any of the following:\n  Heading order invalid",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/what-affordable-home-and-how-can-i-find-one",
            "html": "<h3 class=\"h3\">\n                    Related questions\n            </h3>",
            "xpath": ".u-space-y-4 > h3",
            "message": "Heading levels should only increase by one",
            "fixSummary": "Fix any of the following:\n  Heading order invalid",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/what-affordable-home-and-how-can-i-find-one",
            "html": "<h5 class=\"h5\">\n                    General\n            </h5>",
            "xpath": "h5",
            "message": "Heading levels should only increase by one",
            "fixSummary": "Fix any of the following:\n  Heading order invalid",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/city-hall-blog/finding-ways-get-more-women-cleantech-and-keep-them-there",
            "html": "<h4 id=\"by-karen-lawrence-commissioner-on-the-london-sustainable-development-commission\">",
            "xpath": "#by-karen-lawrence-commissioner-on-the-london-sustainable-development-commission",
            "message": "Heading levels should only increase by one",
            "fixSummary": "Fix any of the following:\n  Heading order invalid",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "navigable/heading-order",
        "engine": "accesslint",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": null,
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 11,
        "examples": [
          {
            "url": "https://london.gov.uk/warmer-homes-faqs/i-received-support-under-first-phase-warmer-homes-can-i-re-apply-phase-warmer-homes",
            "html": "<h3 class=\"h3\">\n                    Related questions\n            </h3>",
            "xpath": "div:nth-of-type(2) > h3",
            "message": "Heading level 3 skipped from level 1. Use h2 instead.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/warmer-homes-faqs/i-received-support-under-first-phase-warmer-homes-can-i-re-apply-phase-warmer-homes",
            "html": "<h5 class=\"h5\">\n                    Eligibility\n            </h5>",
            "xpath": "div:nth-of-type(1) > div > h5",
            "message": "Heading level 5 skipped from level 3. Use h4 instead.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/what-affordable-home-and-how-can-i-find-one",
            "html": "<h3 class=\"h3\">\n                    Related questions\n            </h3>",
            "xpath": "div:nth-of-type(2) > h3",
            "message": "Heading level 3 skipped from level 1. Use h2 instead.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/what-affordable-home-and-how-can-i-find-one",
            "html": "<h5 class=\"h5\">\n                    General\n            </h5>",
            "xpath": "div > h5",
            "message": "Heading level 5 skipped from level 3. Use h4 instead.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/city-hall-blog/finding-ways-get-more-women-cleantech-and-keep-them-there",
            "html": "<h4 id=\"by-karen-lawrence-commissioner-on-the-london-sustainable-development-commission\"><a href=\"/who-we-are/city-halls-partners/london-sustainable-development-commission/who-we-are/meet-commissioner...",
            "xpath": "#by-karen-lawrence-commissioner-on-the-london-sustainable-development-commission",
            "message": "Heading level 4 skipped from level 1. Use h2 instead.",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "landmark-unique",
        "engine": "axe",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/landmark-unique?application=playwright",
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 10,
        "examples": [
          {
            "url": "https://london.gov.uk/apply-access",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">",
            "xpath": ".layout__region--first > .u-items-baseline.u-h-full > .layout__region.u-space-y-1.u-w-full > section",
            "message": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination",
            "fixSummary": "Fix any of the following:\n  The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable",
            "relatedPaths": [
              ".layout__region--second > .u-items-baseline.u-h-full > .layout__region.u-space-y-1.u-w-full > section"
            ],
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/apply-access",
            "html": "<nav>",
            "xpath": ".layout__region--first > .u-items-baseline.u-h-full > .layout__region.u-space-y-1.u-w-full > section > nav",
            "message": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination",
            "fixSummary": "Fix any of the following:\n  The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable",
            "relatedPaths": [
              ".layout__region--second > .u-items-baseline.u-h-full > .layout__region.u-space-y-1.u-w-full > section > nav"
            ],
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/events/77-memorial-service-2023",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">",
            "xpath": ".lg\\:u-col-span-8 > section",
            "message": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination",
            "fixSummary": "Fix any of the following:\n  The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable",
            "relatedPaths": [
              ".jump_links > section"
            ],
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/events/77-memorial-service-2024",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">",
            "xpath": ".lg\\:u-col-span-8 > section",
            "message": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination",
            "fixSummary": "Fix any of the following:\n  The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable",
            "relatedPaths": [
              ".lg\\:u-col-span-4 > section"
            ],
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/events/mayors-christmas-carol-service-2023",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">",
            "xpath": ".lg\\:u-col-span-8 > section",
            "message": "Landmarks should have a unique role or role/label/title (i.e. accessible name) combination",
            "fixSummary": "Fix any of the following:\n  The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable",
            "relatedPaths": [
              ".lg\\:u-col-span-4 > section"
            ],
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "landmarks/landmark-unique",
        "engine": "accesslint",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": null,
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 10,
        "examples": [
          {
            "url": "https://london.gov.uk/apply-access",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">\n      \n  \n    \n<h2 id=\"key-info-heading\" c...",
            "xpath": "div:nth-of-type(2) > div > div > section",
            "message": "Multiple region landmarks have the same label \"mayor's press office\".",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/events/77-memorial-service-2023",
            "html": "<section class=\"u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">\n      \n  \n    \n<h2 id=\"key-info-heading\" c...",
            "xpath": "div:nth-of-type(2) > div > section",
            "message": "Multiple region landmarks have the same label \"key information\".",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/events/77-memorial-service-2024",
            "html": "<section class=\"node--event u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">\n      \n  \n    \n<h2 id=\"key-inf...",
            "xpath": "div:nth-of-type(2) > section",
            "message": "Multiple region landmarks have the same label \"key information\".",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/events/mayors-christmas-carol-service-2023",
            "html": "<section class=\"node--event u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">\n      \n  \n    \n<h2 id=\"key-inf...",
            "xpath": "div:nth-of-type(2) > section",
            "message": "Multiple region landmarks have the same label \"key information\".",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/events/mayors-christmas-carol-service-2024",
            "html": "<section class=\"node--event u-space-y-6 u-p-6 sm:u-p-12 md:u-p-7 lg:u-p-8 xl:u-p-12 xl:u-p-11 xxl:u-p-10 u-bg-off-white has-light-bg\" aria-labelledby=\"key-info-heading\">\n      \n  \n    \n<h2 id=\"key-inf...",
            "xpath": "div:nth-of-type(2) > section",
            "message": "Multiple region landmarks have the same label \"key information\".",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "region",
        "engine": "axe",
        "metadata": {
          "roles": [
            "Front-End Developer",
            "UX Designer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": "best-practice",
          "description": "Ensures all page content is contained within landmark regions. Content outside landmarks cannot be found by screen reader users navigating by landmarks."
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/region?application=playwright",
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 9,
        "examples": [
          {
            "url": "https://london.gov.uk/find-affordable-home",
            "html": "<div class=\"footer-locations-grid slide-toggle__child\">",
            "xpath": ".footer-locations-grid",
            "message": "All page content should be contained by landmarks",
            "fixSummary": "Fix any of the following:\n  Some page content is not contained by landmarks",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/find-affordable-home",
            "html": "<a href=\"https://www.sharetobuy.com/\" aria-label=\"Share to Buy\">",
            "xpath": "a[aria-label=\"Share to Buy\"]",
            "message": "All page content should be contained by landmarks",
            "fixSummary": "Fix any of the following:\n  Some page content is not contained by landmarks",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/find-affordable-home",
            "html": "<div class=\"footer-inline-nav inline-nav\">",
            "xpath": ".footer-inline-nav",
            "message": "All page content should be contained by landmarks",
            "fixSummary": "Fix any of the following:\n  Some page content is not contained by landmarks",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/apply-settled-status",
            "html": "<a data-module=\"govuk-skip-link\" class=\"gem-c-skip-link govuk-skip-link govuk-!-display-none-print\" href=\"#content\" data-govuk-skip-link-init=\"\" data-govuk-skip-link-module-started=\"true\">Skip to main content</a>",
            "xpath": "body > .gem-c-skip-link.govuk-skip-link[data-module=\"govuk-skip-link\"]",
            "message": "All page content should be contained by landmarks",
            "fixSummary": "Fix any of the following:\n  Some page content is not contained by landmarks",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/apply-settled-status",
            "html": "<div data-module=\"ga4-link-tracker\" class=\"gem-c-step-nav-header\" title=\"Stay in the UK ('settled status'): step by step\" data-ga4-link-tracker-module-started=\"true\">",
            "xpath": ".gem-c-step-nav-header",
            "message": "All page content should be contained by landmarks",
            "fixSummary": "Fix any of the following:\n  Some page content is not contained by landmarks",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "empty-table-header",
        "engine": "axe",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/empty-table-header?application=playwright",
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 9,
        "examples": [
          {
            "url": "https://london.gov.uk/workshop-findings",
            "html": "<th>&nbsp;</th>",
            "xpath": "tr:nth-child(2) > th",
            "message": "Table header text should not be empty",
            "fixSummary": "Fix any of the following:\n  Element does not have text that is visible to screen readers",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/workshop-findings",
            "html": "<th>&nbsp;</th>",
            "xpath": "tr:nth-child(3) > th",
            "message": "Table header text should not be empty",
            "fixSummary": "Fix any of the following:\n  Element does not have text that is visible to screen readers",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/workshop-findings",
            "html": "<th>&nbsp;</th>",
            "xpath": "tr:nth-child(5) > th",
            "message": "Table header text should not be empty",
            "fixSummary": "Fix any of the following:\n  Element does not have text that is visible to screen readers",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/workshop-findings",
            "html": "<th>&nbsp;</th>",
            "xpath": "tr:nth-child(6) > th",
            "message": "Table header text should not be empty",
            "fixSummary": "Fix any of the following:\n  Element does not have text that is visible to screen readers",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/workshop-findings",
            "html": "<th>&nbsp;</th>",
            "xpath": "tr:nth-child(7) > th",
            "message": "Table header text should not be empty",
            "fixSummary": "Fix any of the following:\n  Element does not have text that is visible to screen readers",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "adaptable/empty-table-header",
        "engine": "accesslint",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": null,
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 9,
        "examples": [
          {
            "url": "https://london.gov.uk/workshop-findings",
            "html": "<th>&nbsp;</th>",
            "xpath": "tr:nth-of-type(2) > th",
            "message": "Table header cell is empty. Add text or use aria-label.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/workshop-findings",
            "html": "<th>&nbsp;</th>",
            "xpath": "tr:nth-of-type(3) > th",
            "message": "Table header cell is empty. Add text or use aria-label.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/workshop-findings",
            "html": "<th>&nbsp;</th>",
            "xpath": "tr:nth-of-type(5) > th",
            "message": "Table header cell is empty. Add text or use aria-label.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/workshop-findings",
            "html": "<th>&nbsp;</th>",
            "xpath": "tr:nth-of-type(6) > th",
            "message": "Table header cell is empty. Add text or use aria-label.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/workshop-findings",
            "html": "<th>&nbsp;</th>",
            "xpath": "tr:nth-of-type(7) > th",
            "message": "Table header cell is empty. Add text or use aria-label.",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "labels-and-names/duplicate-id-aria",
        "engine": "accesslint",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": null,
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 9,
        "examples": [
          {
            "url": "https://london.gov.uk/apply-access",
            "html": "<h2 id=\"key-info-heading\" class=\"h3\">\n                    London Assembly media relations office\n            </h2>",
            "xpath": "#key-info-heading",
            "message": "Duplicate ID \"key-info-heading\" referenced by aria-labelledby.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/events/77-memorial-service-2023",
            "html": "<h2 id=\"key-info-heading\" class=\"h3\">\n                    On this page\n            </h2>",
            "xpath": "#key-info-heading",
            "message": "Duplicate ID \"key-info-heading\" referenced by aria-labelledby.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/events/77-memorial-service-2024",
            "html": "<h2 id=\"key-info-heading\" class=\"h3\">\n                    Watch the event\n            </h2>",
            "xpath": "#key-info-heading",
            "message": "Duplicate ID \"key-info-heading\" referenced by aria-labelledby.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/events/mayors-christmas-carol-service-2023",
            "html": "<h2 id=\"key-info-heading\" class=\"h3\">\n                    Watch the event\n            </h2>",
            "xpath": "#key-info-heading",
            "message": "Duplicate ID \"key-info-heading\" referenced by aria-labelledby.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/events/mayors-christmas-carol-service-2024",
            "html": "<h2 id=\"key-info-heading\" class=\"h3\">\n                    View online\n            </h2>",
            "xpath": "#key-info-heading",
            "message": "Duplicate ID \"key-info-heading\" referenced by aria-labelledby.",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "color-contrast",
        "engine": "axe",
        "metadata": {
          "roles": [
            "Visual Designer"
          ],
          "severity": "Serious",
          "blocking": false,
          "wcagCriteria": [
            "1.4.3"
          ],
          "conformanceLevel": "AA",
          "description": "Ensures text and interactive elements have sufficient contrast ratio (4.5:1 for normal text, 3:1 for large text) against their background."
        },
        "wcag": {
          "scs": [
            "1.4.3"
          ],
          "level": "AA"
        },
        "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=playwright",
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 6,
        "examples": [
          {
            "url": "https://london.gov.uk/find-us-facebook",
            "html": "<span class=\"x1lliihq x6ikm8r x10wlt62 x1n2onr6 xlyipyv xuxw1ft\">Create new account</span>",
            "xpath": ".xp48ta0 > .x14ayic.xwyz465.x1e0frkt > .xsqbvy7.xb9jzoj[role=\"none\"] > .x1lkfr7t.x1lbecb7.xtk6v10 > .xlyipyv.xuxw1ft.x6ikm8r",
            "message": "Elements must meet minimum color contrast ratio thresholds",
            "fixSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.27 (foreground color: #ffffff, background color: #31a24c, font size: 12.8pt (17px), font weight: normal). Expected contrast ratio of 4.5:1",
            "relatedPaths": [
              ".xp48ta0"
            ],
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/find-us-facebook",
            "html": "<span class=\"x1lliihq x6ikm8r x10wlt62 x1n2onr6 xlyipyv xuxw1ft\">Create new account</span>",
            "xpath": ".xp48ta0 > .x14ayic.xwyz465.x1e0frkt > .xsqbvy7.xb9jzoj[role=\"none\"] > .x1lkfr7t.x1lbecb7.xtk6v10 > .xlyipyv.xuxw1ft.x6ikm8r",
            "message": "Elements must meet minimum color contrast ratio thresholds",
            "fixSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.27 (foreground color: #ffffff, background color: #31a24c, font size: 12.8pt (17px), font weight: normal). Expected contrast ratio of 4.5:1",
            "relatedPaths": [
              ".xp48ta0"
            ],
            "colorScheme": "dark",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/find-affordable-home",
            "html": "<p>We use some essential cookies to make this website work.</p>",
            "xpath": "p:nth-child(1)",
            "message": "Elements must meet minimum color contrast ratio thresholds",
            "fixSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.01 (foreground color: #787878, background color: #f4f4f4, font size: 9.7pt (12.96px), font weight: normal). Expected contrast ratio of 4.5:1",
            "relatedPaths": [
              "#ccc-notify"
            ],
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/find-affordable-home",
            "html": "<p>We also use cookies set by other sites to help us deliver content from their services.</p>",
            "xpath": "p > p:nth-child(3)",
            "message": "Elements must meet minimum color contrast ratio thresholds",
            "fixSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.01 (foreground color: #787878, background color: #f4f4f4, font size: 9.7pt (12.96px), font weight: normal). Expected contrast ratio of 4.5:1",
            "relatedPaths": [
              "#ccc-notify"
            ],
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/register",
            "html": "<p>We use some essential cookies to make this website work.</p>",
            "xpath": "p > p:nth-child(1)",
            "message": "Elements must meet minimum color contrast ratio thresholds",
            "fixSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.01 (foreground color: #787878, background color: #f4f4f4, font size: 9.7pt (12.96px), font weight: normal). Expected contrast ratio of 4.5:1",
            "relatedPaths": [
              "#ccc-notify"
            ],
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "distinguishable/link-in-text-block",
        "engine": "accesslint",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": null,
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 5,
        "examples": [
          {
            "url": "https://london.gov.uk/defending-londons-postal-service",
            "html": "<a href=\"https://www.london.gov.uk/mayor-assembly/london-assembly/meetings-whole-assembly/motions/defending-londons-postal-service#_ftn1\" name=\"_ftnref1\" style=\"margin: 0px; padding: 0px; border: 0px;...",
            "xpath": "p:nth-of-type(1) > a[name=\"_ftnref1\"]",
            "message": "Link in text block is not visually distinguishable from surrounding text. Add a non-color visual indicator such as an underline or border.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/defending-londons-postal-service",
            "html": "<a href=\"https://www.london.gov.uk/mayor-assembly/london-assembly/meetings-whole-assembly/motions/defending-londons-postal-service#_ftn2\" name=\"_ftnref2\" style=\"margin: 0px; padding: 0px; border: 0px;...",
            "xpath": "p:nth-of-type(1) > a[name=\"_ftnref2\"]",
            "message": "Link in text block is not visually distinguishable from surrounding text. Add a non-color visual indicator such as an underline or border.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/defending-londons-postal-service",
            "html": "<a href=\"https://www.london.gov.uk/mayor-assembly/london-assembly/meetings-whole-assembly/motions/defending-londons-postal-service#_ftn3\" name=\"_ftnref3\" style=\"margin: 0px; padding: 0px; border: 0px;...",
            "xpath": "p:nth-of-type(2) > a[name=\"_ftnref3\"]",
            "message": "Link in text block is not visually distinguishable from surrounding text. Add a non-color visual indicator such as an underline or border.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/defending-londons-postal-service",
            "html": "<a href=\"https://www.london.gov.uk/mayor-assembly/london-assembly/meetings-whole-assembly/motions/defending-londons-postal-service#_ftn4\" name=\"_ftnref4\" style=\"margin: 0px; padding: 0px; border: 0px;...",
            "xpath": "p:nth-of-type(2) > a[name=\"_ftnref4\"]",
            "message": "Link in text block is not visually distinguishable from surrounding text. Add a non-color visual indicator such as an underline or border.",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/defending-londons-postal-service",
            "html": "<a href=\"https://www.london.gov.uk/mayor-assembly/london-assembly/meetings-whole-assembly/motions/defending-londons-postal-service#_ftnref4\" name=\"_ftn4\" style=\"margin: 0px; padding: 0px; border: 0px;...",
            "xpath": "p:nth-of-type(7) > a[name=\"_ftn4\"]",
            "message": "Link in text block is not visually distinguishable from surrounding text. Add a non-color visual indicator such as an underline or border.",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "link-in-text-block",
        "engine": "axe",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [
            "1.4.1"
          ],
          "level": "A"
        },
        "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/link-in-text-block?application=playwright",
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 3,
        "examples": [
          {
            "url": "https://london.gov.uk/defending-londons-postal-service",
            "html": "<a href=\"https://www.london.g...\" name=\"_ftnref3\" style=\"margin: 0px; padding...\" title=\"\">",
            "xpath": "a[name=\"_ftnref3\"]",
            "message": "Links must be distinguishable without relying on color",
            "fixSummary": "Fix any of the following:\n  The link has insufficient color contrast of 2:1 with the surrounding text. (Minimum contrast is 3:1, link text: #255faf, surrounding text: #333333)\n  The link has no styling (such as underline) to distinguish it from the surrounding text",
            "relatedPaths": [
              ".field--name-field-c-m-motion-detail > p:nth-child(2)"
            ],
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/defending-londons-postal-service",
            "html": "<a href=\"https://www.london.g...\" name=\"_ftnref4\" style=\"margin: 0px; padding...\" title=\"\">",
            "xpath": "a[name=\"_ftnref4\"]",
            "message": "Links must be distinguishable without relying on color",
            "fixSummary": "Fix any of the following:\n  The link has insufficient color contrast of 2:1 with the surrounding text. (Minimum contrast is 3:1, link text: #255faf, surrounding text: #333333)\n  The link has no styling (such as underline) to distinguish it from the surrounding text",
            "relatedPaths": [
              ".field--name-field-c-m-motion-detail > p:nth-child(2)"
            ],
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/defending-londons-postal-service",
            "html": "<a href=\"https://www.london.g...\" name=\"_ftn4\" style=\"margin: 0px; padding...\" title=\"\">",
            "xpath": "a[name=\"_ftn4\"]",
            "message": "Links must be distinguishable without relying on color",
            "fixSummary": "Fix any of the following:\n  The link has insufficient color contrast of 2:1 with the surrounding text. (Minimum contrast is 3:1, link text: #255faf, surrounding text: #333333)\n  The link has no styling (such as underline) to distinguish it from the surrounding text",
            "relatedPaths": [
              "p:nth-child(7)"
            ],
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "aria-dialog-name",
        "engine": "axe",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-dialog-name?application=playwright",
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 2,
        "examples": [
          {
            "url": "https://london.gov.uk/find-us-facebook",
            "html": "<div role=\"dialog\" class=\"x1n2onr6 x1ja2u2z x1afcbsf x78zum5 xdt5ytf x1a2a7pz x6ikm8r x10wlt62 x71s49j x1jx94hy xw5cjc7 x1dmpuos x1vsv7so xau1kf4 x104qc98 x15o3w11 xogydr4 x1vmz7ll x1yyrj1m x193iq5w\">",
            "xpath": ".x1afcbsf",
            "message": "ARIA dialog and alertdialog nodes should have an accessible name",
            "fixSummary": "Fix any of the following:\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/find-us-facebook",
            "html": "<div role=\"dialog\" class=\"x1n2onr6 x1ja2u2z x1afcbsf x78zum5 xdt5ytf x1a2a7pz x6ikm8r x10wlt62 x71s49j x1jx94hy xw5cjc7 x1dmpuos x1vsv7so xau1kf4 x104qc98 x15o3w11 xogydr4 x1vmz7ll x1yyrj1m x193iq5w\">",
            "xpath": ".x1afcbsf",
            "message": "ARIA dialog and alertdialog nodes should have an accessible name",
            "fixSummary": "Fix any of the following:\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute",
            "relatedPaths": null,
            "colorScheme": "dark",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "meta-viewport-large",
        "engine": "axe",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-viewport-large?application=playwright",
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 2,
        "examples": [
          {
            "url": "https://london.gov.uk/find-us-facebook",
            "html": "<meta name=\"viewport\" content=\"width=device-width,initial-scale=1,maximum-scale=2,shrink-to-fit=no\">",
            "xpath": "meta[name=\"viewport\"]",
            "message": "Users should be able to zoom and scale the text up to 500%",
            "fixSummary": "Fix any of the following:\n  <meta> tag limits zooming on mobile devices",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          },
          {
            "url": "https://london.gov.uk/find-us-facebook",
            "html": "<meta name=\"viewport\" content=\"width=device-width,initial-scale=1,maximum-scale=2,shrink-to-fit=no\">",
            "xpath": "meta[name=\"viewport\"]",
            "message": "Users should be able to zoom and scale the text up to 500%",
            "fixSummary": "Fix any of the following:\n  <meta> tag limits zooming on mobile devices",
            "relatedPaths": null,
            "colorScheme": "dark",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "adaptable/list-children",
        "engine": "accesslint",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": null,
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 1,
        "examples": [
          {
            "url": "https://london.gov.uk/find-affordable-home",
            "html": "<div class=\"my-account-menu-divider\"></div>",
            "xpath": "ul > div",
            "message": "List contains non-<li> child <div>.",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "image-alt",
        "engine": "axe",
        "metadata": {
          "roles": [
            "Content Author"
          ],
          "severity": "Critical",
          "blocking": true,
          "wcagCriteria": [
            "1.1.1"
          ],
          "conformanceLevel": "A",
          "description": "Ensures every <img> element has alternative text. Without alt text, blind users receive no information about the image's meaning or purpose."
        },
        "wcag": {
          "scs": [
            "1.1.1"
          ],
          "level": "A"
        },
        "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/image-alt?application=playwright",
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 1,
        "examples": [
          {
            "url": "https://london.gov.uk/bus-services-436-and-452",
            "html": "<img height=\"40\" src=\"data:image/svg+xml;b...\">",
            "xpath": "img",
            "message": "Images must have alternative text",
            "fixSummary": "Fix any of the following:\n  Element does not have an alt attribute\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\"",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "landmark-one-main",
        "engine": "axe",
        "metadata": {
          "roles": [
            "Front-End Developer",
            "UX Designer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": "best-practice",
          "description": "Ensures the page has exactly one main landmark. Screen reader users rely on the main landmark to skip navigation and jump directly to page content."
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/landmark-one-main?application=playwright",
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 1,
        "examples": [
          {
            "url": "https://london.gov.uk/bus-services-436-and-452",
            "html": "<html lang=\"en\" class=\"\">",
            "xpath": "html",
            "message": "Document should have one main landmark",
            "fixSummary": "Fix all of the following:\n  Document does not have a main landmark",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "meta-viewport",
        "engine": "axe",
        "metadata": {
          "roles": [
            "Front-End Developer",
            "UX Designer"
          ],
          "severity": "Critical",
          "blocking": true,
          "wcagCriteria": [
            "1.4.4"
          ],
          "conformanceLevel": "AA",
          "description": "Ensures viewport meta does not disable text scaling. Disabling user-scaling prevents people with low vision from enlarging text to a readable size."
        },
        "wcag": {
          "scs": [
            "1.4.4"
          ],
          "level": "AA"
        },
        "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/meta-viewport?application=playwright",
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 1,
        "examples": [
          {
            "url": "https://london.gov.uk/bus-services-436-and-452",
            "html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale = 1.0, maximum-scale=1.0, user-scalable=no\">",
            "xpath": "meta[name=\"viewport\"]",
            "message": "Zooming and scaling must not be disabled",
            "fixSummary": "Fix any of the following:\n  user-scalable=no on <meta> tag disables zooming on mobile devices",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "text-alternatives/img-alt",
        "engine": "accesslint",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": null,
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 1,
        "examples": [
          {
            "url": "https://london.gov.uk/bus-services-436-and-452",
            "html": "<img height=\"40\" src=\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNjQwIiBoZWlnaHQ9IjUyMCI+DQogPHRpdGxl...",
            "xpath": "div > img",
            "message": "Image element missing alt attribute.",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "distinguishable/meta-viewport",
        "engine": "accesslint",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": null,
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 1,
        "examples": [
          {
            "url": "https://london.gov.uk/bus-services-436-and-452",
            "html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale = 1.0, maximum-scale=1.0, user-scalable=no\">",
            "xpath": "head > meta[name=\"viewport\"]",
            "message": "Viewport disables user scaling (user-scalable=no). Remove this restriction.",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "landmarks/landmark-main",
        "engine": "accesslint",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [],
          "level": null
        },
        "ruleUrl": null,
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 1,
        "examples": [
          {
            "url": "https://london.gov.uk/bus-services-436-and-452",
            "html": "<html>",
            "xpath": "html",
            "message": "Page has no main landmark.",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      },
      {
        "rule": "aria-prohibited-attr",
        "engine": "axe",
        "metadata": {
          "roles": [
            "Front-End Developer"
          ],
          "severity": "Moderate",
          "blocking": false,
          "wcagCriteria": [],
          "conformanceLevel": null
        },
        "wcag": {
          "scs": [
            "4.1.2"
          ],
          "level": "A"
        },
        "ruleUrl": "https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr?application=playwright",
        "ruleTitle": null,
        "pages": {},
        "totalOccurrences": 1,
        "examples": [
          {
            "url": "https://london.gov.uk/national-careers-service",
            "html": "<div class=\"html5-video-player ytp-hide-controls ytp-exp-bottom-control-flexbox ytp-modern-caption ytp-livebadge-color unstarted-mode\" tabindex=\"\" id=\"movie_player\" data-version=\"/s/player/f4c47414/player_embed.vflset/en_US/base.js\" aria-label=\"YouTube Video Player\">",
            "xpath": "#homepagevideo",
            "message": "Elements must only use permitted ARIA attributes",
            "fixSummary": "Fix all of the following:\n  aria-label attribute cannot be used on a div with no valid role attribute.",
            "relatedPaths": null,
            "colorScheme": "light",
            "fingerprint": null,
            "firstSeenAt": null
          }
        ]
      }
    ],
    "roleStats": {
      "UX Designer": 22,
      "Visual Designer": 6,
      "Content Author": 12,
      "Front-End Developer": 674
    },
    "severityStats": {
      "Critical": 2,
      "Serious": 6,
      "Moderate": 684,
      "Minor": 0
    }
  }
}
