Hi,
I'm reactivating this thread after some updates addressing feedback
received here:
- highlightsFromPoint now also returns the ranges hit for each Highlight
under a given point after discussing it with the CSSWG
<https://github.com/w3c/csswg-drafts/issues/12031> (cc @Stephen) to make
the API more useful for many real-life scenarios. There are more details in
the explainer
<https://github.com/ffiori/MSEdgeExplainers/blob/master/highlight/HighlightsFromPointsExplainer.md>
and specs <https://drafts.csswg.org/css-highlight-api-1/#interactions>,
basically
the type has been changed to the following:
sequence<HighlightHitResult> highlightsFromPoint(float x, float y, optional
HighlightsFromPointOptions options = {});
dictionary HighlightHitResult {
Highlight highlight;
sequence<AbstractRange> ranges;
};
- The explainer
<https://github.com/ffiori/MSEdgeExplainers/blob/master/highlight/HighlightsFromPointsExplainer.md>
was
updated to match the new type mentioned above, expanded the Alternative
Solutions section with further variations, and expanded on how the API
addresses customer needs (as suggested by @Alex).
- Regarding the concerns about the API being synchronous, other async
options were explored more in detail (see Alternative Solutions section
<https://github.com/ffiori/MSEdgeExplainers/blob/master/highlight/HighlightsFromPointsExplainer.md#alternative-solutions>
in
the explainer) but we decided to continue pursuing the synchronous format.
It's simpler and more developer-friendly, and matches the syntax and style
of other existing *FromPoint APIs. Additionally, we believe that the
question of synchronous-layout-requiring APIs is better addressed
separately so that all of these similar *FromPoint APIs can be considered
holistically (Alex's proposal on Event Phases
<https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/EventPhases/explainer.md>
is
a great example of how this can be approached).
By the way, I also updated the shipping Estimated Milestones to 140.
Looking forward to any feedback you might have :)
Thanks,
Fernando
El lunes, 3 de marzo de 2025 a la(s) 12:16:09 p.m. UTC-8, Fernando Fiori
escribió:
@Domenic, thanks for your feedback, I just updated the milestones. Regards
the CSSWG current status on the feature, there's been consensus on it prior
to its I2P and implementations, you can refer to this comment (and all the
discussion taking place in that issue): [css-highlight-api] Approaches for
dispatching highlight pointer events · Issue #7513 · w3c/csswg-drafts
<https://github.com/w3c/csswg-drafts/issues/7513#issuecomment-1248320696>.
@Stephen, thanks a lot, that'd be amazing :)
@Robert, I see, thanks for clarifying! I thought you meant replacing
highlightsFromPoint to also return Elements with the additional parameters
you mentioned in your last message, my comment was related to most of the
use cases discussed can be satisfied with the simpler highlightsFromPoint
API described in this I2S and the specs linked. I could see both APIs
coexisting in the future, but I'm still not super clear on what use cases
the API you describe could be applied to, I think your proposal could
definitely be further discussed in an issue in the CSSWG for a broader
audience.
As per @Alex's comments, I'm working on updating the explainer to capture
all the details about alternative solutions and why this one was chosen
over them there so it's clearer and more centralized.
I'll let you know when the explainer updates are done.
Thank you all for the feedback,
Fernando
El domingo, 2 de marzo de 2025 a la(s) 6:43:21 p.m. UTC-8, Domenic Denicola
escribió:
This states "shipping on desktop" but also "supported on all six Blink
platforms". Perhaps you just forgot to add the milestones for Android and
Android WebView?
It seems there's some late-breaking feedback from both Google and Microsoft
engineers in this thread on the API design. I'm unclear to what extent
those engineers have raised their concerns to the CSSWG. Can you give us a
sense of the CSSWG's current consensus status on this feature? This looks
ready to ship to me, but this amount of discussion muddles the situation a
bit.
On Saturday, February 15, 2025 at 9:59:59 AM UTC+9 Fernando Fiori wrote:
*Contact emails*
[email protected], [email protected], [email protected]
*Explainer*
https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/highlight/HighlightsFromPointsExplainer.md
*Specification*
https://drafts.csswg.org/css-highlight-api-1/#interactions
*Summary*
The highlightsFromPoint API enables developers to interact with custom
highlights by detecting which highlights exist at a specific point within a
document. This interactivity is valuable for complex web features where
multiple highlights may overlap or exist within shadow DOM. By providing
precise point-based highlight detection, the API empowers developers to
manage dynamic interactions with custom highlights more effectively, such
as responding to user clicks or hover events on highlighted regions to
trigger custom tooltips, context menus, or other interactive features.
*Blink component*
Blink>CSS
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3ECSS%22>
*TAG review*
https://github.com/w3ctag/design-reviews/issues/1043
*TAG review status*
Issues addressed
*Risks*
*Interoperability and Compatibility*
The 'highlightsFromPoint' API is a new feature so there isn’t a
compatibility risk. The interoperability risk is limited to the usual risk
of limited adoption and/or inconsistent browser support for a new feature.
*Gecko*: No signal (
https://github.com/mozilla/standards-positions/issues/1068)
*WebKit*: No signal (
https://github.com/WebKit/standards-positions/issues/394)
*Web developers*: Positive (
https://github.com/w3c/csswg-drafts/issues/7513#issuecomment-1211033472,
https://github.com/w3c/csswg-drafts/issues/7447#issuecomment-2386160133,
https://github.com/w3c/csswg-drafts/issues/7447#issuecomment-1183422904)
*Other signals*:
*Ergonomics*
None
*Activation*
None
*Security*
None
*WebView application risks*
*Does this intent deprecate or change behavior of existing APIs, such that
it has potentially high risk for Android WebView-based applications?*
None
*Debuggability*
None
*Will this feature be supported on all six Blink platforms (Windows, Mac,
Linux, ChromeOS, Android, and Android WebView)?*
Yes
*Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?*
Yes
https://wpt.fyi/results/css/css-highlight-api/HighlightRegistry-highlightsFromPoint.html?label=experimental&label=master&aligned
https://wpt.fyi/results/shadow-dom/HighlightRegistry-highlightsFromPoint.html?label=master&label=experimental&aligned
Note that these tests are currently failing in wpt.fyi because the feature
still has the status test in code
<https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/runtime_enabled_features.json5;l=2333?q=runtime_enabled_features.json&ss=chromium%2Fchromium%2Fsrc>,
so it’s not activated for these tests that run under experimental flag, but
worth mentioning they’re passing in chromium CI. They’re expected to pass
in wpt.fyi as well once the feature status is upgraded.
*Flag name on about://flags*
None
*Finch feature name*
HighlightsFromPoint
*Requires code in //chrome?*
False
*Tracking bug*
https://issues.chromium.org/issues/365046212
*Estimated milestones*
Shipping on desktop
134
*Anticipated spec changes*
*Open questions about a feature may be a source of future web compat or
interop issues. Please list open issues (e.g. links to known github issues
in the project for the feature specification) whose resolution may
introduce web compat/interop risk (e.g., changing to naming or structure of
the API in a non-backward-compatible way).*
None
*Link to entry on the Chrome Platform Status*
https://chromestatus.com/feature/4552801607483392?gate=4762112543686656
*Links to previous Intent discussions*
Intent to Prototype:
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/SJ0PR00MB130193097BB3B418C676D88CEC642%40SJ0PR00MB1301.namprd00.prod.outlook.com
This intent message was generated by Chrome Platform Status
<https://chromestatus.com/>.
--
You received this message because you are subscribed to the Google Groups
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/8076a892-d353-4032-8796-8eb7ac29149dn%40chromium.org.