{
 "schema_version": "0.1",
 "site": "www.hackney.gov.uk",
 "scan_week": "2026-W45",
 "generated_at": "2026-11-04T16:43:57.516Z",
 "source_files": [
  "docs/reports/www.hackney.gov.uk/2026-W45/",
  "data/www.hackney.gov.uk/findings.json",
  "data/www.hackney.gov.uk/2026-W45/summary.json"
 ],
 "summary": {
  "pages_known": 1489,
  "pages_scanned_this_week": 972,
  "pages_with_known_issues": 1426,
  "findings": 28,
  "clusters": 25,
  "new_findings": 5,
  "persistent_findings": 23,
  "high_priority_findings": 16
 },
 "top_risks": [
  {
   "finding_id": "VS-0841abc2",
   "rule_id": "aria-input-field-name",
   "rule_label": "ARIA input fields must have an accessible name",
   "severity": "Critical",
   "priority": "p1",
   "trend": "persistent",
   "pages_affected": 856,
   "rationale": "Critical severity; affects 856 pages; persistent across weeks",
   "top_url": "https://www.hackney.gov.uk/community-safety-and-environment/pollution-noise-and-environmental-problems/air-quality/improving-air-quality-supporting-sustainable-transport"
  },
  {
   "finding_id": "VS-3f76c7ea",
   "rule_id": "frame-title",
   "rule_label": "Frames must have an accessible name",
   "severity": "Serious",
   "priority": "p1",
   "trend": "persistent",
   "pages_affected": 21,
   "rationale": "Serious severity; persistent across weeks",
   "top_url": "https://www.hackney.gov.uk/parking-streets-and-transport/school-streets"
  },
  {
   "finding_id": "VS-e9fe47ac",
   "rule_id": "link-name",
   "rule_label": "Links must have discernible text",
   "severity": "Serious",
   "priority": "p1",
   "trend": "persistent",
   "pages_affected": 2,
   "rationale": "Serious severity; persistent across weeks",
   "top_url": "https://www.hackney.gov.uk/council-tax-and-benefits/benefits/how-we-assess-your-benefits-claim/local-housing-allowance-lha-explained"
  },
  {
   "finding_id": "VS-9074b4dd",
   "rule_id": "image-alt",
   "rule_label": "Images must have alternative text",
   "severity": "Critical",
   "priority": "p1",
   "trend": "persistent",
   "pages_affected": 1,
   "rationale": "Critical severity; persistent across weeks",
   "top_url": "https://www.hackney.gov.uk/museum"
  },
  {
   "finding_id": "VS-9425a266",
   "rule_id": "aria-required-attr",
   "rule_label": "Required ARIA attributes must be provided",
   "severity": "Critical",
   "priority": "p1",
   "trend": "new",
   "pages_affected": 1,
   "rationale": "Critical severity",
   "top_url": "https://www.hackney.gov.uk/museum"
  },
  {
   "finding_id": "VS-a0bdbdf6",
   "rule_id": "list",
   "rule_label": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
   "severity": "Serious",
   "priority": "p1",
   "trend": "persistent",
   "pages_affected": 1,
   "rationale": "Serious severity; persistent across weeks",
   "top_url": "https://www.hackney.gov.uk/payments"
  },
  {
   "finding_id": "VS-45146742",
   "rule_id": "aria-hidden-focus",
   "rule_label": "ARIA hidden element must not be focusable or contain focusable elements",
   "severity": "Serious",
   "priority": "p1",
   "trend": "new",
   "pages_affected": 1,
   "rationale": "Serious severity",
   "top_url": "https://www.hackney.gov.uk/News"
  },
  {
   "finding_id": "VS-be8d563e",
   "rule_id": "color-contrast",
   "rule_label": "Elements must meet minimum color contrast ratio thresholds",
   "severity": "Serious",
   "priority": "p1",
   "trend": "persistent",
   "pages_affected": 1,
   "rationale": "Serious severity; persistent across weeks",
   "top_url": "https://www.hackney.gov.uk/museum"
  },
  {
   "finding_id": "VS-646b1e0b",
   "rule_id": "sia-r66",
   "rule_label": "Text has enhanced contrast",
   "severity": "Moderate",
   "priority": "p2",
   "trend": "persistent",
   "pages_affected": 434,
   "rationale": "affects 434 pages; persistent across weeks",
   "top_url": "https://www.hackney.gov.uk/council-and-elections/mayor-cabinet-and-councillors/how-council-works"
  },
  {
   "finding_id": "VS-cb53cc4d",
   "rule_id": "sia-r111",
   "rule_label": "Target size is at least 44×44 CSS pixels (Enhanced)",
   "severity": "Moderate",
   "priority": "p2",
   "trend": "persistent",
   "pages_affected": 434,
   "rationale": "affects 434 pages; persistent across weeks",
   "top_url": "https://www.hackney.gov.uk/council-and-elections/mayor-cabinet-and-councillors/how-council-works"
  }
 ],
 "findings": [
  {
   "finding_id": "VS-0841abc2",
   "fingerprint": "a3512e8b",
   "rule_id": "aria-input-field-name",
   "rule_label": "ARIA input fields must have an accessible name",
   "engine": "axe-core",
   "tool": "axe-core",
   "wcag_sc": "4.1.2",
   "wcag_name": "Name, Role, Value",
   "wcag_level": "A",
   "wcag_version": "2.0",
   "wcag_category": "WCAG 2.0 A",
   "rule_url": "https://dequeuniversity.com/rules/axe/4.14/aria-input-field-name?application=axeAPI",
   "severity": "Critical",
   "priority": "p1",
   "confidence": "high",
   "rationale": "Critical severity; affects 856 pages; persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 856,
    "affected_pages_previous": 1101
   },
   "frequency": {
    "instances": 856,
    "pages_affected": 856,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "ARIA input fields must have an accessible name (WCAG 4.1.2)",
   "description": "ARIA input fields must have an accessible name. Detected by axe-core rule aria-input-field-name on 856 of 972 scanned pages (856 instances).",
   "remediation_tip": null,
   "suggested_fix": "See remediation guidance: https://dequeuniversity.com/rules/axe/4.14/aria-input-field-name?application=axeAPI",
   "expected_behavior": "Element passes axe-core rule aria-input-field-name (WCAG 4.1.2).",
   "actual_behavior": "ARIA input fields must have an accessible name. Detected by axe-core rule aria-input-field-name on 856 of 972 scanned pages (856 instances).",
   "testing_environment": "Automated: axe-core, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/community-safety-and-environment/pollution-noise-and-environmental-problems/air-quality/improving-air-quality-supporting-sustainable-transport",
    "https://www.hackney.gov.uk/libraries-parks-and-leisure/parks-and-green-spaces/memorials-abney-park-cemetery",
    "https://www.hackney.gov.uk/council-and-elections/mayor-cabinet-and-councillors/how-council-works"
   ],
   "html_fragments": [
    {
     "fingerprint": "f3b5e879",
     "html": "<div class=\"choices bbd-translation-form__choices notranslate\" data-type=\"select-one\" tabindex=\"0\" role=\"listbox\" aria-haspopup=\"true\" aria-expanded=\"false\">",
     "selectors": [
      ".choices"
     ]
    }
   ],
   "url_patterns": [
    {
     "pattern": "/community-safety-and-environment/pollution-noise-and-environmental-problems/air-quality/improving-air-quality-supporting-sustainable-transport",
     "count": 1
    },
    {
     "pattern": "/libraries-parks-and-leisure/parks-and-green-spaces/memorials-abney-park-cemetery",
     "count": 1
    },
    {
     "pattern": "/council-and-elections/mayor-cabinet-and-councillors/how-council-works",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [
     {
      "code": "WV",
      "group": "Without vision",
      "prevalence": 0.01,
      "percent": "1.0%",
      "estimatedExcluded": null
     },
     {
      "code": "LV",
      "group": "Limited vision",
      "prevalence": 0.024,
      "percent": "2.4%",
      "estimatedExcluded": null
     },
     {
      "code": "LM",
      "group": "Limited manipulation/strength",
      "prevalence": 0.13,
      "percent": "13.0%",
      "estimatedExcluded": null
     }
    ],
    "summary": "Affects Without vision (1.0%), Limited vision (2.4%), Limited manipulation/strength (13.0%)."
   }
  },
  {
   "finding_id": "VS-3f76c7ea",
   "fingerprint": "fbb98de4",
   "rule_id": "frame-title",
   "rule_label": "Frames must have an accessible name",
   "engine": "axe-core",
   "tool": "axe-core",
   "wcag_sc": "4.1.2",
   "wcag_name": "Name, Role, Value",
   "wcag_level": "A",
   "wcag_version": "2.0",
   "wcag_category": "WCAG 2.0 A",
   "rule_url": "https://dequeuniversity.com/rules/axe/4.14/frame-title?application=axeAPI",
   "severity": "Serious",
   "priority": "p1",
   "confidence": "high",
   "rationale": "Serious severity; persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 21,
    "affected_pages_previous": 28
   },
   "frequency": {
    "instances": 34,
    "pages_affected": 21,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Frames must have an accessible name (WCAG 4.1.2)",
   "description": "Frames must have an accessible name. Detected by axe-core rule frame-title on 21 of 972 scanned pages (34 instances).",
   "remediation_tip": "Give every <iframe> a descriptive title attribute.",
   "suggested_fix": "See remediation guidance: https://dequeuniversity.com/rules/axe/4.14/frame-title?application=axeAPI",
   "expected_behavior": "Element passes axe-core rule frame-title (WCAG 4.1.2).",
   "actual_behavior": "Frames must have an accessible name. Detected by axe-core rule frame-title on 21 of 972 scanned pages (34 instances).",
   "testing_environment": "Automated: axe-core, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/parking-streets-and-transport/school-streets",
    "https://www.hackney.gov.uk/housing/repairs/diy-repairs-videos",
    "https://www.hackney.gov.uk/libraries-parks-and-leisure/hackney-leisure-map"
   ],
   "html_fragments": [
    {
     "fingerprint": "d7fb8691",
     "html": "<iframe src=\"https://map2.hackney.gov.uk/maps/school-streets/embed.html\" data-once=\"iframe-resizer\" id=\"iFrameResizer0\" scrolling=\"no\" style=\"overflow: hidden; height: 552px;\">&nbsp;</iframe>",
     "selectors": [
      "#iFrameResizer0"
     ]
    },
    {
     "fingerprint": "caf685af",
     "html": "<iframe height=\"462\" src=\"https://www.youtube.com/embed/NZN2AZAMPHY?start=21\" data-once=\"iframe-resizer\">&nbsp;</iframe>",
     "selectors": [
      "p:nth-child(4) > iframe[height=\"462\"][data-once=\"iframe-resizer\"]"
     ]
    },
    {
     "fingerprint": "da12f5cc",
     "html": "<iframe height=\"462\" src=\"https://www.youtube.com/embed/ktklk7d0ibY?start=21\" data-once=\"iframe-resizer\">&nbsp;</iframe>",
     "selectors": [
      "p:nth-child(8) > iframe[height=\"462\"][data-once=\"iframe-resizer\"]"
     ]
    }
   ],
   "url_patterns": [
    {
     "pattern": "/parking-streets-and-transport/school-streets",
     "count": 1
    },
    {
     "pattern": "/housing/repairs/diy-repairs-videos",
     "count": 1
    },
    {
     "pattern": "/libraries-parks-and-leisure/hackney-leisure-map",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [
     {
      "code": "WV",
      "group": "Without vision",
      "prevalence": 0.01,
      "percent": "1.0%",
      "estimatedExcluded": null
     },
     {
      "code": "LV",
      "group": "Limited vision",
      "prevalence": 0.024,
      "percent": "2.4%",
      "estimatedExcluded": null
     },
     {
      "code": "LM",
      "group": "Limited manipulation/strength",
      "prevalence": 0.13,
      "percent": "13.0%",
      "estimatedExcluded": null
     }
    ],
    "summary": "Affects Without vision (1.0%), Limited vision (2.4%), Limited manipulation/strength (13.0%)."
   }
  },
  {
   "finding_id": "VS-e9fe47ac",
   "fingerprint": "f85a6839",
   "rule_id": "link-name",
   "rule_label": "Links must have discernible text",
   "engine": "axe-core",
   "tool": "axe-core",
   "wcag_sc": "2.4.4",
   "wcag_name": "Link Purpose (In Context)",
   "wcag_level": "A",
   "wcag_version": "2.0",
   "wcag_category": "WCAG 2.0 A",
   "rule_url": "https://dequeuniversity.com/rules/axe/4.14/link-name?application=axeAPI",
   "severity": "Serious",
   "priority": "p1",
   "confidence": "low",
   "rationale": "Serious severity; persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 2,
    "affected_pages_previous": 3
   },
   "frequency": {
    "instances": 7,
    "pages_affected": 2,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Links must have discernible text (WCAG 2.4.4)",
   "description": "Links must have discernible text. Detected by axe-core rule link-name on 2 of 972 scanned pages (7 instances).",
   "remediation_tip": "Give the link discernible text. Avoid empty links and icon-only links without an aria-label.",
   "suggested_fix": "See remediation guidance: https://dequeuniversity.com/rules/axe/4.14/link-name?application=axeAPI",
   "expected_behavior": "Element passes axe-core rule link-name (WCAG 2.4.4).",
   "actual_behavior": "Links must have discernible text. Detected by axe-core rule link-name on 2 of 972 scanned pages (7 instances).",
   "testing_environment": "Automated: axe-core, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/council-tax-and-benefits/benefits/how-we-assess-your-benefits-claim/local-housing-allowance-lha-explained",
    "https://www.hackney.gov.uk/museum"
   ],
   "html_fragments": [
    {
     "fingerprint": "e74f3b70",
     "html": "<a href=\"https://docs.google.com/document/d/1p_V1n-88UA43TVGyuUdNx-F6CYH2Un295gsCuYqqpYY/edit?usp=sharing\" class=\"ext\" data-extlink=\"\" rel=\"nofollow noreferrer\">&nbsp;</a>",
     "selectors": [
      "p:nth-child(65) > .ext[data-extlink=\"\"][rel=\"nofollow noreferrer\"]:nth-child(2)"
     ]
    },
    {
     "fingerprint": "13710000",
     "html": "<a href=\"https://hackney-museum.hackney.gov.uk/get-involved/hackneys-bangladeshi-heritage/\">",
     "selectors": [
      ".wp-block-columns.wp-container-core-columns-is-layout-8f761849.wp-block-columns-is-layout-flex:nth-child(1) > .wp-block-column.is-layout-flow.wp-block-column-is-layout-flow:nth-child(1) > .featured-item > .featured-item__media > a"
     ]
    },
    {
     "fingerprint": "b81b24ee",
     "html": "<a href=\"https://hackney-museum.hackney.gov.uk/get-involved/join-our-newsletter/\">",
     "selectors": [
      ".wp-block-columns.wp-container-core-columns-is-layout-8f761849.wp-block-columns-is-layout-flex:nth-child(1) > .wp-block-column.is-layout-flow.wp-block-column-is-layout-flow:nth-child(2) > .featured-item > .featured-item__media > a"
     ]
    }
   ],
   "url_patterns": [
    {
     "pattern": "/council-tax-and-benefits/benefits/how-we-assess-your-benefits-claim/local-housing-allowance-lha-explained",
     "count": 1
    },
    {
     "pattern": "/museum",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [
     {
      "code": "WV",
      "group": "Without vision",
      "prevalence": 0.01,
      "percent": "1.0%",
      "estimatedExcluded": null
     },
     {
      "code": "LV",
      "group": "Limited vision",
      "prevalence": 0.024,
      "percent": "2.4%",
      "estimatedExcluded": null
     },
     {
      "code": "LCLA",
      "group": "Limited cognitive, language, or learning ability",
      "prevalence": 0.11,
      "percent": "11.0%",
      "estimatedExcluded": null
     }
    ],
    "summary": "Affects Without vision (1.0%), Limited vision (2.4%), Limited cognitive, language, or learning ability (11.0%)."
   }
  },
  {
   "finding_id": "VS-9074b4dd",
   "fingerprint": "f1846b41",
   "rule_id": "image-alt",
   "rule_label": "Images must have alternative text",
   "engine": "axe-core",
   "tool": "axe-core",
   "wcag_sc": "1.1.1",
   "wcag_name": "Non-text Content",
   "wcag_level": "A",
   "wcag_version": "2.0",
   "wcag_category": "WCAG 2.0 A",
   "rule_url": "https://dequeuniversity.com/rules/axe/4.14/image-alt?application=axeAPI",
   "severity": "Critical",
   "priority": "p1",
   "confidence": "low",
   "rationale": "Critical severity; persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 1,
    "affected_pages_previous": 1
   },
   "frequency": {
    "instances": 6,
    "pages_affected": 1,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Images must have alternative text (WCAG 1.1.1)",
   "description": "Images must have alternative text. Detected by axe-core rule image-alt on 1 of 972 scanned pages (6 instances).",
   "remediation_tip": "Give every <img> a meaningful alt attribute. Use alt=\"\" only for decorative images so screen readers skip them.",
   "suggested_fix": "See remediation guidance: https://dequeuniversity.com/rules/axe/4.14/image-alt?application=axeAPI",
   "expected_behavior": "Element passes axe-core rule image-alt (WCAG 1.1.1).",
   "actual_behavior": "Images must have alternative text. Detected by axe-core rule image-alt on 1 of 972 scanned pages (6 instances).",
   "testing_environment": "Automated: axe-core, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/museum"
   ],
   "html_fragments": [
    {
     "fingerprint": "3630c2a8",
     "html": "<img decoding=\"async\" src=\"https://hackney-muse...\" srcset=\"https://hackney-muse...\" sizes=\"400px 400px,700px 62...\" class=\"featured-item__img\">",
     "selectors": [
      ".wp-block-columns.wp-container-core-columns-is-layout-8f761849.wp-block-columns-is-layout-flex:nth-child(1) > .wp-block-column.is-layout-flow.wp-block-column-is-layout-flow:nth-child(1) > .featured-item > .featured-item__media > a > .featured-item__img",
      ".wp-block-columns.wp-container-core-columns-is-layout-8f761849.wp-block-columns-is-layout-flex:nth-child(1) > .wp-block-column.is-layout-flow.wp-block-column-is-layout-flow:nth-child(2) > .featured-item > .featured-item__media > a > .featured-item__img",
      ".wp-block-columns.wp-container-core-columns-is-layout-8f761849.wp-block-columns-is-layout-flex:nth-child(1) > .wp-block-column.is-layout-flow.wp-block-column-is-layout-flow:nth-child(3) > .featured-item > .featured-item__media > a > .featured-item__img"
     ]
    }
   ],
   "url_patterns": [
    {
     "pattern": "/museum",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [
     {
      "code": "WV",
      "group": "Without vision",
      "prevalence": 0.01,
      "percent": "1.0%",
      "estimatedExcluded": null
     },
     {
      "code": "LV",
      "group": "Limited vision",
      "prevalence": 0.024,
      "percent": "2.4%",
      "estimatedExcluded": null
     },
     {
      "code": "LCLA",
      "group": "Limited cognitive, language, or learning ability",
      "prevalence": 0.11,
      "percent": "11.0%",
      "estimatedExcluded": null
     }
    ],
    "summary": "Affects Without vision (1.0%), Limited vision (2.4%), Limited cognitive, language, or learning ability (11.0%)."
   }
  },
  {
   "finding_id": "VS-9425a266",
   "fingerprint": "5a7b6d5d",
   "rule_id": "aria-required-attr",
   "rule_label": "Required ARIA attributes must be provided",
   "engine": "axe-core",
   "tool": "axe-core",
   "wcag_sc": "4.1.2",
   "wcag_name": "Name, Role, Value",
   "wcag_level": "A",
   "wcag_version": "2.0",
   "wcag_category": "WCAG 2.0 A",
   "rule_url": "https://dequeuniversity.com/rules/axe/4.14/aria-required-attr?application=axeAPI",
   "severity": "Critical",
   "priority": "p1",
   "confidence": "low",
   "rationale": "Critical severity",
   "trend": {
    "status": "new",
    "first_observed": "2026-W45",
    "last_observed": "2026-W45",
    "weeks_observed": 1,
    "affected_pages_current": 1,
    "affected_pages_previous": null
   },
   "frequency": {
    "instances": 1,
    "pages_affected": 1,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Required ARIA attributes must be provided (WCAG 4.1.2)",
   "description": "Required ARIA attributes must be provided. Detected by axe-core rule aria-required-attr on 1 of 972 scanned pages (1 instances).",
   "remediation_tip": "Add the ARIA attributes this role requires (e.g. aria-checked on a checkbox role).",
   "suggested_fix": "See remediation guidance: https://dequeuniversity.com/rules/axe/4.14/aria-required-attr?application=axeAPI",
   "expected_behavior": "Element passes axe-core rule aria-required-attr (WCAG 4.1.2).",
   "actual_behavior": "Required ARIA attributes must be provided. Detected by axe-core rule aria-required-attr on 1 of 972 scanned pages (1 instances).",
   "testing_environment": "Automated: axe-core, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/museum"
   ],
   "html_fragments": [
    {
     "fingerprint": "6da28faa",
     "html": "<legend role=\"heading\" id=\"hj-survey-lbl-1\" class=\"hj-survey-1fma6oh\"><span style=\"display: contents;\">Did you find what you are looking for?</span></legend>",
     "selectors": [
      "#hj-survey-lbl-1"
     ]
    }
   ],
   "url_patterns": [
    {
     "pattern": "/museum",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [
     {
      "code": "WV",
      "group": "Without vision",
      "prevalence": 0.01,
      "percent": "1.0%",
      "estimatedExcluded": null
     },
     {
      "code": "LV",
      "group": "Limited vision",
      "prevalence": 0.024,
      "percent": "2.4%",
      "estimatedExcluded": null
     },
     {
      "code": "LM",
      "group": "Limited manipulation/strength",
      "prevalence": 0.13,
      "percent": "13.0%",
      "estimatedExcluded": null
     }
    ],
    "summary": "Affects Without vision (1.0%), Limited vision (2.4%), Limited manipulation/strength (13.0%)."
   }
  },
  {
   "finding_id": "VS-a0bdbdf6",
   "fingerprint": "ca0fa40f",
   "rule_id": "list",
   "rule_label": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
   "engine": "axe-core",
   "tool": "axe-core",
   "wcag_sc": "1.3.1",
   "wcag_name": "Info and Relationships",
   "wcag_level": "A",
   "wcag_version": "2.0",
   "wcag_category": "WCAG 2.0 A",
   "rule_url": "https://dequeuniversity.com/rules/axe/4.14/list?application=axeAPI",
   "severity": "Serious",
   "priority": "p1",
   "confidence": "low",
   "rationale": "Serious severity; persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 1,
    "affected_pages_previous": 1
   },
   "frequency": {
    "instances": 1,
    "pages_affected": 1,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements (WCAG 1.3.1)",
   "description": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements. Detected by axe-core rule list on 1 of 972 scanned pages (1 instances).",
   "remediation_tip": "Use <ul>/<ol> with only <li> children for lists; don't fake lists with <div>s.",
   "suggested_fix": "See remediation guidance: https://dequeuniversity.com/rules/axe/4.14/list?application=axeAPI",
   "expected_behavior": "Element passes axe-core rule list (WCAG 1.3.1).",
   "actual_behavior": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements. Detected by axe-core rule list on 1 of 972 scanned pages (1 instances).",
   "testing_environment": "Automated: axe-core, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/payments"
   ],
   "html_fragments": [
    {
     "fingerprint": "34cea4c3",
     "html": "<ul>",
     "selectors": [
      ".pagination > ul"
     ]
    }
   ],
   "url_patterns": [
    {
     "pattern": "/payments",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [
     {
      "code": "WV",
      "group": "Without vision",
      "prevalence": 0.01,
      "percent": "1.0%",
      "estimatedExcluded": null
     },
     {
      "code": "LV",
      "group": "Limited vision",
      "prevalence": 0.024,
      "percent": "2.4%",
      "estimatedExcluded": null
     },
     {
      "code": "LCLA",
      "group": "Limited cognitive, language, or learning ability",
      "prevalence": 0.11,
      "percent": "11.0%",
      "estimatedExcluded": null
     }
    ],
    "summary": "Affects Without vision (1.0%), Limited vision (2.4%), Limited cognitive, language, or learning ability (11.0%)."
   }
  },
  {
   "finding_id": "VS-45146742",
   "fingerprint": "cc19d944",
   "rule_id": "aria-hidden-focus",
   "rule_label": "ARIA hidden element must not be focusable or contain focusable elements",
   "engine": "axe-core",
   "tool": "axe-core",
   "wcag_sc": "4.1.2",
   "wcag_name": "Name, Role, Value",
   "wcag_level": "A",
   "wcag_version": "2.0",
   "wcag_category": "WCAG 2.0 A",
   "rule_url": "https://dequeuniversity.com/rules/axe/4.14/aria-hidden-focus?application=axeAPI",
   "severity": "Serious",
   "priority": "p1",
   "confidence": "low",
   "rationale": "Serious severity",
   "trend": {
    "status": "new",
    "first_observed": "2026-W45",
    "last_observed": "2026-W45",
    "weeks_observed": 1,
    "affected_pages_current": 1,
    "affected_pages_previous": null
   },
   "frequency": {
    "instances": 2,
    "pages_affected": 1,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "ARIA hidden element must not be focusable or contain focusable elements (WCAG 4.1.2)",
   "description": "ARIA hidden element must not be focusable or contain focusable elements. Detected by axe-core rule aria-hidden-focus on 1 of 972 scanned pages (2 instances).",
   "remediation_tip": "Don't put focusable elements inside aria-hidden=\"true\"; they become a keyboard trap for screen-reader users.",
   "suggested_fix": "See remediation guidance: https://dequeuniversity.com/rules/axe/4.14/aria-hidden-focus?application=axeAPI",
   "expected_behavior": "Element passes axe-core rule aria-hidden-focus (WCAG 4.1.2).",
   "actual_behavior": "ARIA hidden element must not be focusable or contain focusable elements. Detected by axe-core rule aria-hidden-focus on 1 of 972 scanned pages (2 instances).",
   "testing_environment": "Automated: axe-core, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/News"
   ],
   "html_fragments": [
    {
     "fingerprint": "683db900",
     "html": "<div class=\"slick-slide\" data-slick-index=\"0\" role=\"group\" aria-label=\"slide 1\" aria-hidden=\"true\" style=\"width: 860px;\">",
     "selectors": [
      ".carousel__images > .slick-list.draggable > .slick-track > .slick-slide[data-slick-index=\"0\"][aria-label=\"slide 1\"]"
     ]
    },
    {
     "fingerprint": "72cff40d",
     "html": "<div class=\"slick-slide\" data-slick-index=\"0\" role=\"group\" aria-label=\"slide 1\" aria-hidden=\"true\" style=\"width: 340px; position: relative; left: 0px; top: 0px; z-index: 998; opacity: 0; transition: o",
     "selectors": [
      ".carousel__info > .slick-list.draggable > .slick-track > .slick-slide[data-slick-index=\"0\"][aria-label=\"slide 1\"]"
     ]
    }
   ],
   "url_patterns": [
    {
     "pattern": "/News",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [
     {
      "code": "WV",
      "group": "Without vision",
      "prevalence": 0.01,
      "percent": "1.0%",
      "estimatedExcluded": null
     },
     {
      "code": "LV",
      "group": "Limited vision",
      "prevalence": 0.024,
      "percent": "2.4%",
      "estimatedExcluded": null
     },
     {
      "code": "LM",
      "group": "Limited manipulation/strength",
      "prevalence": 0.13,
      "percent": "13.0%",
      "estimatedExcluded": null
     }
    ],
    "summary": "Affects Without vision (1.0%), Limited vision (2.4%), Limited manipulation/strength (13.0%)."
   }
  },
  {
   "finding_id": "VS-be8d563e",
   "fingerprint": "1820bc84",
   "rule_id": "color-contrast",
   "rule_label": "Elements must meet minimum color contrast ratio thresholds",
   "engine": "axe-core",
   "tool": "axe-core",
   "wcag_sc": "1.4.3",
   "wcag_name": "Contrast (Minimum)",
   "wcag_level": "AA",
   "wcag_version": "2.0",
   "wcag_category": "WCAG 2.0 AA",
   "rule_url": "https://dequeuniversity.com/rules/axe/4.14/color-contrast?application=axeAPI",
   "severity": "Serious",
   "priority": "p1",
   "confidence": "low",
   "rationale": "Serious severity; persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 1,
    "affected_pages_previous": 1
   },
   "frequency": {
    "instances": 3,
    "pages_affected": 1,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Elements must meet minimum color contrast ratio thresholds (WCAG 1.4.3)",
   "description": "Elements must meet minimum color contrast ratio thresholds. Detected by axe-core rule color-contrast on 1 of 972 scanned pages (3 instances).",
   "remediation_tip": "Increase the contrast between text and its background to at least 4.5:1 (3:1 for large text). Check both light and dark modes.",
   "suggested_fix": "See remediation guidance: https://dequeuniversity.com/rules/axe/4.14/color-contrast?application=axeAPI",
   "expected_behavior": "Element passes axe-core rule color-contrast (WCAG 1.4.3).",
   "actual_behavior": "Elements must meet minimum color contrast ratio thresholds. Detected by axe-core rule color-contrast on 1 of 972 scanned pages (3 instances).",
   "testing_environment": "Automated: axe-core, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/museum"
   ],
   "html_fragments": [
    {
     "fingerprint": "33b744eb",
     "html": "<a href=\"https://hackney-museum.hackney.gov.uk/\" aria-current=\"page\">Home</a>",
     "selectors": [
      "#menu-nested-pages-1 > .menu-item-home.current-menu-item.page_item > a[aria-current=\"page\"]"
     ]
    },
    {
     "fingerprint": "e049128e",
     "html": "<div class=\"copyright-bar\">\n\t\t\t\t\t© 2026 - Powered by <a href=\"https://themuseumplatform.com/\">The Museum Platform</a>\t\t\t\t</div>",
     "selectors": [
      ".copyright-bar"
     ]
    },
    {
     "fingerprint": "a14411fb",
     "html": "<a href=\"https://themuseumplatform.com/\">The Museum Platform</a>",
     "selectors": [
      "a[href$=\"themuseumplatform.com/\"]"
     ]
    }
   ],
   "url_patterns": [
    {
     "pattern": "/museum",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [
     {
      "code": "LV",
      "group": "Limited vision",
      "prevalence": 0.024,
      "percent": "2.4%",
      "estimatedExcluded": null
     },
     {
      "code": "WPC",
      "group": "Without color perception",
      "prevalence": 0.045,
      "percent": "4.5%",
      "estimatedExcluded": null
     }
    ],
    "summary": "Affects Limited vision (2.4%), Without color perception (4.5%)."
   }
  },
  {
   "finding_id": "VS-646b1e0b",
   "fingerprint": "afad441e",
   "rule_id": "sia-r66",
   "rule_label": "Text has enhanced contrast",
   "engine": "alfa",
   "tool": "Siteimprove Alfa",
   "wcag_sc": "1.4.6",
   "wcag_name": "Contrast (Enhanced)",
   "wcag_level": "AAA",
   "wcag_version": "2.0",
   "wcag_category": "WCAG 2.x AAA",
   "rule_url": "https://alfa.siteimprove.com/rules/sia-r66",
   "severity": "Moderate",
   "priority": "p2",
   "confidence": "high",
   "rationale": "affects 434 pages; persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 434,
    "affected_pages_previous": 553
   },
   "frequency": {
    "instances": 10428,
    "pages_affected": 434,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Text has enhanced contrast (WCAG 1.4.6)",
   "description": "Text has enhanced contrast. Detected by Siteimprove Alfa rule sia-r66 on 434 of 972 scanned pages (10428 instances).",
   "remediation_tip": "Increase text contrast to meet WCAG AAA (7:1).",
   "suggested_fix": "See remediation guidance: https://alfa.siteimprove.com/rules/sia-r66",
   "expected_behavior": "Element passes Siteimprove Alfa rule sia-r66 (WCAG 1.4.6).",
   "actual_behavior": "Text has enhanced contrast. Detected by Siteimprove Alfa rule sia-r66 on 434 of 972 scanned pages (10428 instances).",
   "testing_environment": "Automated: Siteimprove Alfa, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/council-and-elections/mayor-cabinet-and-councillors/how-council-works",
    "https://www.hackney.gov.uk/council-and-elections/data-protection-and-freedom-information/privacy-statements/recruitment-privacy-notice",
    "https://www.hackney.gov.uk/parking-streets-and-transport/travel-plans/school-travel-plans/school-travel-plans"
   ],
   "html_fragments": [],
   "url_patterns": [
    {
     "pattern": "/council-and-elections/mayor-cabinet-and-councillors/how-council-works",
     "count": 1
    },
    {
     "pattern": "/council-and-elections/data-protection-and-freedom-information/privacy-statements/recruitment-privacy-notice",
     "count": 1
    },
    {
     "pattern": "/parking-streets-and-transport/travel-plans/school-travel-plans/school-travel-plans",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [],
    "summary": "Not captured by automated scan — requires manual testing."
   }
  },
  {
   "finding_id": "VS-cb53cc4d",
   "fingerprint": "1738fa81",
   "rule_id": "sia-r111",
   "rule_label": "Target size is at least 44×44 CSS pixels (Enhanced)",
   "engine": "alfa",
   "tool": "Siteimprove Alfa",
   "wcag_sc": "2.5.5",
   "wcag_name": "Target Size (Enhanced)",
   "wcag_level": "AAA",
   "wcag_version": "2.1",
   "wcag_category": "WCAG 2.x AAA",
   "rule_url": "https://alfa.siteimprove.com/rules/sia-r111",
   "severity": "Moderate",
   "priority": "p2",
   "confidence": "high",
   "rationale": "affects 434 pages; persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 434,
    "affected_pages_previous": 553
   },
   "frequency": {
    "instances": 6095,
    "pages_affected": 434,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Target size is at least 44×44 CSS pixels (Enhanced) (WCAG 2.5.5)",
   "description": "Target size is at least 44×44 CSS pixels (Enhanced). Detected by Siteimprove Alfa rule sia-r111 on 434 of 972 scanned pages (6095 instances).",
   "remediation_tip": null,
   "suggested_fix": "See remediation guidance: https://alfa.siteimprove.com/rules/sia-r111",
   "expected_behavior": "Element passes Siteimprove Alfa rule sia-r111 (WCAG 2.5.5).",
   "actual_behavior": "Target size is at least 44×44 CSS pixels (Enhanced). Detected by Siteimprove Alfa rule sia-r111 on 434 of 972 scanned pages (6095 instances).",
   "testing_environment": "Automated: Siteimprove Alfa, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/council-and-elections/mayor-cabinet-and-councillors/how-council-works",
    "https://www.hackney.gov.uk/council-and-elections/data-protection-and-freedom-information/privacy-statements/recruitment-privacy-notice",
    "https://www.hackney.gov.uk/parking-streets-and-transport/travel-plans/school-travel-plans/school-travel-plans"
   ],
   "html_fragments": [],
   "url_patterns": [
    {
     "pattern": "/council-and-elections/mayor-cabinet-and-councillors/how-council-works",
     "count": 1
    },
    {
     "pattern": "/council-and-elections/data-protection-and-freedom-information/privacy-statements/recruitment-privacy-notice",
     "count": 1
    },
    {
     "pattern": "/parking-streets-and-transport/travel-plans/school-travel-plans/school-travel-plans",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [],
    "summary": "Not captured by automated scan — requires manual testing."
   }
  },
  {
   "finding_id": "VS-e05344b9",
   "fingerprint": "9d7a222a",
   "rule_id": "sia-r18",
   "rule_label": "aria attribute is permitted for element role",
   "engine": "alfa",
   "tool": "Siteimprove Alfa",
   "wcag_sc": null,
   "wcag_name": null,
   "wcag_level": null,
   "wcag_version": null,
   "wcag_category": "Best Practice",
   "rule_url": "https://alfa.siteimprove.com/rules/sia-r18",
   "severity": "Moderate",
   "priority": "p2",
   "confidence": "high",
   "rationale": "affects 434 pages; persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 434,
    "affected_pages_previous": 553
   },
   "frequency": {
    "instances": 462,
    "pages_affected": 434,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "aria attribute is permitted for element role (best practice, not a WCAG requirement)",
   "description": "aria attribute is permitted for element role. Detected by Siteimprove Alfa rule sia-r18 on 434 of 972 scanned pages (462 instances).",
   "remediation_tip": "Only use ARIA states/properties that are allowed on this element/role.",
   "suggested_fix": "See remediation guidance: https://alfa.siteimprove.com/rules/sia-r18",
   "expected_behavior": "Element passes Siteimprove Alfa rule sia-r18.",
   "actual_behavior": "aria attribute is permitted for element role. Detected by Siteimprove Alfa rule sia-r18 on 434 of 972 scanned pages (462 instances).",
   "testing_environment": "Automated: Siteimprove Alfa, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/council-and-elections/mayor-cabinet-and-councillors/how-council-works",
    "https://www.hackney.gov.uk/council-and-elections/data-protection-and-freedom-information/privacy-statements/recruitment-privacy-notice",
    "https://www.hackney.gov.uk/parking-streets-and-transport/travel-plans/school-travel-plans/school-travel-plans"
   ],
   "html_fragments": [],
   "url_patterns": [
    {
     "pattern": "/council-and-elections/mayor-cabinet-and-councillors/how-council-works",
     "count": 1
    },
    {
     "pattern": "/council-and-elections/data-protection-and-freedom-information/privacy-statements/recruitment-privacy-notice",
     "count": 1
    },
    {
     "pattern": "/parking-streets-and-transport/travel-plans/school-travel-plans/school-travel-plans",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [],
    "summary": "Not captured by automated scan — requires manual testing."
   }
  },
  {
   "finding_id": "VS-a48e6078",
   "fingerprint": "2ccef0fa",
   "rule_id": "sia-r8",
   "rule_label": "Form field has accessible name",
   "engine": "alfa",
   "tool": "Siteimprove Alfa",
   "wcag_sc": "4.1.2",
   "wcag_name": "Name, Role, Value",
   "wcag_level": "A",
   "wcag_version": "2.0",
   "wcag_category": "WCAG 2.0 A",
   "rule_url": "https://alfa.siteimprove.com/rules/sia-r8",
   "severity": "Moderate",
   "priority": "p2",
   "confidence": "high",
   "rationale": "affects 432 pages; persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 432,
    "affected_pages_previous": 553
   },
   "frequency": {
    "instances": 432,
    "pages_affected": 432,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Form field has accessible name (WCAG 4.1.2)",
   "description": "Form field has accessible name. Detected by Siteimprove Alfa rule sia-r8 on 432 of 972 scanned pages (432 instances).",
   "remediation_tip": "Associate the form field with a label.",
   "suggested_fix": "See remediation guidance: https://alfa.siteimprove.com/rules/sia-r8",
   "expected_behavior": "Element passes Siteimprove Alfa rule sia-r8 (WCAG 4.1.2).",
   "actual_behavior": "Form field has accessible name. Detected by Siteimprove Alfa rule sia-r8 on 432 of 972 scanned pages (432 instances).",
   "testing_environment": "Automated: Siteimprove Alfa, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/council-and-elections/mayor-cabinet-and-councillors/how-council-works",
    "https://www.hackney.gov.uk/council-and-elections/data-protection-and-freedom-information/privacy-statements/recruitment-privacy-notice",
    "https://www.hackney.gov.uk/parking-streets-and-transport/travel-plans/school-travel-plans/school-travel-plans"
   ],
   "html_fragments": [],
   "url_patterns": [
    {
     "pattern": "/council-and-elections/mayor-cabinet-and-councillors/how-council-works",
     "count": 1
    },
    {
     "pattern": "/council-and-elections/data-protection-and-freedom-information/privacy-statements/recruitment-privacy-notice",
     "count": 1
    },
    {
     "pattern": "/parking-streets-and-transport/travel-plans/school-travel-plans/school-travel-plans",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [
     {
      "code": "WV",
      "group": "Without vision",
      "prevalence": 0.01,
      "percent": "1.0%",
      "estimatedExcluded": null
     },
     {
      "code": "LV",
      "group": "Limited vision",
      "prevalence": 0.024,
      "percent": "2.4%",
      "estimatedExcluded": null
     },
     {
      "code": "LM",
      "group": "Limited manipulation/strength",
      "prevalence": 0.13,
      "percent": "13.0%",
      "estimatedExcluded": null
     }
    ],
    "summary": "Affects Without vision (1.0%), Limited vision (2.4%), Limited manipulation/strength (13.0%)."
   }
  },
  {
   "finding_id": "VS-2208081b",
   "fingerprint": "40bbca09",
   "rule_id": "sia-r73",
   "rule_label": "Paragraph line height is at least 1.5",
   "engine": "alfa",
   "tool": "Siteimprove Alfa",
   "wcag_sc": "1.4.8",
   "wcag_name": "Visual Presentation",
   "wcag_level": "AAA",
   "wcag_version": "2.0",
   "wcag_category": "WCAG 2.x AAA",
   "rule_url": "https://alfa.siteimprove.com/rules/sia-r73",
   "severity": "Moderate",
   "priority": "p2",
   "confidence": "high",
   "rationale": "affects 432 pages; persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 432,
    "affected_pages_previous": 553
   },
   "frequency": {
    "instances": 432,
    "pages_affected": 432,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Paragraph line height is at least 1.5 (WCAG 1.4.8)",
   "description": "Paragraph line height is at least 1.5. Detected by Siteimprove Alfa rule sia-r73 on 432 of 972 scanned pages (432 instances).",
   "remediation_tip": null,
   "suggested_fix": "See remediation guidance: https://alfa.siteimprove.com/rules/sia-r73",
   "expected_behavior": "Element passes Siteimprove Alfa rule sia-r73 (WCAG 1.4.8).",
   "actual_behavior": "Paragraph line height is at least 1.5. Detected by Siteimprove Alfa rule sia-r73 on 432 of 972 scanned pages (432 instances).",
   "testing_environment": "Automated: Siteimprove Alfa, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/council-and-elections/mayor-cabinet-and-councillors/how-council-works",
    "https://www.hackney.gov.uk/council-and-elections/data-protection-and-freedom-information/privacy-statements/recruitment-privacy-notice",
    "https://www.hackney.gov.uk/parking-streets-and-transport/travel-plans/school-travel-plans/school-travel-plans"
   ],
   "html_fragments": [],
   "url_patterns": [
    {
     "pattern": "/council-and-elections/mayor-cabinet-and-councillors/how-council-works",
     "count": 1
    },
    {
     "pattern": "/council-and-elections/data-protection-and-freedom-information/privacy-statements/recruitment-privacy-notice",
     "count": 1
    },
    {
     "pattern": "/parking-streets-and-transport/travel-plans/school-travel-plans/school-travel-plans",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [],
    "summary": "Not captured by automated scan — requires manual testing."
   }
  },
  {
   "finding_id": "VS-2cd767ca",
   "fingerprint": "3123e4f3",
   "rule_id": "sia-r78",
   "rule_label": "There is content between headings",
   "engine": "alfa",
   "tool": "Siteimprove Alfa",
   "wcag_sc": null,
   "wcag_name": null,
   "wcag_level": null,
   "wcag_version": null,
   "wcag_category": "Best Practice",
   "rule_url": "https://alfa.siteimprove.com/rules/sia-r78",
   "severity": "Moderate",
   "priority": "p2",
   "confidence": "high",
   "rationale": "affects 432 pages; persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 432,
    "affected_pages_previous": 553
   },
   "frequency": {
    "instances": 432,
    "pages_affected": 432,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "There is content between headings (best practice, not a WCAG requirement)",
   "description": "There is content between headings. Detected by Siteimprove Alfa rule sia-r78 on 432 of 972 scanned pages (432 instances).",
   "remediation_tip": null,
   "suggested_fix": "See remediation guidance: https://alfa.siteimprove.com/rules/sia-r78",
   "expected_behavior": "Element passes Siteimprove Alfa rule sia-r78.",
   "actual_behavior": "There is content between headings. Detected by Siteimprove Alfa rule sia-r78 on 432 of 972 scanned pages (432 instances).",
   "testing_environment": "Automated: Siteimprove Alfa, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/council-and-elections/mayor-cabinet-and-councillors/how-council-works",
    "https://www.hackney.gov.uk/council-and-elections/data-protection-and-freedom-information/privacy-statements/recruitment-privacy-notice",
    "https://www.hackney.gov.uk/parking-streets-and-transport/travel-plans/school-travel-plans/school-travel-plans"
   ],
   "html_fragments": [],
   "url_patterns": [
    {
     "pattern": "/council-and-elections/mayor-cabinet-and-councillors/how-council-works",
     "count": 1
    },
    {
     "pattern": "/council-and-elections/data-protection-and-freedom-information/privacy-statements/recruitment-privacy-notice",
     "count": 1
    },
    {
     "pattern": "/parking-streets-and-transport/travel-plans/school-travel-plans/school-travel-plans",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [],
    "summary": "Not captured by automated scan — requires manual testing."
   }
  },
  {
   "finding_id": "VS-7118fead",
   "fingerprint": "0d932ac9",
   "rule_id": "sia-r61",
   "rule_label": "Page starts with a level 1 heading",
   "engine": "alfa",
   "tool": "Siteimprove Alfa",
   "wcag_sc": null,
   "wcag_name": null,
   "wcag_level": null,
   "wcag_version": null,
   "wcag_category": "Best Practice",
   "rule_url": "https://alfa.siteimprove.com/rules/sia-r61",
   "severity": "Moderate",
   "priority": "p2",
   "confidence": "high",
   "rationale": "affects 431 pages; persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 431,
    "affected_pages_previous": 552
   },
   "frequency": {
    "instances": 431,
    "pages_affected": 431,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Page starts with a level 1 heading (best practice, not a WCAG requirement)",
   "description": "Page starts with a level 1 heading. Detected by Siteimprove Alfa rule sia-r61 on 431 of 972 scanned pages (431 instances).",
   "remediation_tip": null,
   "suggested_fix": "See remediation guidance: https://alfa.siteimprove.com/rules/sia-r61",
   "expected_behavior": "Element passes Siteimprove Alfa rule sia-r61.",
   "actual_behavior": "Page starts with a level 1 heading. Detected by Siteimprove Alfa rule sia-r61 on 431 of 972 scanned pages (431 instances).",
   "testing_environment": "Automated: Siteimprove Alfa, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/council-and-elections/mayor-cabinet-and-councillors/how-council-works",
    "https://www.hackney.gov.uk/council-and-elections/data-protection-and-freedom-information/privacy-statements/recruitment-privacy-notice",
    "https://www.hackney.gov.uk/parking-streets-and-transport/travel-plans/school-travel-plans/school-travel-plans"
   ],
   "html_fragments": [],
   "url_patterns": [
    {
     "pattern": "/council-and-elections/mayor-cabinet-and-councillors/how-council-works",
     "count": 1
    },
    {
     "pattern": "/council-and-elections/data-protection-and-freedom-information/privacy-statements/recruitment-privacy-notice",
     "count": 1
    },
    {
     "pattern": "/parking-streets-and-transport/travel-plans/school-travel-plans/school-travel-plans",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [],
    "summary": "Not captured by automated scan — requires manual testing."
   }
  },
  {
   "finding_id": "VS-d25f622d",
   "fingerprint": "98ff321a",
   "rule_id": "heading-order",
   "rule_label": "Heading levels should only increase by one",
   "engine": "axe-core",
   "tool": "axe-core",
   "wcag_sc": null,
   "wcag_name": null,
   "wcag_level": null,
   "wcag_version": null,
   "wcag_category": "Best Practice",
   "rule_url": "https://dequeuniversity.com/rules/axe/4.14/heading-order?application=axeAPI",
   "severity": "Moderate",
   "priority": "p2",
   "confidence": "high",
   "rationale": "persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 65,
    "affected_pages_previous": 86
   },
   "frequency": {
    "instances": 65,
    "pages_affected": 65,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Heading levels should only increase by one (best practice, not a WCAG requirement)",
   "description": "Heading levels should only increase by one. Detected by axe-core rule heading-order on 65 of 972 scanned pages (65 instances).",
   "remediation_tip": "Use heading levels in order (h1 → h2 → h3) without skipping; structure, not size.",
   "suggested_fix": "See remediation guidance: https://dequeuniversity.com/rules/axe/4.14/heading-order?application=axeAPI",
   "expected_behavior": "Element passes axe-core rule heading-order.",
   "actual_behavior": "Heading levels should only increase by one. Detected by axe-core rule heading-order on 65 of 972 scanned pages (65 instances).",
   "testing_environment": "Automated: axe-core, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/planning-and-building/planning-policies-and-local-plan/supplementary-planning-documents-and-guidance/commercial-extensions-and-alterations-supplementary-planning-document-spd",
    "https://www.hackney.gov.uk/libraries-parks-and-leisure/hackney-archives/hackneys-heritage",
    "https://www.hackney.gov.uk/planning-and-building/conservation-and-urban-design/conservation-areas/sun-street-conservation-area"
   ],
   "html_fragments": [
    {
     "fingerprint": "1fdef0b2",
     "html": "<h3>SPD and supporting documents</h3>",
     "selectors": [
      ".field > h3"
     ]
    },
    {
     "fingerprint": "4efe42b8",
     "html": "<h3 class=\"accordion-pane__title\">",
     "selectors": [
      ".accordion-pane-wrapper:nth-child(1) > .paragraph--type--localgov-accordion-pane.accordion-pane.paragraph--view-mode--default > .accordion-pane__title"
     ]
    },
    {
     "fingerprint": "1a095fde",
     "html": "<h3>Opening times</h3>",
     "selectors": [
      ".lgd-contact__group > h3"
     ]
    }
   ],
   "url_patterns": [
    {
     "pattern": "/planning-and-building/planning-policies-and-local-plan/supplementary-planning-documents-and-guidance/commercial-extensions-and-alterations-supplementary-planning-document-spd",
     "count": 1
    },
    {
     "pattern": "/libraries-parks-and-leisure/hackney-archives/hackneys-heritage",
     "count": 1
    },
    {
     "pattern": "/planning-and-building/conservation-and-urban-design/conservation-areas/sun-street-conservation-area",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [],
    "summary": "Not captured by automated scan — requires manual testing."
   }
  },
  {
   "finding_id": "VS-f054f4a4",
   "fingerprint": "5fa3b5a6",
   "rule_id": "sia-r53",
   "rule_label": "Headings are structured hierarchically",
   "engine": "alfa",
   "tool": "Siteimprove Alfa",
   "wcag_sc": null,
   "wcag_name": null,
   "wcag_level": null,
   "wcag_version": null,
   "wcag_category": "Best Practice",
   "rule_url": "https://alfa.siteimprove.com/rules/sia-r53",
   "severity": "Moderate",
   "priority": "p3",
   "confidence": "high",
   "rationale": "persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 32,
    "affected_pages_previous": 40
   },
   "frequency": {
    "instances": 32,
    "pages_affected": 32,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Headings are structured hierarchically (best practice, not a WCAG requirement)",
   "description": "Headings are structured hierarchically. Detected by Siteimprove Alfa rule sia-r53 on 32 of 972 scanned pages (32 instances).",
   "remediation_tip": "Use headings in a logical, non-skipping order.",
   "suggested_fix": "See remediation guidance: https://alfa.siteimprove.com/rules/sia-r53",
   "expected_behavior": "Element passes Siteimprove Alfa rule sia-r53.",
   "actual_behavior": "Headings are structured hierarchically. Detected by Siteimprove Alfa rule sia-r53 on 32 of 972 scanned pages (32 instances).",
   "testing_environment": "Automated: Siteimprove Alfa, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/planning-and-building/planning-policies-and-local-plan/supplementary-planning-documents-and-guidance/commercial-extensions-and-alterations-supplementary-planning-document-spd",
    "https://www.hackney.gov.uk/planning-and-building/conservation-and-urban-design/conservation-areas/sun-street-conservation-area",
    "https://www.hackney.gov.uk/council-and-elections/mayor-cabinet-and-councillors/councillors/your-councillors"
   ],
   "html_fragments": [],
   "url_patterns": [
    {
     "pattern": "/planning-and-building/planning-policies-and-local-plan/supplementary-planning-documents-and-guidance/commercial-extensions-and-alterations-supplementary-planning-document-spd",
     "count": 1
    },
    {
     "pattern": "/planning-and-building/conservation-and-urban-design/conservation-areas/sun-street-conservation-area",
     "count": 1
    },
    {
     "pattern": "/council-and-elections/mayor-cabinet-and-councillors/councillors/your-councillors",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [],
    "summary": "Not captured by automated scan — requires manual testing."
   }
  },
  {
   "finding_id": "VS-8806389c",
   "fingerprint": "ffb2ae06",
   "rule_id": "landmark-unique",
   "rule_label": "Landmarks should have a unique role or role/label/title (i.e. accessible name) c",
   "engine": "axe-core",
   "tool": "axe-core",
   "wcag_sc": null,
   "wcag_name": null,
   "wcag_level": null,
   "wcag_version": null,
   "wcag_category": "Best Practice",
   "rule_url": "https://dequeuniversity.com/rules/axe/4.14/landmark-unique?application=axeAPI",
   "severity": "Moderate",
   "priority": "p3",
   "confidence": "medium",
   "rationale": "persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 3,
    "affected_pages_previous": 3
   },
   "frequency": {
    "instances": 3,
    "pages_affected": 3,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Landmarks should have a unique role or role/label/title (i.e. accessible name) c (best practice, not a WCAG requirement)",
   "description": "Landmarks should have a unique role or role/label/title (i.e. accessible name) c. Detected by axe-core rule landmark-unique on 3 of 972 scanned pages (3 instances).",
   "remediation_tip": "When a landmark role/type repeats (e.g. two <nav>s), give each a distinct accessible name with aria-label or aria-labelledby (e.g. \"Primary\" and \"Footer\" navigation) so screen-reader users can tell them apart.",
   "suggested_fix": "See remediation guidance: https://dequeuniversity.com/rules/axe/4.14/landmark-unique?application=axeAPI",
   "expected_behavior": "Element passes axe-core rule landmark-unique.",
   "actual_behavior": "Landmarks should have a unique role or role/label/title (i.e. accessible name) c. Detected by axe-core rule landmark-unique on 3 of 972 scanned pages (3 instances).",
   "testing_environment": "Automated: axe-core, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/payments",
    "https://www.hackney.gov.uk/museum",
    "https://www.hackney.gov.uk/News"
   ],
   "html_fragments": [
    {
     "fingerprint": "30c79c53",
     "html": "<header class=\"top-header\">",
     "selectors": [
      "header"
     ]
    },
    {
     "fingerprint": "75cb1c93",
     "html": "<aside id=\"nav_menu-2\" class=\"widget inner-padding widget_nav_menu\">",
     "selectors": [
      "#nav_menu-2"
     ]
    },
    {
     "fingerprint": "55b6a670",
     "html": "<div class=\"carousel__images slick-initialized slick-slider\" role=\"region\" aria-label=\"carousel\">",
     "selectors": [
      ".carousel__images"
     ]
    }
   ],
   "url_patterns": [
    {
     "pattern": "/payments",
     "count": 1
    },
    {
     "pattern": "/museum",
     "count": 1
    },
    {
     "pattern": "/News",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [],
    "summary": "Not captured by automated scan — requires manual testing."
   }
  },
  {
   "finding_id": "VS-f7e99f4b",
   "fingerprint": "863d1000",
   "rule_id": "sia-r69",
   "rule_label": "Text has minimum contrast",
   "engine": "alfa",
   "tool": "Siteimprove Alfa",
   "wcag_sc": "1.4.3",
   "wcag_name": "Contrast (Minimum)",
   "wcag_level": "AA",
   "wcag_version": "2.0",
   "wcag_category": "WCAG 2.0 AA",
   "rule_url": "https://alfa.siteimprove.com/rules/sia-r69",
   "severity": "Moderate",
   "priority": "p3",
   "confidence": "low",
   "rationale": "Moderate severity on 1 pages",
   "trend": {
    "status": "new",
    "first_observed": "2026-W45",
    "last_observed": "2026-W45",
    "weeks_observed": 1,
    "affected_pages_current": 1,
    "affected_pages_previous": null
   },
   "frequency": {
    "instances": 1,
    "pages_affected": 1,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Text has minimum contrast (WCAG 1.4.3)",
   "description": "Text has minimum contrast. Detected by Siteimprove Alfa rule sia-r69 on 1 of 972 scanned pages (1 instances).",
   "remediation_tip": "Increase text contrast to meet WCAG AA (4.5:1, or 3:1 for large text).",
   "suggested_fix": "See remediation guidance: https://alfa.siteimprove.com/rules/sia-r69",
   "expected_behavior": "Element passes Siteimprove Alfa rule sia-r69 (WCAG 1.4.3).",
   "actual_behavior": "Text has minimum contrast. Detected by Siteimprove Alfa rule sia-r69 on 1 of 972 scanned pages (1 instances).",
   "testing_environment": "Automated: Siteimprove Alfa, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/payments"
   ],
   "html_fragments": [],
   "url_patterns": [
    {
     "pattern": "/payments",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [
     {
      "code": "LV",
      "group": "Limited vision",
      "prevalence": 0.024,
      "percent": "2.4%",
      "estimatedExcluded": null
     },
     {
      "code": "WPC",
      "group": "Without color perception",
      "prevalence": 0.045,
      "percent": "4.5%",
      "estimatedExcluded": null
     }
    ],
    "summary": "Affects Limited vision (2.4%), Without color perception (4.5%)."
   }
  },
  {
   "finding_id": "VS-388b5438",
   "fingerprint": "e21585c3",
   "rule_id": "sia-r80",
   "rule_label": "Paragraph line height uses a relative unit",
   "engine": "alfa",
   "tool": "Siteimprove Alfa",
   "wcag_sc": "1.4.8",
   "wcag_name": "Visual Presentation",
   "wcag_level": "AAA",
   "wcag_version": "2.0",
   "wcag_category": "WCAG 2.x AAA",
   "rule_url": "https://alfa.siteimprove.com/rules/sia-r80",
   "severity": "Moderate",
   "priority": "p3",
   "confidence": "low",
   "rationale": "persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 1,
    "affected_pages_previous": 3
   },
   "frequency": {
    "instances": 26,
    "pages_affected": 1,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Paragraph line height uses a relative unit (WCAG 1.4.8)",
   "description": "Paragraph line height uses a relative unit. Detected by Siteimprove Alfa rule sia-r80 on 1 of 972 scanned pages (26 instances).",
   "remediation_tip": null,
   "suggested_fix": "See remediation guidance: https://alfa.siteimprove.com/rules/sia-r80",
   "expected_behavior": "Element passes Siteimprove Alfa rule sia-r80 (WCAG 1.4.8).",
   "actual_behavior": "Paragraph line height uses a relative unit. Detected by Siteimprove Alfa rule sia-r80 on 1 of 972 scanned pages (26 instances).",
   "testing_environment": "Automated: Siteimprove Alfa, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/council-tax-and-benefits/benefits/how-we-assess-your-benefits-claim/non-dependant-deductions"
   ],
   "html_fragments": [],
   "url_patterns": [
    {
     "pattern": "/council-tax-and-benefits/benefits/how-we-assess-your-benefits-claim/non-dependant-deductions",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [],
    "summary": "Not captured by automated scan — requires manual testing."
   }
  },
  {
   "finding_id": "VS-fbf54eba",
   "fingerprint": "773d6316",
   "rule_id": "sia-r74",
   "rule_label": "Paragraph font size uses a relative unit",
   "engine": "alfa",
   "tool": "Siteimprove Alfa",
   "wcag_sc": "1.4.8",
   "wcag_name": "Visual Presentation",
   "wcag_level": "AAA",
   "wcag_version": "2.0",
   "wcag_category": "WCAG 2.x AAA",
   "rule_url": "https://alfa.siteimprove.com/rules/sia-r74",
   "severity": "Moderate",
   "priority": "p3",
   "confidence": "low",
   "rationale": "persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 1,
    "affected_pages_previous": 3
   },
   "frequency": {
    "instances": 26,
    "pages_affected": 1,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Paragraph font size uses a relative unit (WCAG 1.4.8)",
   "description": "Paragraph font size uses a relative unit. Detected by Siteimprove Alfa rule sia-r74 on 1 of 972 scanned pages (26 instances).",
   "remediation_tip": null,
   "suggested_fix": "See remediation guidance: https://alfa.siteimprove.com/rules/sia-r74",
   "expected_behavior": "Element passes Siteimprove Alfa rule sia-r74 (WCAG 1.4.8).",
   "actual_behavior": "Paragraph font size uses a relative unit. Detected by Siteimprove Alfa rule sia-r74 on 1 of 972 scanned pages (26 instances).",
   "testing_environment": "Automated: Siteimprove Alfa, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/council-tax-and-benefits/benefits/how-we-assess-your-benefits-claim/non-dependant-deductions"
   ],
   "html_fragments": [],
   "url_patterns": [
    {
     "pattern": "/council-tax-and-benefits/benefits/how-we-assess-your-benefits-claim/non-dependant-deductions",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [],
    "summary": "Not captured by automated scan — requires manual testing."
   }
  },
  {
   "finding_id": "VS-30db094d",
   "fingerprint": "c8a85210",
   "rule_id": "landmark-banner-is-top-level",
   "rule_label": "Banner landmark should not be contained in another landmark",
   "engine": "axe-core",
   "tool": "axe-core",
   "wcag_sc": null,
   "wcag_name": null,
   "wcag_level": null,
   "wcag_version": null,
   "wcag_category": "Best Practice",
   "rule_url": "https://dequeuniversity.com/rules/axe/4.14/landmark-banner-is-top-level?application=axeAPI",
   "severity": "Moderate",
   "priority": "p3",
   "confidence": "low",
   "rationale": "persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 1,
    "affected_pages_previous": 1
   },
   "frequency": {
    "instances": 1,
    "pages_affected": 1,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Banner landmark should not be contained in another landmark (best practice, not a WCAG requirement)",
   "description": "Banner landmark should not be contained in another landmark. Detected by axe-core rule landmark-banner-is-top-level on 1 of 972 scanned pages (1 instances).",
   "remediation_tip": "Put the banner landmark (<header>) at the top level, not nested inside another landmark.",
   "suggested_fix": "See remediation guidance: https://dequeuniversity.com/rules/axe/4.14/landmark-banner-is-top-level?application=axeAPI",
   "expected_behavior": "Element passes axe-core rule landmark-banner-is-top-level.",
   "actual_behavior": "Banner landmark should not be contained in another landmark. Detected by axe-core rule landmark-banner-is-top-level on 1 of 972 scanned pages (1 instances).",
   "testing_environment": "Automated: axe-core, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/payments"
   ],
   "html_fragments": [
    {
     "fingerprint": "e27a16a7",
     "html": "<div class=\"site-logo\" role=\"banner\">\n\t\t\t\t\t\t<a href=\"https://hackney.gov.uk/\" title=\"Link to homepage\" target=\"_HC\">\n\t\t\t\t\t\t<img src=\"/HackneyEstore/estore/custom/images/customers/Hackney_Logo_White.pn",
     "selectors": [
      ".site-logo"
     ]
    }
   ],
   "url_patterns": [
    {
     "pattern": "/payments",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [],
    "summary": "Not captured by automated scan — requires manual testing."
   }
  },
  {
   "finding_id": "VS-054101da",
   "fingerprint": "4e882266",
   "rule_id": "landmark-no-duplicate-banner",
   "rule_label": "Document should not have more than one banner landmark",
   "engine": "axe-core",
   "tool": "axe-core",
   "wcag_sc": null,
   "wcag_name": null,
   "wcag_level": null,
   "wcag_version": null,
   "wcag_category": "Best Practice",
   "rule_url": "https://dequeuniversity.com/rules/axe/4.14/landmark-no-duplicate-banner?application=axeAPI",
   "severity": "Moderate",
   "priority": "p3",
   "confidence": "low",
   "rationale": "persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 1,
    "affected_pages_previous": 1
   },
   "frequency": {
    "instances": 1,
    "pages_affected": 1,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Document should not have more than one banner landmark (best practice, not a WCAG requirement)",
   "description": "Document should not have more than one banner landmark. Detected by axe-core rule landmark-no-duplicate-banner on 1 of 972 scanned pages (1 instances).",
   "remediation_tip": "Use only one banner landmark (<header> at the top level) per page.",
   "suggested_fix": "See remediation guidance: https://dequeuniversity.com/rules/axe/4.14/landmark-no-duplicate-banner?application=axeAPI",
   "expected_behavior": "Element passes axe-core rule landmark-no-duplicate-banner.",
   "actual_behavior": "Document should not have more than one banner landmark. Detected by axe-core rule landmark-no-duplicate-banner on 1 of 972 scanned pages (1 instances).",
   "testing_environment": "Automated: axe-core, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/payments"
   ],
   "html_fragments": [
    {
     "fingerprint": "30c79c53",
     "html": "<header class=\"top-header\">",
     "selectors": [
      "header"
     ]
    }
   ],
   "url_patterns": [
    {
     "pattern": "/payments",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [],
    "summary": "Not captured by automated scan — requires manual testing."
   }
  },
  {
   "finding_id": "VS-4edfe386",
   "fingerprint": "a3d8ec5a",
   "rule_id": "skip-link",
   "rule_label": "The skip-link target should exist and be focusable",
   "engine": "axe-core",
   "tool": "axe-core",
   "wcag_sc": null,
   "wcag_name": null,
   "wcag_level": null,
   "wcag_version": null,
   "wcag_category": "Best Practice",
   "rule_url": "https://dequeuniversity.com/rules/axe/4.14/skip-link?application=axeAPI",
   "severity": "Moderate",
   "priority": "p3",
   "confidence": "low",
   "rationale": "persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 1,
    "affected_pages_previous": 1
   },
   "frequency": {
    "instances": 1,
    "pages_affected": 1,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "The skip-link target should exist and be focusable (best practice, not a WCAG requirement)",
   "description": "The skip-link target should exist and be focusable. Detected by axe-core rule skip-link on 1 of 972 scanned pages (1 instances).",
   "remediation_tip": "Ensure the skip link targets a real, focusable element (its href must match an existing id).",
   "suggested_fix": "See remediation guidance: https://dequeuniversity.com/rules/axe/4.14/skip-link?application=axeAPI",
   "expected_behavior": "Element passes axe-core rule skip-link.",
   "actual_behavior": "The skip-link target should exist and be focusable. Detected by axe-core rule skip-link on 1 of 972 scanned pages (1 instances).",
   "testing_environment": "Automated: axe-core, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/payments"
   ],
   "html_fragments": [
    {
     "fingerprint": "79426556",
     "html": "<a href=\"#header-breadcrumb\" class=\"skip-main\">Skip to main content</a>",
     "selectors": [
      ".skip-main"
     ]
    }
   ],
   "url_patterns": [
    {
     "pattern": "/payments",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [],
    "summary": "Not captured by automated scan — requires manual testing."
   }
  },
  {
   "finding_id": "VS-fa44f293",
   "fingerprint": "a01b2a6c",
   "rule_id": "page-has-heading-one",
   "rule_label": "Page should contain a level-one heading",
   "engine": "axe-core",
   "tool": "axe-core",
   "wcag_sc": null,
   "wcag_name": null,
   "wcag_level": null,
   "wcag_version": null,
   "wcag_category": "Best Practice",
   "rule_url": "https://dequeuniversity.com/rules/axe/4.14/page-has-heading-one?application=axeAPI",
   "severity": "Moderate",
   "priority": "p3",
   "confidence": "low",
   "rationale": "persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 1,
    "affected_pages_previous": 1
   },
   "frequency": {
    "instances": 1,
    "pages_affected": 1,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Page should contain a level-one heading (best practice, not a WCAG requirement)",
   "description": "Page should contain a level-one heading. Detected by axe-core rule page-has-heading-one on 1 of 972 scanned pages (1 instances).",
   "remediation_tip": null,
   "suggested_fix": "See remediation guidance: https://dequeuniversity.com/rules/axe/4.14/page-has-heading-one?application=axeAPI",
   "expected_behavior": "Element passes axe-core rule page-has-heading-one.",
   "actual_behavior": "Page should contain a level-one heading. Detected by axe-core rule page-has-heading-one on 1 of 972 scanned pages (1 instances).",
   "testing_environment": "Automated: axe-core, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/museum"
   ],
   "html_fragments": [
    {
     "fingerprint": "5a9c232a",
     "html": "<html lang=\"en-GB\">",
     "selectors": [
      "html"
     ]
    }
   ],
   "url_patterns": [
    {
     "pattern": "/museum",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [],
    "summary": "Not captured by automated scan — requires manual testing."
   }
  },
  {
   "finding_id": "VS-3804c2fa",
   "fingerprint": "bc7d6fd4",
   "rule_id": "sia-r86",
   "rule_label": "Element marked as decorative is not exposed to assistive technology",
   "engine": "alfa",
   "tool": "Siteimprove Alfa",
   "wcag_sc": null,
   "wcag_name": null,
   "wcag_level": null,
   "wcag_version": null,
   "wcag_category": "Best Practice",
   "rule_url": "https://alfa.siteimprove.com/rules/sia-r86",
   "severity": "Moderate",
   "priority": "p3",
   "confidence": "low",
   "rationale": "Moderate severity on 1 pages",
   "trend": {
    "status": "new",
    "first_observed": "2026-W45",
    "last_observed": "2026-W45",
    "weeks_observed": 1,
    "affected_pages_current": 1,
    "affected_pages_previous": null
   },
   "frequency": {
    "instances": 1,
    "pages_affected": 1,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Element marked as decorative is not exposed to assistive technology (best practice, not a WCAG requirement)",
   "description": "Element marked as decorative is not exposed to assistive technology. Detected by Siteimprove Alfa rule sia-r86 on 1 of 972 scanned pages (1 instances).",
   "remediation_tip": null,
   "suggested_fix": "See remediation guidance: https://alfa.siteimprove.com/rules/sia-r86",
   "expected_behavior": "Element passes Siteimprove Alfa rule sia-r86.",
   "actual_behavior": "Element marked as decorative is not exposed to assistive technology. Detected by Siteimprove Alfa rule sia-r86 on 1 of 972 scanned pages (1 instances).",
   "testing_environment": "Automated: Siteimprove Alfa, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/payments"
   ],
   "html_fragments": [],
   "url_patterns": [
    {
     "pattern": "/payments",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [],
    "summary": "Not captured by automated scan — requires manual testing."
   }
  },
  {
   "finding_id": "VS-096684ad",
   "fingerprint": "6eebe7f7",
   "rule_id": "presentation-role-conflict",
   "rule_label": "Elements marked as presentational should be consistently ignored",
   "engine": "axe-core",
   "tool": "axe-core",
   "wcag_sc": null,
   "wcag_name": null,
   "wcag_level": null,
   "wcag_version": null,
   "wcag_category": "Best Practice",
   "rule_url": "https://dequeuniversity.com/rules/axe/4.14/presentation-role-conflict?application=axeAPI",
   "severity": "Minor",
   "priority": "p4",
   "confidence": "low",
   "rationale": "persistent across weeks",
   "trend": {
    "status": "persistent",
    "first_observed": "2026-W44",
    "last_observed": "2026-W45",
    "weeks_observed": 2,
    "affected_pages_current": 1,
    "affected_pages_previous": 1
   },
   "frequency": {
    "instances": 1,
    "pages_affected": 1,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "Elements marked as presentational should be consistently ignored (best practice, not a WCAG requirement)",
   "description": "Elements marked as presentational should be consistently ignored. Detected by axe-core rule presentation-role-conflict on 1 of 972 scanned pages (1 instances).",
   "remediation_tip": "An element with role=\"presentation\"/\"none\" must not also be focusable or have a global ARIA attribute; remove the conflict.",
   "suggested_fix": "See remediation guidance: https://dequeuniversity.com/rules/axe/4.14/presentation-role-conflict?application=axeAPI",
   "expected_behavior": "Element passes axe-core rule presentation-role-conflict.",
   "actual_behavior": "Elements marked as presentational should be consistently ignored. Detected by axe-core rule presentation-role-conflict on 1 of 972 scanned pages (1 instances).",
   "testing_environment": "Automated: axe-core, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/payments"
   ],
   "html_fragments": [
    {
     "fingerprint": "3147678b",
     "html": "<li role=\"presentation\" tabindex=\"-1\">\n                        <span class=\"pager-page-label\">  Page 1 of 5</span>\n                    </li>",
     "selectors": [
      "li[role=\"presentation\"]"
     ]
    }
   ],
   "url_patterns": [
    {
     "pattern": "/payments",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [],
    "summary": "Not captured by automated scan — requires manual testing."
   }
  },
  {
   "finding_id": "VS-4fac2f41",
   "fingerprint": "550210da",
   "rule_id": "aria-allowed-role",
   "rule_label": "ARIA role should be appropriate for the element",
   "engine": "axe-core",
   "tool": "axe-core",
   "wcag_sc": null,
   "wcag_name": null,
   "wcag_level": null,
   "wcag_version": null,
   "wcag_category": "Best Practice",
   "rule_url": "https://dequeuniversity.com/rules/axe/4.14/aria-allowed-role?application=axeAPI",
   "severity": "Minor",
   "priority": "p4",
   "confidence": "low",
   "rationale": "Minor severity on 1 pages",
   "trend": {
    "status": "new",
    "first_observed": "2026-W45",
    "last_observed": "2026-W45",
    "weeks_observed": 1,
    "affected_pages_current": 1,
    "affected_pages_previous": null
   },
   "frequency": {
    "instances": 1,
    "pages_affected": 1,
    "total_pages_scanned": 972
   },
   "on_key_page": false,
   "summary": "ARIA role should be appropriate for the element (best practice, not a WCAG requirement)",
   "description": "ARIA role should be appropriate for the element. Detected by axe-core rule aria-allowed-role on 1 of 972 scanned pages (1 instances).",
   "remediation_tip": "Remove or change the ARIA role — it isn't allowed on this element type.",
   "suggested_fix": "See remediation guidance: https://dequeuniversity.com/rules/axe/4.14/aria-allowed-role?application=axeAPI",
   "expected_behavior": "Element passes axe-core rule aria-allowed-role.",
   "actual_behavior": "ARIA role should be appropriate for the element. Detected by axe-core rule aria-allowed-role on 1 of 972 scanned pages (1 instances).",
   "testing_environment": "Automated: axe-core, headless Chromium (Playwright). Manual AT verification: Not captured by automated scan — requires manual testing.",
   "representative_urls": [
    "https://www.hackney.gov.uk/museum"
   ],
   "html_fragments": [
    {
     "fingerprint": "6da28faa",
     "html": "<legend role=\"heading\" id=\"hj-survey-lbl-1\" class=\"hj-survey-1fma6oh\"><span style=\"display: contents;\">Did you find what you are looking for?</span></legend>",
     "selectors": [
      "#hj-survey-lbl-1"
     ]
    }
   ],
   "url_patterns": [
    {
     "pattern": "/museum",
     "count": 1
    }
   ],
   "associated_technologies": [],
   "impact": {
    "groups": [],
    "summary": "Not captured by automated scan — requires manual testing."
   }
  }
 ],
 "clusters": {
  "by_wcag_criterion": [
   {
    "cluster_id": "a849192e",
    "type": "wcag_criterion",
    "wcag_sc": "4.1.2",
    "wcag_name": "Name, Role, Value",
    "wcag_level": "A",
    "findings": [
     "VS-0841abc2",
     "VS-3f76c7ea",
     "VS-9425a266",
     "VS-45146742",
     "VS-a48e6078"
    ],
    "total_pages_affected": 1311,
    "max_severity": "Critical"
   },
   {
    "cluster_id": "71f257a8",
    "type": "wcag_criterion",
    "wcag_sc": "1.4.6",
    "wcag_name": "Contrast (Enhanced)",
    "wcag_level": "AAA",
    "findings": [
     "VS-646b1e0b"
    ],
    "total_pages_affected": 434,
    "max_severity": "Moderate"
   },
   {
    "cluster_id": "b393058c",
    "type": "wcag_criterion",
    "wcag_sc": "2.5.5",
    "wcag_name": "Target Size (Enhanced)",
    "wcag_level": "AAA",
    "findings": [
     "VS-cb53cc4d"
    ],
    "total_pages_affected": 434,
    "max_severity": "Moderate"
   },
   {
    "cluster_id": "0c75ddb8",
    "type": "wcag_criterion",
    "wcag_sc": null,
    "wcag_name": null,
    "wcag_level": null,
    "findings": [
     "VS-e05344b9"
    ],
    "total_pages_affected": 434,
    "max_severity": "Moderate"
   },
   {
    "cluster_id": "140fec0b",
    "type": "wcag_criterion",
    "wcag_sc": "1.4.8",
    "wcag_name": "Visual Presentation",
    "wcag_level": "AAA",
    "findings": [
     "VS-2208081b",
     "VS-388b5438",
     "VS-fbf54eba"
    ],
    "total_pages_affected": 434,
    "max_severity": "Moderate"
   },
   {
    "cluster_id": "4b43ba23",
    "type": "wcag_criterion",
    "wcag_sc": null,
    "wcag_name": null,
    "wcag_level": null,
    "findings": [
     "VS-2cd767ca"
    ],
    "total_pages_affected": 432,
    "max_severity": "Moderate"
   },
   {
    "cluster_id": "75cf28e4",
    "type": "wcag_criterion",
    "wcag_sc": null,
    "wcag_name": null,
    "wcag_level": null,
    "findings": [
     "VS-7118fead"
    ],
    "total_pages_affected": 431,
    "max_severity": "Moderate"
   },
   {
    "cluster_id": "e08c8d69",
    "type": "wcag_criterion",
    "wcag_sc": null,
    "wcag_name": null,
    "wcag_level": null,
    "findings": [
     "VS-d25f622d"
    ],
    "total_pages_affected": 65,
    "max_severity": "Moderate"
   },
   {
    "cluster_id": "b05da4e9",
    "type": "wcag_criterion",
    "wcag_sc": null,
    "wcag_name": null,
    "wcag_level": null,
    "findings": [
     "VS-f054f4a4"
    ],
    "total_pages_affected": 32,
    "max_severity": "Moderate"
   },
   {
    "cluster_id": "c7d2a838",
    "type": "wcag_criterion",
    "wcag_sc": null,
    "wcag_name": null,
    "wcag_level": null,
    "findings": [
     "VS-8806389c"
    ],
    "total_pages_affected": 3,
    "max_severity": "Moderate"
   },
   {
    "cluster_id": "3b489eee",
    "type": "wcag_criterion",
    "wcag_sc": "2.4.4",
    "wcag_name": "Link Purpose (In Context)",
    "wcag_level": "A",
    "findings": [
     "VS-e9fe47ac"
    ],
    "total_pages_affected": 2,
    "max_severity": "Serious"
   },
   {
    "cluster_id": "d68f5631",
    "type": "wcag_criterion",
    "wcag_sc": "1.4.3",
    "wcag_name": "Contrast (Minimum)",
    "wcag_level": "AA",
    "findings": [
     "VS-be8d563e",
     "VS-f7e99f4b"
    ],
    "total_pages_affected": 2,
    "max_severity": "Serious"
   },
   {
    "cluster_id": "945c7205",
    "type": "wcag_criterion",
    "wcag_sc": "1.1.1",
    "wcag_name": "Non-text Content",
    "wcag_level": "A",
    "findings": [
     "VS-9074b4dd"
    ],
    "total_pages_affected": 1,
    "max_severity": "Critical"
   },
   {
    "cluster_id": "423bd52e",
    "type": "wcag_criterion",
    "wcag_sc": "1.3.1",
    "wcag_name": "Info and Relationships",
    "wcag_level": "A",
    "findings": [
     "VS-a0bdbdf6"
    ],
    "total_pages_affected": 1,
    "max_severity": "Serious"
   },
   {
    "cluster_id": "91d6e337",
    "type": "wcag_criterion",
    "wcag_sc": null,
    "wcag_name": null,
    "wcag_level": null,
    "findings": [
     "VS-30db094d"
    ],
    "total_pages_affected": 1,
    "max_severity": "Moderate"
   },
   {
    "cluster_id": "e634f562",
    "type": "wcag_criterion",
    "wcag_sc": null,
    "wcag_name": null,
    "wcag_level": null,
    "findings": [
     "VS-054101da"
    ],
    "total_pages_affected": 1,
    "max_severity": "Moderate"
   },
   {
    "cluster_id": "0d6f9d90",
    "type": "wcag_criterion",
    "wcag_sc": null,
    "wcag_name": null,
    "wcag_level": null,
    "findings": [
     "VS-4edfe386"
    ],
    "total_pages_affected": 1,
    "max_severity": "Moderate"
   },
   {
    "cluster_id": "b8f97020",
    "type": "wcag_criterion",
    "wcag_sc": null,
    "wcag_name": null,
    "wcag_level": null,
    "findings": [
     "VS-fa44f293"
    ],
    "total_pages_affected": 1,
    "max_severity": "Moderate"
   },
   {
    "cluster_id": "d1c9a3f3",
    "type": "wcag_criterion",
    "wcag_sc": null,
    "wcag_name": null,
    "wcag_level": null,
    "findings": [
     "VS-3804c2fa"
    ],
    "total_pages_affected": 1,
    "max_severity": "Moderate"
   },
   {
    "cluster_id": "db13b13e",
    "type": "wcag_criterion",
    "wcag_sc": null,
    "wcag_name": null,
    "wcag_level": null,
    "findings": [
     "VS-096684ad"
    ],
    "total_pages_affected": 1,
    "max_severity": "Minor"
   }
  ],
  "by_url_pattern": [
   {
    "cluster_id": "af67477f",
    "type": "url_pattern",
    "pattern": "/payments",
    "findings": [
     "VS-a0bdbdf6",
     "VS-8806389c",
     "VS-f7e99f4b",
     "VS-30db094d",
     "VS-054101da",
     "VS-4edfe386",
     "VS-3804c2fa",
     "VS-096684ad"
    ],
    "total_pages": 8
   },
   {
    "cluster_id": "859a061b",
    "type": "url_pattern",
    "pattern": "/museum",
    "findings": [
     "VS-e9fe47ac",
     "VS-9074b4dd",
     "VS-9425a266",
     "VS-be8d563e",
     "VS-8806389c",
     "VS-fa44f293",
     "VS-4fac2f41"
    ],
    "total_pages": 7
   },
   {
    "cluster_id": "ddd75929",
    "type": "url_pattern",
    "pattern": "/News",
    "findings": [
     "VS-45146742",
     "VS-8806389c"
    ],
    "total_pages": 2
   },
   {
    "cluster_id": "b1c08f9f",
    "type": "url_pattern",
    "pattern": "/council-tax-and-benefits/benefits/how-we-assess-your-benefits-claim/non-dependant-deductions",
    "findings": [
     "VS-388b5438",
     "VS-fbf54eba"
    ],
    "total_pages": 2
   }
  ]
 },
 "technology_findings": [],
 "third_party_findings": [
  {
   "origin": "hotjar.com",
   "pages_served": 207,
   "pages_with_findings": 207,
   "finding_co_occurrence_rate": 1,
   "median_bytes": 751018,
   "example_pages": [
    "https://www.hackney.gov.uk/libraries-parks-and-leisure/parks-and-green-spaces/parks-list/spring-hill-recreation-ground",
    "https://www.hackney.gov.uk/housing/private-tenants-and-landlords/private-tenants",
    "https://www.hackney.gov.uk/housing/homelessness"
   ]
  },
  {
   "origin": "googletagmanager.com",
   "pages_served": 207,
   "pages_with_findings": 207,
   "finding_co_occurrence_rate": 1,
   "median_bytes": 616159,
   "example_pages": [
    "https://www.hackney.gov.uk/libraries-parks-and-leisure/parks-and-green-spaces/parks-list/spring-hill-recreation-ground",
    "https://www.hackney.gov.uk/housing/private-tenants-and-landlords/private-tenants",
    "https://www.hackney.gov.uk/housing/homelessness"
   ]
  },
  {
   "origin": "gstatic.com",
   "pages_served": 207,
   "pages_with_findings": 207,
   "finding_co_occurrence_rate": 1,
   "median_bytes": 147466,
   "example_pages": [
    "https://www.hackney.gov.uk/libraries-parks-and-leisure/parks-and-green-spaces/parks-list/spring-hill-recreation-ground",
    "https://www.hackney.gov.uk/housing/private-tenants-and-landlords/private-tenants",
    "https://www.hackney.gov.uk/housing/homelessness"
   ]
  },
  {
   "origin": "cookiebot.com",
   "pages_served": 207,
   "pages_with_findings": 207,
   "finding_co_occurrence_rate": 1,
   "median_bytes": 75961,
   "example_pages": [
    "https://www.hackney.gov.uk/libraries-parks-and-leisure/parks-and-green-spaces/parks-list/spring-hill-recreation-ground",
    "https://www.hackney.gov.uk/housing/private-tenants-and-landlords/private-tenants",
    "https://www.hackney.gov.uk/housing/homelessness"
   ]
  },
  {
   "origin": "clarity.ms",
   "pages_served": 207,
   "pages_with_findings": 207,
   "finding_co_occurrence_rate": 1,
   "median_bytes": 75005,
   "example_pages": [
    "https://www.hackney.gov.uk/libraries-parks-and-leisure/parks-and-green-spaces/parks-list/spring-hill-recreation-ground",
    "https://www.hackney.gov.uk/housing/private-tenants-and-landlords/private-tenants",
    "https://www.hackney.gov.uk/housing/homelessness"
   ]
  }
 ],
 "metadata": {
  "generator": "vital-core",
  "schema_version": "0.1",
  "total_pages_scanned": 972,
  "notes": [
   "Healthy pages (no known issues) are intentionally excluded.",
   "Representative examples are used instead of complete occurrence lists.",
   "Fingerprints are stable hashes for tracking recurring patterns over time.",
   "Fragment fingerprints normalize volatile attributes (id, style, data-*) before hashing.",
   "Technology lift values indicate association, not causation.",
   "Confidence reflects sample size: high=10+ affected pages, medium=3-9, low=1-2."
  ]
 }
}