Intent to Ship: Custom Highlight API

250 views
Skip to first unread message

Daniel Clark

unread,
Aug 12, 2021, 5:23:21 PM8/12/21
to blin...@chromium.org, Fernando Fiori, Bo Cupp, Sanket Joshi (EDGE)

Contact emails

sa...@microsoft.comffi...@microsoft.compc...@microsoft.comdan...@microsoft.com

Explainer

https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/highlight/explainer.md

Specification

https://drafts.csswg.org/css-highlight-api-1/

 

Summary

The custom highlight API provides a way for web developers to style the text of arbitrary ranges. This is useful in a variety of scenarios, including editing frameworks that wish to implement their own selection, find-on-page over virtualized documents, multiple selections to represent online collaboration, or spellchecking frameworks.

 

Blink component

Blink>Editing

Search tags

Custom Highlight APIHighlight API

TAG review

https://github.com/w3ctag/design-reviews/issues/584

TAG review status

Issues addressed

Risks

 

Interoperability and Compatibility

Low: This feature received positive support from Safari and Firefox at TPAC 2019. Safari has implemented the feature.



Gecko: No signal (
https://github.com/mozilla/standards-positions/issues/482)

WebKit: Shipped/Shipping (
https://developer.apple.com/safari/technology-preview/release-notes/) Highlight API listed in Release 99 notes.

Web developers: Strongly positive (
https://github.com/w3c/csswg-drafts/issues/4307) Multiple use cases have been pointed out in this issue. CKEditor has also shown support from the first highlight API explainer.

Ergonomics

The highlight API will be the first use case for constructible StaticRanges, which the API permits as an alternative to Iive Ranges because they do not incur cost during DOM mutations.

 

Activation

No. Web developers should be able to use the feature as-is. It is also easy to feature detect (checking for the existence of CSS.highlights).

 

Debuggability

DevTools shows ::highlight pseudo elements, in the same way that it shows other pseudo elements.

 

Is this feature fully tested by web-platform-tests?

Yes
https://wpt.fyi/results/css/css-highlight-api?label=master&label=experimental&aligned&q=css

https://wpt.fyi/results/css/css-highlight-api/painting?label=master&label=experimental&aligned&q=css

Flag name

--enable-blink-features=HighlightAPI

Requires code in //chrome?

False

Tracking bug

https://crbug.com/1164461

Estimated milestones

 

Comments:

Highlight API does not yet support all of the pseudos at https://www.w3.org/TR/css-pseudo-4/#highlight-styling -- the current implementation only supports color and background-color. However, we believe there is value in shipping starting with just these styles, since they are sufficient to support key scenarios like custom find-on-page.

 

Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5436441440026624

Links to previous Intent discussions

Intent to prototype: https://groups.google.com/a/chromium.org/g/blink-dev/c/Ix2u8NHG5Po/m/jjMjWIHXAQAJ

This intent message was generated by Chrome Platform Status.

 

 

Emilio Cobos Álvarez

unread,
Aug 12, 2021, 6:13:22 PM8/12/21
to Daniel Clark, blin...@chromium.org, Fernando Fiori, Bo Cupp, Sanket Joshi (EDGE)
Is Safari actually shipping it? What I see is that they implement it as
a (default off) experimental feature, which I don't think qualifies as
"shipping" by any means.

-- Emilio

On 8/12/21 23:23, 'Daniel Clark' via blink-dev wrote:
>
> Contact emails
>
> sa...@microsoft.com <mailto:sa...@microsoft.com>, ffi...@microsoft.com
> <mailto:ffi...@microsoft.com>, pc...@microsoft.com
> <mailto:pc...@microsoft.com>, dan...@microsoft.com
> <mailto:dan...@microsoft.com>
>
>
> Explainer
>
> https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/highlight/explainer.md
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftEdge%2FMSEdgeExplainers%2Fblob%2Fmain%2Fhighlight%2Fexplainer.md&data=04%7C01%7Cdaniec%40microsoft.com%7C2a12427c7e9e481ecaa308d95c5061c5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637642322580446981%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=JbmmAHzPIolZl%2F08pDC6uY6blTXwG27Q78ZxI07V%2Bpk%3D&reserved=0>
>
>
> Specification
>
> https://drafts.csswg.org/css-highlight-api-1/
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdrafts.csswg.org%2Fcss-highlight-api-1%2F&data=04%7C01%7Cdaniec%40microsoft.com%7C2a12427c7e9e481ecaa308d95c5061c5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637642322580446981%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=9Vob9NWrYA1B1vnZAAIqKnfJrxJm6abIkAy5BR4sb%2FE%3D&reserved=0>
>
>
> Summary
>
> The custom highlight API provides a way for web developers to style the
> text of arbitrary ranges. This is useful in a variety of scenarios,
> including editing frameworks that wish to implement their own selection,
> find-on-page over virtualized documents, multiple selections to
> represent online collaboration, or spellchecking frameworks.
>
>
> Blink component
>
> Blink>Editing
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.chromium.org%2Fp%2Fchromium%2Fissues%2Flist%3Fq%3Dcomponent%3ABlink%253EEditing&data=04%7C01%7Cdaniec%40microsoft.com%7C2a12427c7e9e481ecaa308d95c5061c5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637642322580456973%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=DSrNFxsJ8cs5yhk4UkJpHyMJcI0JAfp1tQo3AfYcuSY%3D&reserved=0>
>
>
> Search tags
>
> Custom Highlight API
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromestatus.com%2Ffeatures%23tags%3ACustom%2520Highlight%2520API&data=04%7C01%7Cdaniec%40microsoft.com%7C2a12427c7e9e481ecaa308d95c5061c5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637642322580456973%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=dtLSnJKHBXzsvFzIUhU5u3SZIYa2dQVlX%2Bp3IlnKm8E%3D&reserved=0>,
> Highlight API
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromestatus.com%2Ffeatures%23tags%3AHighlight%2520API&data=04%7C01%7Cdaniec%40microsoft.com%7C2a12427c7e9e481ecaa308d95c5061c5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637642322580466968%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=uNCxe0DTl6YNhLM2H9PjUOH5fEDwMWvlj7B0BPvtlmE%3D&reserved=0>
>
>
> TAG review
>
> https://github.com/w3ctag/design-reviews/issues/584
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fw3ctag%2Fdesign-reviews%2Fissues%2F584&data=04%7C01%7Cdaniec%40microsoft.com%7C2a12427c7e9e481ecaa308d95c5061c5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637642322580606896%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=52NnOpqK8kGtRxCojyZ%2FCPSzHshjCkrRxer9d4LZsGM%3D&reserved=0>
>
>
> TAG review status
>
> Issues addressed
>
>
> Risks
>
>
> Interoperability and Compatibility
>
> Low: This feature received positive support from Safari and Firefox at
> TPAC 2019. Safari has implemented the feature.
>
>
>
> /Gecko/: No signal
> (https://github.com/mozilla/standards-positions/issues/482
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromestatus.com%2Fadmin%2Ffeatures%2Flaunch%2F5436441440026624%2F5%3Fintent%3D1&data=04%7C01%7Cdaniec%40microsoft.com%7C2a12427c7e9e481ecaa308d95c5061c5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637642322580616885%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=iPwb2TD48%2FUN4daesvLn5tpneL9Xtw4gP3V4npnc4PU%3D&reserved=0>)
>
> /WebKit/: Shipped/Shipping
> (https://developer.apple.com/safari/technology-preview/release-notes/
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdeveloper.apple.com%2Fsafari%2Ftechnology-preview%2Frelease-notes%2F&data=04%7C01%7Cdaniec%40microsoft.com%7C2a12427c7e9e481ecaa308d95c5061c5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637642322580626879%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=CMKjNCReqT7GrKiIU5ay4Z94wc5CSUva9V4s8dOM3b4%3D&reserved=0>)
> Highlight API listed in Release 99 notes.
>
> /Web developers/: Strongly positive
> (https://github.com/w3c/csswg-drafts/issues/4307
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fw3c%2Fcsswg-drafts%2Fissues%2F4307&data=04%7C01%7Cdaniec%40microsoft.com%7C2a12427c7e9e481ecaa308d95c5061c5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637642322580626879%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=PtNZoxOgIqrnXs3sA8y6NTD64rnRTtFUdbcI4jFmnIE%3D&reserved=0>)
> Multiple use cases have been pointed out in this issue. CKEditor has
> also shown support from the first highlight API explainer.
>
>
> Ergonomics
>
>
> The highlight API will be the first use case for constructible
> StaticRanges, which the API permits as an alternative to Iive
> Ranges because they do not incur cost during DOM mutations.
>
>
> Activation
>
> No. Web developers should be able to use the feature as-is. It is also
> easy to feature detect (checking for the existence of CSS.highlights).
>
>
> Debuggability
>
> DevTools shows ::highlight pseudo elements, in the same way that it
> shows other pseudo elements.
>
>
> Is this feature fully tested by web-platform-tests
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromium.googlesource.com%2Fchromium%2Fsrc%2F%2B%2Fmaster%2Fdocs%2Ftesting%2Fweb_platform_tests.md&data=04%7C01%7Cdaniec%40microsoft.com%7C2a12427c7e9e481ecaa308d95c5061c5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637642322580636878%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=v8r9hOHYZI4s7T6GQlUJs%2BFgUiIkAuKdhxDv4LhyBlM%3D&reserved=0>?
>
> Yes
> https://wpt.fyi/results/css/css-highlight-api?label=master&label=experimental&aligned&q=css
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwpt.fyi%2Fresults%2Fcss%2Fcss-highlight-api%3Flabel%3Dmaster%26label%3Dexperimental%26aligned%26q%3Dcss&data=04%7C01%7Cdaniec%40microsoft.com%7C2a12427c7e9e481ecaa308d95c5061c5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637642322580636878%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=QIFpmEJMdwUcAsfYnmNb4uz652DFkIf7rlXSoLl052c%3D&reserved=0>
>
> https://wpt.fyi/results/css/css-highlight-api/painting?label=master&label=experimental&aligned&q=css
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwpt.fyi%2Fresults%2Fcss%2Fcss-highlight-api%2Fpainting%3Flabel%3Dmaster%26label%3Dexperimental%26aligned%26q%3Dcss&data=04%7C01%7Cdaniec%40microsoft.com%7C2a12427c7e9e481ecaa308d95c5061c5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637642322580646868%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=jYoxJY4LYwMUwDD3nfE1OE0WxEfCKWM7ARlncHDfxjQ%3D&reserved=0>
>
>
> Flag name
>
> --enable-blink-features=HighlightAPI
>
>
> Requires code in //chrome?
>
> False
>
>
> Tracking bug
>
> https://crbug.com/1164461
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcrbug.com%2F1164461&data=04%7C01%7Cdaniec%40microsoft.com%7C2a12427c7e9e481ecaa308d95c5061c5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637642322580646868%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=keAnqP2t51eI2ffdFlfF0hslBCgaq3icRpE6yGDAViU%3D&reserved=0>
>
>
> Estimated milestones
>
> *Comments:*
>
>
> Highlight API does not yet support all of the pseudos at
> https://www.w3.org/TR/css-pseudo-4/#highlight-styling
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.w3.org%2FTR%2Fcss-pseudo-4%2F%23highlight-styling&data=04%7C01%7Cdaniec%40microsoft.com%7C2a12427c7e9e481ecaa308d95c5061c5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637642322580656862%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Xxbo55hYTNdAiHtLdB1C8Ks5w1QSMduaV%2FKIkOs%2Fz9Q%3D&reserved=0>--
> the current implementation only supports color and
> background-color. However, we believe there is value in shipping
> starting with just these styles, since they are sufficient to
> support key scenarios like custom find-on-page.
>
>
> Link to entry on the Chrome Platform Status
>
> https://chromestatus.com/feature/5436441440026624
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromestatus.com%2Ffeature%2F5436441440026624&data=04%7C01%7Cdaniec%40microsoft.com%7C2a12427c7e9e481ecaa308d95c5061c5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637642322580656862%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=IJMDdWVT8l26gAsifKvSuBSs%2FvrrSaABLT0DxYXJtME%3D&reserved=0>
>
>
> Links to previous Intent discussions
>
> Intent to prototype:
> https://groups.google.com/a/chromium.org/g/blink-dev/c/Ix2u8NHG5Po/m/jjMjWIHXAQAJ
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fa%2Fchromium.org%2Fg%2Fblink-dev%2Fc%2FIx2u8NHG5Po%2Fm%2FjjMjWIHXAQAJ&data=04%7C01%7Cdaniec%40microsoft.com%7C2a12427c7e9e481ecaa308d95c5061c5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637642322580666856%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=mlQ9DkwrjX2a7kORyyRXlWuB2ge8ImPTsnO%2FZ3QTnYY%3D&reserved=0>
>
> This intent message was generated by Chrome Platform Status
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.chromestatus.com%2F&data=04%7C01%7Cdaniec%40microsoft.com%7C2a12427c7e9e481ecaa308d95c5061c5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637642322580666856%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=rkgHWFT31UhKchGUedry%2Fi%2FV%2BPA7GFgJyib0Zns3Bl0%3D&reserved=0>.
>
> --
> 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 blink-dev+...@chromium.org
> <mailto:blink-dev+...@chromium.org>.
> To view this discussion on the web visit
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/BL0PR00MB0435222C2F1E0F4BC013388FC5F99%40BL0PR00MB0435.namprd00.prod.outlook.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/BL0PR00MB0435222C2F1E0F4BC013388FC5F99%40BL0PR00MB0435.namprd00.prod.outlook.com?utm_medium=email&utm_source=footer>.

Daniel Clark

unread,
Aug 12, 2021, 6:36:17 PM8/12/21
to emi...@mozilla.com, blin...@chromium.org, Fernando Fiori, Bo Cupp, Sanket Joshi (EDGE)
Oh, you're right, I hadn't realized they still have it off by default.
So my mail should have said that WebKit has implemented it but not shipped it.

-----Original Message-----
From: Emilio Cobos Álvarez <emi...@mozilla.com>
Sent: Thursday, August 12, 2021 3:13 PM
To: Daniel Clark <dan...@microsoft.com>; blin...@chromium.org
Cc: Fernando Fiori <ffi...@microsoft.com>; Bo Cupp <pc...@microsoft.com>; Sanket Joshi (EDGE) <sa...@microsoft.com>
Subject: Re: [blink-dev] Intent to Ship: Custom Highlight API

Is Safari actually shipping it? What I see is that they implement it as a (default off) experimental feature, which I don't think qualifies as "shipping" by any means.

-- Emilio

On 8/12/21 23:23, 'Daniel Clark' via blink-dev wrote:
>
> Contact emails
>
> sa...@microsoft.com <mailto:sa...@microsoft.com>, ffi...@microsoft.com
> <mailto:ffi...@microsoft.com>, pc...@microsoft.com
> <mailto:pc...@microsoft.com>, dan...@microsoft.com
> <mailto:dan...@microsoft.com>
>
>
> Explainer
>
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgith
> ub.com%2FMicrosoftEdge%2FMSEdgeExplainers%2Fblob%2Fmain%2Fhighlight%2F
> explainer.md&amp;data=04%7C01%7Cdaniec%40microsoft.com%7C18a8e4ed1ccc4
> 482d4dc08d95dde6345%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C63764
> 4032020524159%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2lu
> MzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=%2FZClTeCRozA8x8hx
> 1c0AodwctVLfVg5Fi7QhZz7RadI%3D&amp;reserved=0
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit
> hub.com%2FMicrosoftEdge%2FMSEdgeExplainers%2Fblob%2Fmain%2Fhighlight%2
> Fexplainer.md&amp;data=04%7C01%7Cdaniec%40microsoft.com%7C18a8e4ed1ccc
> 4482d4dc08d95dde6345%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6376
> 44032020524159%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2l
> uMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=%2FZClTeCRozA8x8h
> x1c0AodwctVLfVg5Fi7QhZz7RadI%3D&amp;reserved=0>
>
>
> Specification
>
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdraf
> ts.csswg.org%2Fcss-highlight-api-1%2F&amp;data=04%7C01%7Cdaniec%40micr
> osoft.com%7C18a8e4ed1ccc4482d4dc08d95dde6345%7C72f988bf86f141af91ab2d7
> cd011db47%7C1%7C0%7C637644032020524159%7CUnknown%7CTWFpbGZsb3d8eyJWIjo
> iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp
> ;sdata=CtIZuZYQJrML4h5ElG4jzcszVVLEDJujzJs7wcZgQFk%3D&amp;reserved=0
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdra
> fts.csswg.org%2Fcss-highlight-api-1%2F&amp;data=04%7C01%7Cdaniec%40mic
> rosoft.com%7C18a8e4ed1ccc4482d4dc08d95dde6345%7C72f988bf86f141af91ab2d
> 7cd011db47%7C1%7C0%7C637644032020524159%7CUnknown%7CTWFpbGZsb3d8eyJWIj
> oiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&am
> p;sdata=CtIZuZYQJrML4h5ElG4jzcszVVLEDJujzJs7wcZgQFk%3D&amp;reserved=0>
>
>
> Summary
>
> The custom highlight API provides a way for web developers to style
> the text of arbitrary ranges. This is useful in a variety of
> scenarios, including editing frameworks that wish to implement their
> own selection, find-on-page over virtualized documents, multiple
> selections to represent online collaboration, or spellchecking frameworks.
>
>
> Blink component
>
> Blink>Editing
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbug
> s.chromium.org%2Fp%2Fchromium%2Fissues%2Flist%3Fq%3Dcomponent%3ABlink%
> 253EEditing&amp;data=04%7C01%7Cdaniec%40microsoft.com%7C18a8e4ed1ccc44
> 82d4dc08d95dde6345%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637644
> 032020524159%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luM
> zIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=TeY%2BW%2Fex8Gl4%2B
> Iq73fXLvxsTnMFVVZ4ZGyB0z0HQpEs%3D&amp;reserved=0>
>
>
> Search tags
>
> Custom Highlight API
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchr
> omestatus.com%2Ffeatures%23tags%3ACustom%2520Highlight%2520API&amp;dat
> a=04%7C01%7Cdaniec%40microsoft.com%7C18a8e4ed1ccc4482d4dc08d95dde6345%
> 7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637644032020524159%7CUnkn
> own%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwi
> LCJXVCI6Mn0%3D%7C1000&amp;sdata=CFLMP18lhMaB%2FVcHwXux2es9nEYgJD7yQdlr
> N%2BD7aYU%3D&amp;reserved=0>,
> Highlight API
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchr
> omestatus.com%2Ffeatures%23tags%3AHighlight%2520API&amp;data=04%7C01%7
> Cdaniec%40microsoft.com%7C18a8e4ed1ccc4482d4dc08d95dde6345%7C72f988bf8
> 6f141af91ab2d7cd011db47%7C1%7C0%7C637644032020534152%7CUnknown%7CTWFpb
> GZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0
> %3D%7C1000&amp;sdata=Lfdjn4t3fJj5eD0eHuIuQzzuMT77eOIRqnNtfpHHuh4%3D&am
> p;reserved=0>
>
>
> TAG review
>
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgith
> ub.com%2Fw3ctag%2Fdesign-reviews%2Fissues%2F584&amp;data=04%7C01%7Cdan
> iec%40microsoft.com%7C18a8e4ed1ccc4482d4dc08d95dde6345%7C72f988bf86f14
> 1af91ab2d7cd011db47%7C1%7C0%7C637644032020534152%7CUnknown%7CTWFpbGZsb
> 3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%
> 7C1000&amp;sdata=RymFBBO5TL%2BCd5lNhbxyFWE4VBfvsyMHwU2eMrp3XxQ%3D&amp;
> reserved=0
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit
> hub.com%2Fw3ctag%2Fdesign-reviews%2Fissues%2F584&amp;data=04%7C01%7Cda
> niec%40microsoft.com%7C18a8e4ed1ccc4482d4dc08d95dde6345%7C72f988bf86f1
> 41af91ab2d7cd011db47%7C1%7C0%7C637644032020534152%7CUnknown%7CTWFpbGZs
> b3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D
> %7C1000&amp;sdata=RymFBBO5TL%2BCd5lNhbxyFWE4VBfvsyMHwU2eMrp3XxQ%3D&amp
> ;reserved=0>
>
>
> TAG review status
>
> Issues addressed
>
>
> Risks
>
>
> Interoperability and Compatibility
>
> Low: This feature received positive support from Safari and Firefox at
> TPAC 2019. Safari has implemented the feature.
>
>
>
> /Gecko/: No signal
> (https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit
> hub.com%2Fmozilla%2Fstandards-positions%2Fissues%2F482&amp;data=04%7C0
> 1%7Cdaniec%40microsoft.com%7C18a8e4ed1ccc4482d4dc08d95dde6345%7C72f988
> bf86f141af91ab2d7cd011db47%7C1%7C0%7C637644032020534152%7CUnknown%7CTW
> FpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6
> Mn0%3D%7C1000&amp;sdata=v6tkqxZXJAGTwR5fyCF2M767AO4CAcSTYo70X6JoE1w%3D
> &amp;reserved=0
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchr
> omestatus.com%2Fadmin%2Ffeatures%2Flaunch%2F5436441440026624%2F5%3Fint
> ent%3D1&amp;data=04%7C01%7Cdaniec%40microsoft.com%7C18a8e4ed1ccc4482d4
> dc08d95dde6345%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6376440320
> 20534152%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiL
> CJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=x%2BrsW%2BfymtqnpRbW3fu
> qiwb12lwE%2Byi6Io96M%2BMwcz4%3D&amp;reserved=0>)
>
> /WebKit/: Shipped/Shipping
> (https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdev
> eloper.apple.com%2Fsafari%2Ftechnology-preview%2Frelease-notes%2F&amp;
> data=04%7C01%7Cdaniec%40microsoft.com%7C18a8e4ed1ccc4482d4dc08d95dde63
> 45%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637644032020534152%7CU
> nknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1ha
> WwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=B0Mq2lj6VCppjqdBkA5AMV%2FPn4J19xNPA
> 9ttkz7y6Hw%3D&amp;reserved=0
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdev
> eloper.apple.com%2Fsafari%2Ftechnology-preview%2Frelease-notes%2F&amp;
> data=04%7C01%7Cdaniec%40microsoft.com%7C18a8e4ed1ccc4482d4dc08d95dde63
> 45%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637644032020534152%7CU
> nknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1ha
> WwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=B0Mq2lj6VCppjqdBkA5AMV%2FPn4J19xNPA
> 9ttkz7y6Hw%3D&amp;reserved=0>) Highlight API listed in Release 99
> notes.
>
> /Web developers/: Strongly positive
> (https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit
> hub.com%2Fw3c%2Fcsswg-drafts%2Fissues%2F4307&amp;data=04%7C01%7Cdaniec
> %40microsoft.com%7C18a8e4ed1ccc4482d4dc08d95dde6345%7C72f988bf86f141af
> 91ab2d7cd011db47%7C1%7C0%7C637644032020534152%7CUnknown%7CTWFpbGZsb3d8
> eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1
> 000&amp;sdata=GL1atWVnvDso%2BKMxr2uPSVOAMYNW%2BCwkxKCe7gSNEYM%3D&amp;r
> eserved=0
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit
> hub.com%2Fw3c%2Fcsswg-drafts%2Fissues%2F4307&amp;data=04%7C01%7Cdaniec
> %40microsoft.com%7C18a8e4ed1ccc4482d4dc08d95dde6345%7C72f988bf86f141af
> 91ab2d7cd011db47%7C1%7C0%7C637644032020534152%7CUnknown%7CTWFpbGZsb3d8
> eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1
> 000&amp;sdata=GL1atWVnvDso%2BKMxr2uPSVOAMYNW%2BCwkxKCe7gSNEYM%3D&amp;r
> eserved=0>) Multiple use cases have been pointed out in this issue.
> CKEditor has also shown support from the first highlight API
> explainer.
>
>
> Ergonomics
>
>
> The highlight API will be the first use case for constructible
> StaticRanges, which the API permits as an alternative to Iive
> Ranges because they do not incur cost during DOM mutations.
>
>
> Activation
>
> No. Web developers should be able to use the feature as-is. It is also
> easy to feature detect (checking for the existence of CSS.highlights).
>
>
> Debuggability
>
> DevTools shows ::highlight pseudo elements, in the same way that it
> shows other pseudo elements.
>
>
> Is this feature fully tested by web-platform-tests
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromium.googlesource.com%2Fchromium%2Fsrc%2F%2B%2Fmaster%2Fdocs%2Ftesting%2Fweb_platform_tests.md&amp;data=04%7C01%7Cdaniec%40microsoft.com%7C18a8e4ed1ccc4482d4dc08d95dde6345%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637644032020534152%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=L5OWLfk0JNSnsaK6JnczypT6EBpt8eVkKIKJfg41dzc%3D&amp;reserved=0>?
>
> Yes
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwpt.
> fyi%2Fresults%2Fcss%2Fcss-highlight-api%3Flabel%3Dmaster%26label%3Dexp
> erimental%26aligned%26q%3Dcss&amp;data=04%7C01%7Cdaniec%40microsoft.co
> m%7C18a8e4ed1ccc4482d4dc08d95dde6345%7C72f988bf86f141af91ab2d7cd011db4
> 7%7C1%7C0%7C637644032020534152%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjA
> wMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=i
> lwQaRFmbazoBElMztU6Ie7qokaD5HGiplns4VvBIGY%3D&amp;reserved=0
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwpt
> .fyi%2Fresults%2Fcss%2Fcss-highlight-api%3Flabel%3Dmaster%26label%3Dex
> perimental%26aligned%26q%3Dcss&amp;data=04%7C01%7Cdaniec%40microsoft.c
> om%7C18a8e4ed1ccc4482d4dc08d95dde6345%7C72f988bf86f141af91ab2d7cd011db
> 47%7C1%7C0%7C637644032020534152%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLj
> AwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=
> ilwQaRFmbazoBElMztU6Ie7qokaD5HGiplns4VvBIGY%3D&amp;reserved=0>
>
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwpt.
> fyi%2Fresults%2Fcss%2Fcss-highlight-api%2Fpainting%3Flabel%3Dmaster%26
> label%3Dexperimental%26aligned%26q%3Dcss&amp;data=04%7C01%7Cdaniec%40m
> icrosoft.com%7C18a8e4ed1ccc4482d4dc08d95dde6345%7C72f988bf86f141af91ab
> 2d7cd011db47%7C1%7C0%7C637644032020534152%7CUnknown%7CTWFpbGZsb3d8eyJW
> IjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&
> amp;sdata=5%2FAMXWkzLVj9kqPxuquDPlg7E0kVEH2pMpazaTNXNGc%3D&amp;reserve
> d=0
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwpt
> .fyi%2Fresults%2Fcss%2Fcss-highlight-api%2Fpainting%3Flabel%3Dmaster%2
> 6label%3Dexperimental%26aligned%26q%3Dcss&amp;data=04%7C01%7Cdaniec%40
> microsoft.com%7C18a8e4ed1ccc4482d4dc08d95dde6345%7C72f988bf86f141af91a
> b2d7cd011db47%7C1%7C0%7C637644032020544145%7CUnknown%7CTWFpbGZsb3d8eyJ
> WIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000
> &amp;sdata=spKzJcJUWYHXZkxJdFqdWIq9%2FyfNxqEBFf3oWigEIrM%3D&amp;reserv
> ed=0>
>
>
> Flag name
>
> --enable-blink-features=HighlightAPI
>
>
> Requires code in //chrome?
>
> False
>
>
> Tracking bug
>
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcrbu
> g.com%2F1164461&amp;data=04%7C01%7Cdaniec%40microsoft.com%7C18a8e4ed1c
> cc4482d4dc08d95dde6345%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C63
> 7644032020544145%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV
> 2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=HZTTruwyLxhcIo3
> 5DAamfkzmDBul%2BBgiaVwrqP%2BFJ20%3D&amp;reserved=0
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcrb
> ug.com%2F1164461&amp;data=04%7C01%7Cdaniec%40microsoft.com%7C18a8e4ed1
> ccc4482d4dc08d95dde6345%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6
> 37644032020544145%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoi
> V2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=HZTTruwyLxhcIo
> 35DAamfkzmDBul%2BBgiaVwrqP%2BFJ20%3D&amp;reserved=0>
>
>
> Estimated milestones
>
> *Comments:*
>
>
> Highlight API does not yet support all of the pseudos at
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.w3.org%2FTR%2Fcss-pseudo-4%2F%23highlight-styling&amp;data=04%7C01%7Cdaniec%40microsoft.com%7C18a8e4ed1ccc4482d4dc08d95dde6345%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637644032020544145%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=fHiCT6iUl%2BlsKJF4b1bt9EGkj9V7p9tQXb2luDjJYaY%3D&amp;reserved=0
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.w3.org%2FTR%2Fcss-pseudo-4%2F%23highlight-styling&amp;data=04%7C01%7Cdaniec%40microsoft.com%7C18a8e4ed1ccc4482d4dc08d95dde6345%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637644032020544145%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=fHiCT6iUl%2BlsKJF4b1bt9EGkj9V7p9tQXb2luDjJYaY%3D&amp;reserved=0>--
> the current implementation only supports color and
> background-color. However, we believe there is value in shipping
> starting with just these styles, since they are sufficient to
> support key scenarios like custom find-on-page.
>
>
> Link to entry on the Chrome Platform Status
>
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchro
> mestatus.com%2Ffeature%2F5436441440026624&amp;data=04%7C01%7Cdaniec%40
> microsoft.com%7C18a8e4ed1ccc4482d4dc08d95dde6345%7C72f988bf86f141af91a
> b2d7cd011db47%7C1%7C0%7C637644032020544145%7CUnknown%7CTWFpbGZsb3d8eyJ
> WIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000
> &amp;sdata=vF01QBV9gU3%2F92kQ4XJE9L8QfjbPCMTCN9rca8r6GiM%3D&amp;reserv
> ed=0
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchr
> omestatus.com%2Ffeature%2F5436441440026624&amp;data=04%7C01%7Cdaniec%4
> 0microsoft.com%7C18a8e4ed1ccc4482d4dc08d95dde6345%7C72f988bf86f141af91
> ab2d7cd011db47%7C1%7C0%7C637644032020544145%7CUnknown%7CTWFpbGZsb3d8ey
> JWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C100
> 0&amp;sdata=vF01QBV9gU3%2F92kQ4XJE9L8QfjbPCMTCN9rca8r6GiM%3D&amp;reser
> ved=0>
>
>
> Links to previous Intent discussions
>
> Intent to prototype:
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgrou
> ps.google.com%2Fa%2Fchromium.org%2Fg%2Fblink-dev%2Fc%2FIx2u8NHG5Po%2Fm
> %2FjjMjWIHXAQAJ&amp;data=04%7C01%7Cdaniec%40microsoft.com%7C18a8e4ed1c
> cc4482d4dc08d95dde6345%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C63
> 7644032020544145%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV
> 2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=TQXvbAzdbp4ECIP
> %2Bvh2oCMsS6x7xc4N4Y80lLjQ9hCM%3D&amp;reserved=0
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgro
> ups.google.com%2Fa%2Fchromium.org%2Fg%2Fblink-dev%2Fc%2FIx2u8NHG5Po%2F
> m%2FjjMjWIHXAQAJ&amp;data=04%7C01%7Cdaniec%40microsoft.com%7C18a8e4ed1
> ccc4482d4dc08d95dde6345%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6
> 37644032020544145%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoi
> V2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=TQXvbAzdbp4ECI
> P%2Bvh2oCMsS6x7xc4N4Y80lLjQ9hCM%3D&amp;reserved=0>
>
> This intent message was generated by Chrome Platform Status
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.chromestatus.com%2F&amp;data=04%7C01%7Cdaniec%40microsoft.com%7C18a8e4ed1ccc4482d4dc08d95dde6345%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637644032020544145%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=jXBqdPRVUTHR94BBKnmqtMMjtuqiMuqJISSP0VB3d%2F0%3D&amp;reserved=0>.
>
> --
> 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 blink-dev+...@chromium.org
> <mailto:blink-dev+...@chromium.org>.
> To view this discussion on the web visit
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgrou
> ps.google.com%2Fa%2Fchromium.org%2Fd%2Fmsgid%2Fblink-dev%2FBL0PR00MB04
> 35222C2F1E0F4BC013388FC5F99%2540BL0PR00MB0435.namprd00.prod.outlook.co
> m&amp;data=04%7C01%7Cdaniec%40microsoft.com%7C18a8e4ed1ccc4482d4dc08d9
> 5dde6345%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6376440320205441
> 45%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI
> 6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=CvYCzp%2FGtU6aJqcehpZnc9jJdsT
> ROnwMLkY2GUr1RV8%3D&amp;reserved=0
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fa%2Fchromium.org%2Fd%2Fmsgid%2Fblink-dev%2FBL0PR00MB0435222C2F1E0F4BC013388FC5F99%2540BL0PR00MB0435.namprd00.prod.outlook.com%3Futm_medium%3Demail%26utm_source%3Dfooter&amp;data=04%7C01%7Cdaniec%40microsoft.com%7C18a8e4ed1ccc4482d4dc08d95dde6345%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637644032020544145%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=G4GreSthT%2F8zw%2FyIZHNIlUH6xU4HVaGG6gFg7W5nPlo%3D&amp;reserved=0>.

Rick Byers

unread,
Aug 13, 2021, 11:57:59 AM8/13/21
to Daniel Clark, emi...@mozilla.com, blin...@chromium.org, Fernando Fiori, Bo Cupp, Sanket Joshi (EDGE)
LGTM1 - looks great to me!

"Explaining" and exposing magic rendering properties of the platform like highlighting is super valuable, thank you! Out of curiosity, if this gets broad support do you think there's an opportunity to redefine things like find-in-page highlights to be built (conceptually if not physically) on top of this primitive?

Rick

To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/SN6PR00MB04484770F08C2680983FAC60C5F99%40SN6PR00MB0448.namprd00.prod.outlook.com.

Florian Rivoal

unread,
Aug 13, 2021, 5:31:49 PM8/13/21
to Daniel Clark, blin...@chromium.org, Fernando Fiori, Bo Cupp, Sanket Joshi (EDGE), Delan Azabani
Hi all!

Being one of the co-editors of this spec, I'm super happy about this getting traction… but I think shipping is a little bit premature:

* We have a few open issues on the spec. https://github.com/w3c/csswg-drafts/labels/css-highlight-api-1 Most of them should be pretty easy, and I'm happy to prioritize them. It seems better to get the API / behavior to be stable and then ship rather than the other way around.

* One of the open issues is possibly not easy, but important: it has not yet been determined how this was supposed to work with screen-readers and other assistive technologies. I think this ought to be given serious thoughts, and probably should be solved before shipping https://github.com/w3c/csswg-drafts/issues/6498 / https://github.com/w3c/csswg-drafts/issues/4601

* The custom highlights defined by this API are highlights, as defined in https://drafts.csswg.org/css-pseudo-4/#highlight-pseudos, and Chrome's current behavior is actually far from spec compliant here. Luckily, this is in the process of being fixed, but shipping custom highights before landing those fixes risks causing a compat problem: if people start to use custom highlight with the current/broken cascading and painting model, and then we fix it, that's liable to cause plenty of annoyances. As long as fixing those is considered a dependency for this intent to ship, then that's great, but shipping the API first and fixing the behavior later is maybe not so great. See at least https://bugs.chromium.org/p/chromium/issues/detail?id=1147859

—Florian

-- 
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 blink-dev+...@chromium.org.

Daniel Clark

unread,
Aug 17, 2021, 12:27:04 PM8/17/21
to flo...@rivoal.net, blin...@chromium.org, Fernando Fiori, Bo Cupp, Sanket Joshi (EDGE), daza...@igalia.com

Thanks Florian for your thoughts on this!

 

> We have a few open issues on the spec. https://github.com/w3c/csswg-drafts/labels/css-highlight-api-1

 

Makes sense, we’ll work on driving down these issues in CSSWG before shipping, and we’ll make sure that we have at least a clearer plan regarding accessibility for the API. I’ll update this thread when more progress has been made here.

 

> The custom highlights defined by this API are highlights, as defined in https://drafts.csswg.org/css-pseudo-4/#highlight-pseudos, and Chrome's current behavior is actually far from spec compliant here.

 

Our thinking on this is that this first version of the Highlight API is mainly useful for scenarios like custom find-on-page where highlights use simple formatting (like background-color and color), and overlapping highlight ranges are not common. So, we don’t expect the discrepancies between the Chromium implementation and the highlight pseudos specs to be a big issue. For example, many of these longstanding highlight painting issues exist with the browser’s current find-on-page implementation, but in practice they are minimally disruptive.

 

So our thinking is that fixing these highlight painting issues in the future would not cause significant breakage for sites built using the current capabilities of the API. Thus I’m hesitant to conclude that this reworking of the highlight painting code should be a blocker for shipping the API.

 

From: Florian Rivoal <flo...@rivoal.net>
Sent: Friday, August 13, 2021 2:32 PM
To: Daniel Clark <dan...@microsoft.com>
Cc: blin...@chromium.org; Fernando Fiori <ffi...@microsoft.com>; Bo Cupp <pc...@microsoft.com>; Sanket Joshi (EDGE) <sa...@microsoft.com>; Delan Azabani <daza...@igalia.com>
Subject: Re: [blink-dev] Intent to Ship: Custom Highlight API

 

Hi all!

Daniel Clark

unread,
Aug 17, 2021, 12:30:00 PM8/17/21
to rby...@chromium.org, emi...@mozilla.com, blin...@chromium.org, Fernando Fiori, Bo Cupp, Sanket Joshi (EDGE)

Thanks Rick!

 

Yes, I definitely think that the browser’s built-in find-on-page could be redefined using this. In Chromium at least they are already implemented using some of the same structures (DocumentMarker for keeping track of highlight positions). I think further down the line it could be worthwhile to look at fully transitioning things like find-on-page to Highlight API.

 

-- Dan

 

From: Rick Byers <rby...@chromium.org>
Sent: Friday, August 13, 2021 8:58 AM
To: Daniel Clark <dan...@microsoft.com>

Delan Azabani

unread,
Aug 18, 2021, 12:15:19 PM8/18/21
to blink-dev, Daniel Clark, blin...@chromium.org, Fernando Fiori, Bo Cupp, Sanket Joshi (Edge), Delan Azabani, flo...@rivoal.net
I’m also excited to see this feature ship, as it’s pretty relevant to our work at Igalia, but I feel I must share and expand on Florian’s concerns about our current behaviour.

On Wednesday, August 18, 2021 at 12:27:04 AM UTC+8 Daniel Clark wrote:
Our thinking on this is that this first version of the Highlight API is mainly useful for scenarios like custom find-on-page where highlights use simple formatting (like background-color and color), and overlapping highlight ranges are not common. So, we don’t expect the discrepancies between the Chromium implementation and the highlight pseudos specs to be a big issue. For example, many of these longstanding highlight painting issues exist with the browser’s current find-on-page implementation, but in practice they are minimally disruptive. […] Thus I’m hesitant to conclude that this reworking of the highlight painting code should be a blocker for shipping the API.

Note that it’s not just paint that’s broken, but style too, primarily because we don’t yet impl highlight inheritance. Also, surely even the proposed subset of background-color and color would have uses beyond find-on-page, like multiple selections for online collaboration?

It’s one thing to ship with missing features that we can easily add later (such as text-decoration support, more or less), or with bugs of minor consequence (such as <https://crbug.com/1179938>). But do we really want to be the first engine to ship this feature, with an impl that’s broken under the spec’s very first example [0][1], color on ligature-heavy scripts (despite working in ::selection) [2], and even ancient features like ::first-letter [3]?

Each of these bugs, if shipped and fixed later, has some impact — however small — on things like compat, author confidence, and even tutorial content. For example, strictly speaking, impl’ing highlight inheritance will break what [4] has to say about text-shadow. Fixing them after the fact in ::selection (currently a separate impl) has proven painful, because chipping away at a big problem over multiple patches has caused regressions [5].

I think it was a mistake for Blink to ship ::target-text in this kind of state, and given the wider range of use cases that ::highlight aims to solve, I think it would be at least as much of a mistake here.


Cheers,
Delan Azabani
Igalia // web platform

Florian Rivoal

unread,
Aug 18, 2021, 9:30:06 PM8/18/21
to Delan Azabani, blink-dev, Daniel Clark, Fernando Fiori, Bo Cupp, Sanket Joshi (Edge)

On Aug 19, 2021, at 1:15, Delan Azabani <daza...@igalia.com> wrote:

I’m also excited to see this feature ship, as it’s pretty relevant to our work at Igalia, but I feel I must share and expand on Florian’s concerns about our current behaviour.

On Wednesday, August 18, 2021 at 12:27:04 AM UTC+8 Daniel Clark wrote:
Our thinking on this is that this first version of the Highlight API is mainly useful for scenarios like custom find-on-page where highlights use simple formatting (like background-color and color), and overlapping highlight ranges are not common. So, we don’t expect the discrepancies between the Chromium implementation and the highlight pseudos specs to be a big issue. For example, many of these longstanding highlight painting issues exist with the browser’s current find-on-page implementation, but in practice they are minimally disruptive. […] Thus I’m hesitant to conclude that this reworking of the highlight painting code should be a blocker for shipping the API.

Note that it’s not just paint that’s broken, but style too, primarily because we don’t yet impl highlight inheritance. Also, surely even the proposed subset of background-color and color would have uses beyond find-on-page, like multiple selections for online collaboration?

It’s one thing to ship with missing features that we can easily add later (such as text-decoration support, more or less), or with bugs of minor consequence (such as <https://crbug.com/1179938>). But do we really want to be the first engine to ship this feature, with an impl that’s broken under the spec’s very first example [0][1], color on ligature-heavy scripts (despite working in ::selection) [2], and even ancient features like ::first-letter [3]?

Each of these bugs, if shipped and fixed later, has some impact — however small — on things like compat, author confidence, and even tutorial content. For example, strictly speaking, impl’ing highlight inheritance will break what [4] has to say about text-shadow. Fixing them after the fact in ::selection (currently a separate impl) has proven painful, because chipping away at a big problem over multiple patches has caused regressions [5].

I suspect that shipping with some amount of paint bugs is probably tolerable (although I would prefer if we could deal with the worst offenders), but that we really ought to block on fixing the style part. Otherwise, the API is pretty much unusable as soon as you want to start writing styles that apply to less than the whole page (or if you manage to work around the limitations, you'll end up with content that breaks once we fix the implementation).


I think it was a mistake for Blink to ship ::target-text in this kind of state, and given the wider range of use cases that ::highlight aims to solve, I think it would be at least as much of a mistake here.


Cheers,
Delan Azabani
Igalia // web platform

--
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 blink-dev+...@chromium.org.

Manuel Rego Casasnovas

unread,
Sep 2, 2021, 7:09:25 AM9/2/21
to Delan Azabani, blink-dev, Daniel Clark, Fernando Fiori, Bo Cupp, Sanket Joshi (Edge), flo...@rivoal.net


On 18/08/2021 18:15, Delan Azabani wrote:
> I think it was a mistake for Blink to ship ::target-text in this kind of
> state, and given the wider range of use cases that ::highlight aims to
> solve, I think it would be at least as much of a mistake here.

I agree with this.

::target-text has a bunch of known issues, but sadly it's already shipped.

But this is a way bigger API, that will allow web authors to add
highlights all over the page. It's a really nice one, but even limiting
it to color and background-color properties, there are a bunch of issues
that we should solve before shipping. Otherwise people could start to
depend on behaviors that are going to change (like inheritance), or find
that the API is not useful for some simple cases and discard it, or
whatever.

We've collected examples that have issues in the current highlight
implementation: <https://codepen.io/dazabani13/pen/KKqzOJp>

Delan has been working on adding support for ::spelling|grammar-error.
These pseudos have many of the same issues, as they use DocumentMarkers
like custom highlights. She has been fixing some of them, but the work
is still ongoing. Anyway probably not all the issues need to be fixed
before shipping.

If you're interested, we've started writing a design doc that explores
the topic in more detail:
<https://docs.google.com/document/d/1Rfelx4qv-RhQYHUJ74QBU5MjEbmb9Wol9gvyjkywqgE>

Cheers,
Rego

Rick Byers

unread,
Sep 7, 2021, 9:05:26 PM9/7/21
to Manuel Rego Casasnovas, Delan Azabani, blink-dev, Daniel Clark, Fernando Fiori, Bo Cupp, Sanket Joshi (Edge), flo...@rivoal.net
Thanks for all the additional discussion and context. I wasn't aware of what a shaky ground we were on here today. I agree with the conclusion that we should firm it up somewhat before shipping this new API. So consider my LGTM rescinded for now. But please come back once you feel the highlighting foundation is solid enough to be safe to build upon. 

--
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 blink-dev+...@chromium.org.
Reply all
Reply to author
Forward
0 new messages