Contact emails
jlav...@google.com, andres...@chromium.org, fma...@chromium.org, sche...@chromium.orgExplainer
https://github.com/fserb/canvas2D/blob/master/spec/enhanced-textmetrics.mdhttps://github.com/Igalia/explainers/blob/main/canvas-formatted-text/text-metrics-additions.mdhttps://github.com/whatwg/html/issues/10677Specification
https://github.com/whatwg/html/pull/11000Summary
Expand the TextMetrics Canvas API to support selection rectangles, bounding box queries, and glyph cluster-based operations.
This new functionality should enable complex text editing applications with accurate selection, caret positioning, and hit testing. Additionally, cluster-based rendering facilitates sophisticated text effects such as independent character animations and styling.Blink component
Blink>CanvasWeb Feature ID
No information providedTAG review
https://github.com/w3ctag/design-reviews/issues/1095TAG review status
PendingRisks
Interoperability and Compatibility
These are new features and we will get vendor agreement at WHATWG before shipping. So minimal interop risks beyond platform-specific metrics differences.
Gecko: No signal (
https://github.com/mozilla/standards-positions/issues/1144)
WebKit: No signal (
https://github.com/WebKit/standards-positions/issues/436)
Web developers: Positive Developers want the ability to animated glyphs independendly (such as exploding sentences) and the ability to do e.g. selection on canvas text. The proposed APIs support these use cases and more.
Other signals:
Ergonomics
None.
Activation
None.
Security
There is always a fingerprinting concern with HTML canvas. THe new features expose no novel fingerprinting surface (text metrics are already a fingerprinting concern).
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?
No information providedGoals for experimentation
Partners have implemented prototypes based on the available runtime feature, with positive feedback. They are now interested in expanding the scope, and testing the API with real users.
This experiment will provide valuable validation in real-world use scenarios, and should help us gauge the proposed API's fitness, ergonomics, and performance.Ongoing technical constraints
No information providedDebuggability
DevTools supports querying the APIs by default.Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
YesYeshtml/canvas/[element|offscreen]/text... 2d.text.measure.index-from-offset* 2d.text.measure.selection-rects* 2d.text.measure.text-clusters* https://wpt.fyi/results/html/canvas/element/text?label=master&label=experimental&aligned&q=tentative https://wpt.fyi/results/html/canvas/offscreen/text?label=master&label=experimental&aligned&q=tentativeFlag name on about://flags
Experimental Web Platform FeaturesFinch feature name
ExtendedTextMetricsRequires code in //chrome?
FalseTracking bug
https://issues.chromium.org/issues/341213359Measurement
UMA counters will be added for the new APIs.Estimated milestones
| Origin trial desktop first | 144 |
| Origin trial desktop last | 149 |
| DevTrial on desktop | 141 |
| Origin trial Android first | 144 |
| Origin trial Android last | 149 |
| DevTrial on Android | 141 |
Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5075532483657728?gate=5204916142080000Links to previous Intent discussions
Intent to Prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADgYMVdqo4PBs4OkGqVncRizs8vtX4YtFLDcK%2BRxdYo_wnaRJQ%40mail.gmail.comReady for Trial: https://groups.google.com/a/chromium.org/g/blink-dev/c/OLCCI0ExvIk