[whatwg/dom] Proposal: elementsFromRect() (Issue #1286)

### What problem are you trying to solve?

`elementsFromPoint()` allows us to utilize the browsers hit-testing get all elements under a specific coordinate. This is great for things like interactive editors that use DOM elements as the editable objects.

But such editors often have other kinds of selection gestures than just a single click that selects at a single coordinate. Often we'll have click-and-drag gestures for selecting all elements under a rectangular window. Some editors will have a lasso tool that lets users draw an irregular selection window. `elementsFromPoint()` is insufficient for these cases.

### What solutions exist today?

There are two rough approaches I know of for finding all elements under a rect:

1. Call `elementsFromPoint()` repeatedly in a grid pattern. This uses the native hit-testing mechanism, but it can obviously miss elements that fall between the grid points.

2. Re-implement hit testing and crawl the entire DOM looking for intersecting elements. This is very difficult and prone to error.

### How would you solve it?

Add `elementsFromRect()` (and possibly `elementsFromPath()`) that return all elements intersecting the given rect.

### Anything else?

_No response_

-- 
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/dom/issues/1286
You are receiving this because you are subscribed to this thread.

Message ID: <whatwg/dom/issues/1286@github.com>

Received on Thursday, 2 May 2024 17:24:47 UTC