The TextMetrics interface represents the dimensions of a piece of text in the canvas, as created by the CanvasRenderingContext2D.measureText() method.

Currently, Gecko only supports the .width attribute, but authors would also like to determine the actual dimensions that the rendered text would have in both x- and y-directions, as well as overall font metrics to assist with line spacing, etc.

Safari supports the full set of TextMetrics attributes as currently documented in the HTML spec. Chrome has recently shipped support for the actualBoundingBox attributes; it has support for additional font-metrics attributes behind the "experimental web features" flag.

Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1102584

Standard: https://html.spec.whatwg.org/multipage/canvas.html#textmetrics

Note that there are a number of open issues regarding the spec (see https://github.com/w3ctag/design-reviews/issues/302#issuecomment-427996200). For this reason, I propose to implement these attributes behind several prefs, and initially enable only the actualBoundingBox* attributes by default (matching what Chrome has shipped); the others will be preffed-off, but can be selectively enabled by authors who want to experiment with them.

Testing: Some (limited) tests are in web-platform/tests/2dcontext/drawing-text-to-the-canvas/2d.text.measure.*

Platform coverage: All

Restricted to secure contexts: No. The existing TextMetrics interface is not restricted, and other browsers support the extended attributes in all contexts.

Target Release: 74

Preferences behind which this will be implemented:
  dom.textMetrics.actualBoundingBox.enabled  (default: true)
  dom.textMetrics.baselines.enabled          (default: false)
  dom.textMetrics.emHeight.enabled           (default: false)
  dom.textMetrics.fontBoundingBox.enabled    (default: false)
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to