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
PendingOrigin Trial Name
Enhanced Canvas TextMetricsGoals 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.Chromium Trial Name
ExtendedTextMetricsOrigin Trial documentation link
https://github.com/Igalia/explainers/blob/main/canvas-formatted-text/text-metrics-additions.mdWebFeature UseCounter name
kExtendedTextMetricsRisks
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 providedReason this experiment is being extended
Flutter Web has provided positive initial feedback based on internal testing. To validate the feature at scale, they require additional time to expose it to external developers via their own experimentation infrastructure.
The goal of this extension is to gather telemetry and feedback from real-world applications, allowing us to identify and address any remaining rough edges before proceeding with a formal launch.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 |
| Origin trial extension 1 end milestone | 155 |
| 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=5178855770947584Links 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/OLCCI0ExvIkIntent to Experiment: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADgYMVfC-Naw8pFVaUUPMSfW-u3kC7SMdDeHJgwU5YmSHOOeeA%40mail.gmail.com