Thanks Vlad. Answers inline.

On Tue, Mar 4, 2025 at 10:34 PM Vladimir Levin <vmp...@chromium.org> wrote:

>
>
> On Tuesday, March 4, 2025 at 11:17:42 AM UTC-5 Chromestatus wrote:
>
> Contact emails schen...@chromium.org
>
> Explainer https://github.com/whatwg/html/pull/10873
>
> Specification https://github.com/whatwg/html/pull/10873
>
> Summary
>
> The <canvas> DOM element, like all DOM elements, accepts a `lang`
> attribute that is used to define language specific treatment for font
> selection (when fonts have locale specific glyphs). Browsers respect this
> attribute. However, when an OffscreenCanvas is created there is no way to
> set locale information, possibly resulting in a state where an offscreen
> canvas produces rendered results that differ from the canvas in which it's
> output is used. This feature adds a `lang` IDL attribute to
> CanvasTextDrawingStyles to give developers direct control over the language
> for the text drawing and metrics.
>
>
> Blink component Blink>Canvas
> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3ECanvas%22>
>
> TAG review None
>
> TAG review status Not applicable
>
>
> Is there a reason for no TAG review? I'm not sure if there's an exception
> that applies here.
>

I didn't consider TAG review because the discussion in WHATWG viewed this
as fixing an oversite in the canvas spec, and from a technical/ergonomics
perspective it seems pretty straight forward. Happy to see if the TAG have
any opinions though so I'll file an issue.


>
> Risks
>
>
> Interoperability and Compatibility
>
> None
>
>
> *Gecko*: No signal (https://github.com/mozilla/standards-positions/issues/
> 1150) Non official support in WHATWG meetings.
>
> *WebKit*: Support (https://github.com/WebKit/
> standards-positions/issues/439)
>
> *Web developers*: No signals
>
>
> Although this seems like a small feature, having no web developer signals
> is a bit unfortunate. Do you know of any cases where this behavior is
> currently broken and would be fixed by the change?
>

Finding reports of developers having problems is a bit tricky, in part
because "canvas" is also a very widely used online learning framework with
lots of people who care about language. Anyways, this is one report of
offscreen canvas giving the wrong metrics
<https://forum.nwoods.com/t/html-lang-set-to-ja-or-zh-the-text-will-exceed-the-frame/16450>
for text due to the lack of offscreen language support (exactly what this
intent is expected to fix). Hitting the problem of offscreen/DOM
inconsistency that we are trying to fix here would require a localized
application using a common font for multiple locales with
developers/users attentive enough to notice problems and report them.

Another way of looking at Web Developer signals is that this is a
prerequisite spec addition for the highly demanded Extended Text Metrics
feature set. Without this we don't get better canvas text in general.


>
>
>
> *Other signals*:
>
> 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?
>
> Pure addition of functionality.
>
>
> Debuggability
>
> None
>
>
> Will this feature be supported on all six Blink platforms (Windows, Mac,
> Linux, ChromeOS, Android, and Android WebView)? Yes
>
> Feature is useful on all platforms and important for localization.
>
>
> Is this feature fully tested by web-platform-tests
> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
> ? Yes
>
> https://wpt.fyi/results/html/canvas/element/manual/text?
> label=master&label=experimental canvas.2d.lang.dynamic.html
> canvas.2d.lang.empty.canvas.html canvas.2d.lang.inherit.canvas.html
> canvas.2d.lang.inherit.disconnected.canvas.html canvas.2d.lang.inherit.
> document.disconnected.canvas.html canvas.2d.lang.inherit.document.html
> canvas.2d.lang.html https://wpt.fyi/results/html/
> canvas/offscreen/manual/text?label=master&label=experimental
> canvas.2d.offscreen.lang.inherit.html canvas.2d.offscreen.lang.html
> canvas.2d.offscreen.transferred.lang.inherit.document.html
> canvas.2d.offscreen.transferred.lang.inherit.html 
> canvas.2d.offscreen.transferred.lang.html
> canvas.2d.offscreen.worker.lang.inherit.html 
> canvas.2d.offscreen.worker.lang.html
> https://wpt.fyi/results/html/canvas/element/text?label=
> master&label=experimental 2d.text.lang.default.html
> 2d.text.lang.valid.html https://wpt.fyi/results/html/
> canvas/offscreen/text?label=master&label=experimental
> 2d.text.lang.default.html 2d.text.lang.valid.html
>
>
> Flag name on about://flags Experimental Web Platform Features
>
> Finch feature name CanvasTextLang
>
> Non-finch justification
>
> This is a feature addition with very very little expected impact on
> performance or changes in existing website functionality.
>
>
> Requires code in //chrome? False
>
> Tracking bug https://issues.chromium.org/issues/385006131
>
> Availability expectation WebKit implementation is moving forward. There
> is agreement that the feature is needed and implementation is not complex.
> I would anticipate all browsers have implemented within 2 years.
>
> Adoption expectation I would expect that the feature is adopted by
> default, in that the default value for the new attribute is likely to be by
> far the most common. So sites will immediately "adopt" the feature and get
> the benefits without taking any action.
>
>
> It wasn't immediately clear: what's the default value that would be used?
>

Default is "inherit", the behavior of which matches DOM canvas right now,
and would make offscreen canvas match DOM canvas.


>
>
> Adoption plan The feature is publicized at https://blogs.igalia.com/
> schenney/canvas-localization-support/ and will have an MDN page.
>
> 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?
> None.
>
> Sample links
> https://blogs.igalia.com/schenney/canvas-localization-support
>
> Estimated milestones Shipping on desktop 136 DevTrial on desktop 135 Shipping
> on Android 136 DevTrial on Android 135 Shipping on WebView 136
>
> 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).
> None.
>
> Link to entry on the Chrome Platform Status https://chromestatus.com/
> feature/5066778773028864?gate=5145440662847488
>
> Links to previous Intent discussions Intent to Prototype:
> https://groups.google.com/a/chromium.org/g/blink-dev/c/WEjhPwI6lLc
>
>
> This intent message was generated by Chrome Platform Status
> <https://chromestatus.com>.
>
>

-- 
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+unsubscr...@chromium.org.
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGsbWzSYuQJfmu_MWGOCOOWufKqk6zH1miOqJ_B6E%3DOx9-2RnA%40mail.gmail.com.

Reply via email to