I got feedback from 6 people and one team
privately. Thanks to those who gave me feedback!
Let me summarize here.
Most feedback was that they don't need '>>>' combinator support for querySelector() as is,
except for testing. It is useful for checking some element exists or not, or inspecting the element,
without worrying about shadow boundaries, and otherwise it could be polyfilled.
1. For testing, uniquely identifying an element is one of the requirements, and
sometimes '>>>' is not sufficient, because it can pierce zero or some shadow boundaries
and it can be difficult to pinpoint an element at specific levels of shadow trees.
So there should be another combinator that matches one level of shadow boundary
(in Shadow DOM V0 we had /deep/ and ::shadow exactly for this purposes).
One possible place to have this functionality is
webdriver to get it used by Selenium etc.
2. When people really need this, they repeatedly implemented polyfills for the deep query selector,
which can be done in a recursive way for each shadow roots. However, today we don't have
a fast way to identify shadow hosts among all elements, it costs O(N) where N is the number of
elements in a tree of trees. One possible solution is to add a new filter for
TreeWalker API.
Unfortunately '>>>' didn't get support from other browser vendors and cannot live in
the standards, but the above two points would be sufficient for covering the expected
If you see further missing use cases, please let us know.
In summary, the path forward is:
- propose addition to webdriver
- propose treewalker extension
- remove the under-the-flag `>>>` support from Blink