{
  "schemaVersion": 1,
  "benchmark": {
    "id": "cross-component-heading-order",
    "version": "1.0.0",
    "runDate": "2026-08-12",
    "repository": "https://github.com/Zemdomu/ZemDomu-mono",
    "repositoryCommit": "294fa0e2fca5f999f6366a77ba68d540f1a634ee",
    "fixtureCommit": "bf55515a3f83539ade1842804584e986a122f3e5",
    "claim": "In these four purpose-built source fixtures, the pinned ZemDomu project-aware configuration reports the predefined heading-order diagnostic across static imports while isolated-file analysis does not.",
    "limitations": [
      "This tests one static source-analysis behavior in deliberately constructed fixtures.",
      "It does not measure general accessibility coverage, rendered behavior, false-negative rates, assistive-technology usability, or WCAG conformance.",
      "React and Vue results are comparable only for the paired fixture cases listed here, not for complete framework coverage."
    ]
  },
  "source": {
    "repository": "https://github.com/Zemdomu/ZemDomu-mono",
    "commit": "294fa0e2fca5f999f6366a77ba68d540f1a634ee",
    "files": [
      {
        "path": "packages/ZemDomu-ReactFixture/src/H2Entry.jsx",
        "blobSha": "9e9dfcdcfff0d3d53d9ba4f5e81204c59ff33705",
        "url": "https://github.com/Zemdomu/ZemDomu-mono/blob/294fa0e2fca5f999f6366a77ba68d540f1a634ee/packages/ZemDomu-ReactFixture/src/H2Entry.jsx"
      },
      {
        "path": "packages/ZemDomu-ReactFixture/src/components/LateH1.jsx",
        "blobSha": "1da3669de8646a167eb247d44f12fe3acfe05bb1",
        "url": "https://github.com/Zemdomu/ZemDomu-mono/blob/294fa0e2fca5f999f6366a77ba68d540f1a634ee/packages/ZemDomu-ReactFixture/src/components/LateH1.jsx"
      },
      {
        "path": "packages/ZemDomu-ReactFixture/src/components/FaultyButton.jsx",
        "blobSha": "de07275bc45baa4123e0944924134305ea9d7b6c",
        "url": "https://github.com/Zemdomu/ZemDomu-mono/blob/294fa0e2fca5f999f6366a77ba68d540f1a634ee/packages/ZemDomu-ReactFixture/src/components/FaultyButton.jsx"
      },
      {
        "path": "packages/ZemDomu-ReactFixture/src/components/ButtonHint.jsx",
        "blobSha": "6586db6c50016f825a0b8a33e75377ed23c6f5f2",
        "url": "https://github.com/Zemdomu/ZemDomu-mono/blob/294fa0e2fca5f999f6366a77ba68d540f1a634ee/packages/ZemDomu-ReactFixture/src/components/ButtonHint.jsx"
      },
      {
        "path": "packages/ZemDomu-VueFixture/src/H2Entry.vue",
        "blobSha": "bd8ec8096081327adb67629e6c21f0063a30159b",
        "url": "https://github.com/Zemdomu/ZemDomu-mono/blob/294fa0e2fca5f999f6366a77ba68d540f1a634ee/packages/ZemDomu-VueFixture/src/H2Entry.vue"
      },
      {
        "path": "packages/ZemDomu-VueFixture/src/components/LateH1.vue",
        "blobSha": "55b8e3d69cd3001718b62771c2897eed9bcc26e1",
        "url": "https://github.com/Zemdomu/ZemDomu-mono/blob/294fa0e2fca5f999f6366a77ba68d540f1a634ee/packages/ZemDomu-VueFixture/src/components/LateH1.vue"
      },
      {
        "path": "packages/ZemDomu-VueFixture/src/components/FaultyButton.vue",
        "blobSha": "7f0e1813e27324978d4e284b9c3fbf4d1be7ed07",
        "url": "https://github.com/Zemdomu/ZemDomu-mono/blob/294fa0e2fca5f999f6366a77ba68d540f1a634ee/packages/ZemDomu-VueFixture/src/components/FaultyButton.vue"
      },
      {
        "path": "packages/ZemDomu-VueFixture/src/components/ButtonHint.vue",
        "blobSha": "2007fb6ac6f389cc3bb0c328ef9ee38d74a77cd5",
        "url": "https://github.com/Zemdomu/ZemDomu-mono/blob/294fa0e2fca5f999f6366a77ba68d540f1a634ee/packages/ZemDomu-VueFixture/src/components/ButtonHint.vue"
      }
    ]
  },
  "tools": {
    "zemdomu": "1.3.19",
    "node": "24.15.0",
    "npm": "9.2.0"
  },
  "fixtureDependencyDeclarations": {
    "react": "^18.3.1",
    "vue": "^3.5.12"
  },
  "summary": {
    "cases": 4,
    "runs": 8,
    "expectedPositiveAssertions": 4,
    "matchedExpectedDiagnostics": 4,
    "missedExpectedDiagnostics": 0,
    "unexpectedOrDuplicateDiagnostics": 0,
    "isolatedControlsExpectedClean": 4,
    "isolatedControlsObservedClean": 4
  },
  "runs": [
    {
      "caseId": "react-late-primary-heading",
      "framework": "react",
      "mode": "isolated",
      "entry": "packages/ZemDomu-ReactFixture/src/H2Entry.jsx",
      "dependencyClosure": [
        "packages/ZemDomu-ReactFixture/src/components/LateH1.jsx"
      ],
      "transition": "h2 to imported h1",
      "options": {
        "crossComponentAnalysis": false,
        "crossComponentDepth": 2,
        "enabledRules": [
          "enforceHeadingOrder"
        ]
      },
      "diagnostics": [],
      "passedExpectation": true
    },
    {
      "caseId": "react-late-primary-heading",
      "framework": "react",
      "mode": "cross-component",
      "entry": "packages/ZemDomu-ReactFixture/src/H2Entry.jsx",
      "dependencyClosure": [
        "packages/ZemDomu-ReactFixture/src/components/LateH1.jsx"
      ],
      "transition": "h2 to imported h1",
      "options": {
        "crossComponentAnalysis": true,
        "crossComponentDepth": 2,
        "enabledRules": [
          "enforceHeadingOrder"
        ]
      },
      "diagnostics": [
        {
          "rule": "enforceHeadingOrder",
          "code": "ZMD002",
          "file": "packages/ZemDomu-ReactFixture/src/components/LateH1.jsx",
          "line": 2,
          "column": 10,
          "message": "Cross-component heading level skipped: <h1> after <h2> (rendered via 'H2Entry')"
        }
      ],
      "passedExpectation": true
    },
    {
      "caseId": "react-nested-heading-skip",
      "framework": "react",
      "mode": "isolated",
      "entry": "packages/ZemDomu-ReactFixture/src/components/FaultyButton.jsx",
      "dependencyClosure": [
        "packages/ZemDomu-ReactFixture/src/components/ButtonHint.jsx"
      ],
      "transition": "h3 to imported h5",
      "options": {
        "crossComponentAnalysis": false,
        "crossComponentDepth": 2,
        "enabledRules": [
          "enforceHeadingOrder"
        ]
      },
      "diagnostics": [],
      "passedExpectation": true
    },
    {
      "caseId": "react-nested-heading-skip",
      "framework": "react",
      "mode": "cross-component",
      "entry": "packages/ZemDomu-ReactFixture/src/components/FaultyButton.jsx",
      "dependencyClosure": [
        "packages/ZemDomu-ReactFixture/src/components/ButtonHint.jsx"
      ],
      "transition": "h3 to imported h5",
      "options": {
        "crossComponentAnalysis": true,
        "crossComponentDepth": 2,
        "enabledRules": [
          "enforceHeadingOrder"
        ]
      },
      "diagnostics": [
        {
          "rule": "enforceHeadingOrder",
          "code": "ZMD002",
          "file": "packages/ZemDomu-ReactFixture/src/components/ButtonHint.jsx",
          "line": 2,
          "column": 10,
          "message": "Cross-component heading level skipped: <h5> after <h3> (rendered via 'FaultyButton')"
        }
      ],
      "passedExpectation": true
    },
    {
      "caseId": "vue-late-primary-heading",
      "framework": "vue",
      "mode": "isolated",
      "entry": "packages/ZemDomu-VueFixture/src/H2Entry.vue",
      "dependencyClosure": [
        "packages/ZemDomu-VueFixture/src/components/LateH1.vue"
      ],
      "transition": "h2 to imported h1",
      "options": {
        "crossComponentAnalysis": false,
        "crossComponentDepth": 2,
        "enabledRules": [
          "enforceHeadingOrder"
        ]
      },
      "diagnostics": [],
      "passedExpectation": true
    },
    {
      "caseId": "vue-late-primary-heading",
      "framework": "vue",
      "mode": "cross-component",
      "entry": "packages/ZemDomu-VueFixture/src/H2Entry.vue",
      "dependencyClosure": [
        "packages/ZemDomu-VueFixture/src/components/LateH1.vue"
      ],
      "transition": "h2 to imported h1",
      "options": {
        "crossComponentAnalysis": true,
        "crossComponentDepth": 2,
        "enabledRules": [
          "enforceHeadingOrder"
        ]
      },
      "diagnostics": [
        {
          "rule": "enforceHeadingOrder",
          "code": "ZMD002",
          "file": "packages/ZemDomu-VueFixture/src/components/LateH1.vue",
          "line": 2,
          "column": 3,
          "message": "Cross-component heading level skipped: <h1> after <h2> (rendered via 'H2Entry')"
        }
      ],
      "passedExpectation": true
    },
    {
      "caseId": "vue-nested-heading-skip",
      "framework": "vue",
      "mode": "isolated",
      "entry": "packages/ZemDomu-VueFixture/src/components/FaultyButton.vue",
      "dependencyClosure": [
        "packages/ZemDomu-VueFixture/src/components/ButtonHint.vue"
      ],
      "transition": "h3 to imported h5",
      "options": {
        "crossComponentAnalysis": false,
        "crossComponentDepth": 2,
        "enabledRules": [
          "enforceHeadingOrder"
        ]
      },
      "diagnostics": [],
      "passedExpectation": true
    },
    {
      "caseId": "vue-nested-heading-skip",
      "framework": "vue",
      "mode": "cross-component",
      "entry": "packages/ZemDomu-VueFixture/src/components/FaultyButton.vue",
      "dependencyClosure": [
        "packages/ZemDomu-VueFixture/src/components/ButtonHint.vue"
      ],
      "transition": "h3 to imported h5",
      "options": {
        "crossComponentAnalysis": true,
        "crossComponentDepth": 2,
        "enabledRules": [
          "enforceHeadingOrder"
        ]
      },
      "diagnostics": [
        {
          "rule": "enforceHeadingOrder",
          "code": "ZMD002",
          "file": "packages/ZemDomu-VueFixture/src/components/ButtonHint.vue",
          "line": 2,
          "column": 3,
          "message": "Cross-component heading level skipped: <h5> after <h3> (rendered via 'FaultyButton')"
        }
      ],
      "passedExpectation": true
    }
  ]
}
