From d5319233952cc22cbda55cac786912e4adeb5d27 Mon Sep 17 00:00:00 2001 From: Brewen Couaran <45310490+brewcoua@users.noreply.github.com> Date: Mon, 10 Jun 2024 17:46:50 +0200 Subject: [PATCH] fix(visibility): ignore z-index of common parent --- README.md | 2 +- bun.lockb | Bin 226908 -> 226908 bytes package.json | 36 +++++++++++++++---------------- src/filters/visibility/canvas.ts | 1 + src/filters/visibility/utils.ts | 15 ++++++++++--- 5 files changed, 31 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 2ca617e..9391f48 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ The script will first query all elements on the page (and inside shadow roots) t #### 2. Elements filtering -The script will then first proceed to filter out, in both lists, the elements that are not visible enough (see [src/constants.ts](src/constants.ts) for the threshold values, e.g. `0.7`). To do that, we first use an [Intersection Observer](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API) to check if the element is visible enough in the viewport, and if it is, we find the elements that are possibly intersecting with the element, using a QuadTree that we previously built with all elements on the page by their bounding boxes. We then query the QuadTree for elements that are possibly intersecting with the element, and we draw them on a canvas, after drawing the original element. We then calculate the pixel-by-pixel visibility ratio by counting the number of pixels that were not overlapped by other elements. If the ratio is above the threshold, we consider the element visible enough. +The script will then first proceed to filter out, in both lists, the elements that are not visible enough (see [src/constants.ts](src/constants.ts) for the threshold values, e.g. `0.7`). To do that, we first use an [Intersection Observer](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API) to check if the element is visible enough in the viewport, and if it is, we find the elements that are possibly intersecting with the element, using [rbush](https://npmjs/package/rbush) as a tree that we previously built with all elements on the page through their bounding boxes. We then query the tree for elements that are possibly intersecting with the element, and draw them on a canvas, after drawing the original element. Finally, we calculate the pixel-by-pixel visibility ratio by counting the number of pixels that were not overlapped by other elements. If the ratio is above the threshold, we consider the element visible enough. After that, we take the elements in the second list (the ones that display a pointer cursor) and apply a nesting filter. This filter will remove all elements that are either inside a prioritized element (e.g. a button) or that have too many clickable children. Additionally, we consider elements disjoint if their size is different enough (see [src/constants.ts](src/constants.ts) for the threshold value, e.g. `0.7`). When applying this filter, we also consider the first list for reference, while not removing any element from that first list afterwards. diff --git a/bun.lockb b/bun.lockb index ca4b61e2e1406a9cc1de287377bee35e26d3363e..e875aaf4aeda2ab219cb872f575608db3f9b8c35 100755 GIT binary patch delta 40092 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 IQbm>iKc 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