Do you have an update on the #1404 changes? I took a quick look at the
issue but could not determine the current state of it.
/Daniel
On 2026-05-18 18:35, 'Stephanie Zhang' via blink-dev wrote:
Hi all, apologies for the delay. A few of the recent review comments
on #1404 <https://github.com/whatwg/dom/pull/1404>are on API shape
rather than purely editorial, so we won't be shipping in 149. I'll
follow up with the new release target once those are resolved.
Since the original intent:
* Mozilla and WebKit: positive signals on standards-positions.
* Alex: no external OT feedback yet beyond the Microsoft Editor SDK
team, who plan to integrate ahead of ship.
* Rick: looking into the Edge-vs-Chrome WPT diffs; will follow up.
* Philip: the open API-shape comments on #1404 are the remaining
blocker.
Thanks for the patience.
On Wednesday, May 6, 2026 at 8:11:19 AM UTC-7 Philip Jägenstedt wrote:
What are the remaining blockers to land
https://github.com/whatwg/dom/pull/1404? All of the checkboxes are
checked, is it a matter of editorial review now?
On Wed, May 6, 2026 at 3:54 PM Rick Byers <[email protected]> wrote:
It would be nice to hear more about OT feedback, but knowing
that the Microsoft Editor SDK has validated the design and
plans to adopt it meets my bar for developer feedback on a
relatively small feature like this. So LGTM1 from me.
It's nice to see the WPT suite
<https://wpt.fyi/results/dom/ranges/tentative?label=experimental&label=master&aligned>
very green. Is someone looking at why a few tests appear to be
passing in Edge but failing in Chrome?
Rick
On Mon, May 4, 2026 at 2:42 PM Alex Russell
<[email protected]> wrote:
Hey Stephanie (et al.),
Excited about this feature. Am I right in assuming that
nobody has been able to provide OT feedback yet? If there
has been feedback, can you summarize it here?
Best,
Alex
On Wednesday, April 29, 2026 at 12:12:53 PM UTC-7
Stephanie Zhang wrote:
*Contact emails*
[email protected]_, [email protected]_,
[email protected]_, [email protected]_
*Explainer*
_https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/OpaqueRange/explainer.md_
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftEdge%2FMSEdgeExplainers%2Fblob%2Fmain%2FOpaqueRange%2Fexplainer.md&data=05%7C02%7Cstephanie.zhang%40microsoft.com%7C81a0a04d7bb341a3e49408dea5563241%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C639129986872058065%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=qHzQqtSg2jDdVrEVcd3ms2PDr8nwb5KbNq7s8Z1%2Fpcc%3D&reserved=0>
*Specification*
_https://github.com/whatwg/dom/pull/1404_
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fwhatwg%2Fdom%2Fpull%2F1404&data=05%7C02%7Cstephanie.zhang%40microsoft.com%7C81a0a04d7bb341a3e49408dea5563241%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C639129986872070768%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=KkvkSV5EI8Y%2Bo6vEs0kjkkP7xU6ydqCCH2yb5Zbpsy8%3D&reserved=0>
*Summary*
`OpaqueRange` represents a live span of text within a
form control’s value, such as a `<textarea>` or
text-based `<input>`, so developers can work with
value text using range-like APIs. It enables
operations such as `getBoundingClientRect()`,
`getClientRects()`, and integration with the CSS
Custom Highlight API for UI such as inline
suggestions, highlights, and anchored popovers. It
preserves encapsulation by exposing only value offsets
while returning `null` for `startContainer` and
`endContainer`, so DOM endpoints and internal
structure are not exposed.
*Blink component*
_Blink>DOM_
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fissues.chromium.org%2Fissues%3Fq%3Dcustomfield1222907%3A%2522Blink%253EDOM%2522&data=05%7C02%7Cstephanie.zhang%40microsoft.com%7C81a0a04d7bb341a3e49408dea5563241%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C639129986872081509%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=HPwyv0vG7LVjeVQhvsiKMdcyxJaqervtEOH6YqMUYTg%3D&reserved=0>
*Web Feature ID*
Missing feature
_New feature ID for OpaqueRange · Issue #3863 ·
web-platform-dx/web-features_
<https://github.com/web-platform-dx/web-features/issues/3863>
*Motivation*
Currently, developers can’t get accurate text geometry
or apply the CSS Custom Highlight API to text inside
native `<textarea>` and text-based `<input>` controls.
As a result, they often avoid native form controls and
build editable `<div>`-based workarounds to anchor UI,
such as autocomplete popovers, or to highlight
matches. These workarounds require reimplementing
native editing behavior and can have accessibility
gaps. `OpaqueRange` enables range-based operations on
the control’s value text, so developers can measure
text geometry and build text-anchored UI directly in
native controls.
*Initial public proposal*
_https://github.com/whatwg/html/issues/10614_
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fwhatwg%2Fhtml%2Fissues%2F10614&data=05%7C02%7Cstephanie.zhang%40microsoft.com%7C81a0a04d7bb341a3e49408dea5563241%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C639129986872101415%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=BKt7yavrtM8tgFneyHXhDqJCNVLuxh8wPpTh5eh%2FppQ%3D&reserved=0>
*TAG review*
_https://github.com/w3ctag/design-reviews/issues/1206_
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fw3ctag%2Fdesign-reviews%2Fissues%2F1206&data=05%7C02%7Cstephanie.zhang%40microsoft.com%7C81a0a04d7bb341a3e49408dea5563241%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C639129986872111131%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=r2iH%2BQ9l72LwxV2s69aeHlP2E9m8iXutC25JNdF594c%3D&reserved=0>
*TAG review status*
Pending
*Origin Trial Name*
OpaqueRange
*Goals for experimentation*
Validate API design and gather developer feedback on
whether the API meets their needs.
*Chromium Trial Name*
OpaqueRange
*Origin Trial documentation link*
_https://www.youtube.com/watch?v=Sp9C68TZXiE_
<https://www.youtube.com/watch?v=Sp9C68TZXiE>
*WebFeature UseCounter name*
kOpaqueRange
*Risks*
*Interoperability and Compatibility*
`OpaqueRange` adds new methods, such as
`createValueRange()`, to `<textarea>` and supported
text-based `<input>` elements so authors can create
ranges over value text. It does not change existing
editing or selection behavior, so the risk to existing
sites is low. The main interoperability risk is lack
of implementation across engines, which could make
text-anchored UI or highlights inside native controls
work in only some browsers.
/Gecko/: No
signal
(_https://github.com/mozilla/standards-positions/issues/1289_
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmozilla%2Fstandards-positions%2Fissues%2F1289&data=05%7C02%7Cstephanie.zhang%40microsoft.com%7C81a0a04d7bb341a3e49408dea5563241%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C639129986872120773%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=QHBPgBumqgNIEJ%2B3RCSizi6y%2BYqCC6BOQZgacx0ZyEM%3D&reserved=0>)
/WebKit/: No
signal
(_https://github.com/WebKit/standards-positions/issues/541_
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FWebKit%2Fstandards-positions%2Fissues%2F541&data=05%7C02%7Cstephanie.zhang%40microsoft.com%7C81a0a04d7bb341a3e49408dea5563241%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C639129986872130815%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=d4mAnntEEzmtFS294m9idCHVZOx5CuunvtSl%2FHaHYUE%3D&reserved=0>)
/Web developers/: Positive
_https://github.com/w3c/csswg-drafts/issues/4603_
<https://github.com/w3c/csswg-drafts/issues/4603>:
request for ranges inside `<textarea>`/`<input>` to
support spellchecking/grammar highlights.
_https://github.com/w3c/csswg-drafts/issues/10346_
<https://github.com/w3c/csswg-drafts/issues/10346>:
request for selection/caret geometry in
`<textarea>`/`<input>` to anchor autocomplete popovers
and similar UI.
_https://github.com/MicrosoftEdge/MSEdgeExplainers/issues/1104_
<https://github.com/MicrosoftEdge/MSEdgeExplainers/issues/1104>:
developer feedback that `OpaqueRange` (previously
`FormControlRange`) would be useful because existing
overlay workarounds are hard to keep in sync and can
visibly lag.
/Other signals/:
*Ergonomics*
`OpaqueRange` is typically used with selection offsets
and with geometry/highlighting APIs. The geometry
calls are synchronous and can trigger layout, similar
to existing `Range` geometry methods. Since the range
is live, offsets are updated as the control’s value is
edited.
*Activation*
Moderate. Developers need to learn the value-offset
model and how it differs from `Range` (there are no
DOM endpoints).
*Security*
No new data exposure beyond existing access to form
control values and selection. Exposes only value
offsets and geometry and does not expose internal DOM
(`startContainer`/`endContainer` are `null`).
*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?/
Low. `OpaqueRange` adds a new method to `<textarea>`
and supported text-based `<input>` elements, but does
not change or deprecate any existing behavior.
*Debuggability*
No DevTools changes required.
*Will this feature be supported on all six Blink
platforms (Windows, Mac, Linux, ChromeOS, Android, and
Android WebView)?*
Yes
Works on all platforms that support `<input>` and
`<textarea>` 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%2Fmain%2Fdocs%2Ftesting%2Fweb_platform_tests.md&data=05%7C02%7Cstephanie.zhang%40microsoft.com%7C81a0a04d7bb341a3e49408dea5563241%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C639129986872169769%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=7gMJYElkxzN5Bs5Hnns%2BTpasHNu3e974vzsod5Nw%2FYM%3D&reserved=0>*?*
Yes
_https://wpt.fyi/results/dom/ranges/tentative?label=experimental&label=master&aligned_
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwpt.fyi%2Fresults%2Fdom%2Franges%2Ftentative%3Flabel%3Dexperimental%26label%3Dmaster%26aligned&data=05%7C02%7Cstephanie.zhang%40microsoft.com%7C81a0a04d7bb341a3e49408dea5563241%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C639129986872179399%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=BoQHWaf8mMxkz6HDuaRR4L%2FEmba7AAaeNFmOj%2Bncggo%3D&reserved=0>
*Flag name on about://flags*
/No information provided/
*Finch feature name*
OpaqueRange
*Rollout plan*
Will ship enabled for all users
*Requires code in //chrome?*
False
*Tracking bug*
_https://issues.chromium.org/issues/421421332_
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fissues.chromium.org%2Fissues%2F421421332&data=05%7C02%7Cstephanie.zhang%40microsoft.com%7C81a0a04d7bb341a3e49408dea5563241%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C639129986872189082%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=bJL4Ql41Aj%2Bg3mB2XJfgclU%2BgkK8mud%2BrkgFiS3ZwkY%3D&reserved=0>
*Measurement*
UseCounter `OpaqueRange` measures successful creation
of `OpaqueRange` objects on `<textarea>` and
text-based `<input>` elements.
*Availability expectation*
Feature is available only in Chromium browsers for the
foreseeable future. `OpaqueRange` is at WHATWG Stage 2
with informal approval of the current spec direction
from Mozilla and WebKit reviewers and is moving toward
Stage 3. We are continuing to seek official standards
positions from Mozilla and WebKit.
*Adoption expectation*
Feature is expected to be used by specific partner(s)
within 12 months of launch in Chrome. The Microsoft
Editor SDK team has confirmed plans to adopt the
feature and intends to land integration behind a
switch ahead of ship.
*Adoption plan*
Stay engaged with Microsoft Editor SDK on rollout.
Continue WHATWG work toward Stage 3; seek formal
Firefox/WebKit positions. Monitor use counter and bug
reports post-ship. Developer outreach already underway
on Mastodon, Bluesky, YouTube, LinkedIn.
*Non-OSS dependencies*
/Does the feature depend on any code or APIs outside
the Chromium open source repository and its
open-source dependencies to function?/
No
*Estimated milestones*
Shipping on desktop 149
Origin trial desktop first 148
Origin trial desktop last 150
DevTrial on desktop 148
Shipping on Android 149
Origin trial Android first 148
Origin trial Android last 150
DevTrial on Android 148
Shipping on WebView 149
Origin trial WebView first 148
Origin trial WebView last 150
*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)./
No known non-backward-compatible spec changes are
expected. The spec PRs are under active review, and
any remaining feedback is expected to be editorial or
otherwise backward-compatible.
*Link to entry on the Chrome Platform Status*
_https://chromestatus.com/feature/6297362687066112?gate=6322608320282624_
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromestatus.com%2Ffeature%2F6297362687066112%3Fgate%3D6322608320282624&data=05%7C02%7Cstephanie.zhang%40microsoft.com%7C81a0a04d7bb341a3e49408dea5563241%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C639129986872199016%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=PS%2F6dCcXujSjM5wRJeg4PQItZOUtpR10DiUmSM0kkKU%3D&reserved=0>
*Links to previous Intent discussions*
Intent to Prototype:
_https://groups.google.com/a/chromium.org/d/msgid/blink-dev/LV9PR21MB5189A114B34C8A3685A3C4A4805CA%40LV9PR21MB5189.namprd21.prod.outlook.com_
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fa%2Fchromium.org%2Fd%2Fmsgid%2Fblink-dev%2FLV9PR21MB5189A114B34C8A3685A3C4A4805CA%2540LV9PR21MB5189.namprd21.prod.outlook.com&data=05%7C02%7Cstephanie.zhang%40microsoft.com%7C81a0a04d7bb341a3e49408dea5563241%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C639129986872209532%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=0R0lijpaaqqU98Cy4%2BMUKZFvSS98%2BLEX%2BgxN%2F97mUhw%3D&reserved=0>
Intent to Experiment:
_https://groups.google.com/a/chromium.org/g/blink-dev/c/jrIXiBUbQm0_
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fa%2Fchromium.org%2Fg%2Fblink-dev%2Fc%2FjrIXiBUbQm0&data=05%7C02%7Cstephanie.zhang%40microsoft.com%7C81a0a04d7bb341a3e49408dea5563241%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C639129986872219502%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=WIBn3BC8npIdGiIZMXRihFMpjRK1XX%2BCB1Kj8iiOr8g%3D&reserved=0>
This intent message was generated by _Chrome Platform
Status_
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromestatus.com%2F&data=05%7C02%7Cstephanie.zhang%40microsoft.com%7C81a0a04d7bb341a3e49408dea5563241%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C639129986872230077%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=N%2BjycMAQH6qmt4FMWiMCB1Az2XDQURi0edef9DX6AMg%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 [email protected].
To view this discussion visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/ae385e61-f3a0-4381-9a0e-2a891581c327n%40chromium.org
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/ae385e61-f3a0-4381-9a0e-2a891581c327n%40chromium.org?utm_medium=email&utm_source=footer>.
--
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/CAFUtAY9ZwvD7mAdJwqQ33Xr4khFTjEo2O3TbeFocwjLJRNJ-_w%40mail.gmail.com
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFUtAY9ZwvD7mAdJwqQ33Xr4khFTjEo2O3TbeFocwjLJRNJ-_w%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
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/2cd4ddfe-cb82-4288-a309-d129f94227fan%40chromium.org
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/2cd4ddfe-cb82-4288-a309-d129f94227fan%40chromium.org?utm_medium=email&utm_source=footer>.
--
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/8dd71cda-e91b-4f25-8119-1c15755b0c68%40gmail.com.