pour-engine 1.34.1 → 1.34.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,6 +6,6 @@
6
6
  export default {
7
7
  engine: {
8
8
  name: 'pour engine',
9
- version: '1.34.1',
9
+ version: '1.34.2',
10
10
  },
11
11
  };
@@ -570,6 +570,15 @@ export function createTargetSizeRule({ id, tags, help, helpUrl, min, spacingExce
570
570
  // fragment IS its box, so genuine overlays are dismissed exactly
571
571
  // as before.
572
572
  if (paintedEncloses(other, rects[j], rects[i]) || paintedEncloses(element, rects[i], rects[j])) return false;
573
+ // Crowding across fixed/sticky contexts is scroll state, not
574
+ // layout, exactly as the obscured-target test reads overlap: a
575
+ // consent banner pinned to the bottom of the viewport lays its
576
+ // "Privacy Policy" link on whichever headline happens to sit
577
+ // under it right now, and that headline has clear space the
578
+ // moment the page scrolls. Asserting it as crowded invents a
579
+ // defect the layout does not have (measured live on two news
580
+ // homes carrying the same consent banner, 2026-08-27).
581
+ if (fixedContextOf(other) !== fixedContextOf(element)) return false;
573
582
  const within = (box) => {
574
583
  if (undersized[j]) {
575
584
  const c = { x: box.left + box.width / 2, y: box.top + box.height / 2 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pour-engine",
3
- "version": "1.34.1",
3
+ "version": "1.34.2",
4
4
  "description": "Accessibility (WCAG 2.2) audit engine written from the W3C specifications — runs entirely in the browser, no dependencies.",
5
5
  "type": "module",
6
6
  "main": "engine/index.js",