[MPEG-OTSPEC] [EXTERNAL] questions on OT-SVG in Chrome, MS Edge and Firefox

Peter Constable pconstable at microsoft.com
Tue Feb 27 01:37:47 CET 2024


OpenType and OFF support a few diffent colour font formats. Two use colour bitmaps:


  *   CBDT/CBLC: this was originally developed by Google to support emoji on Android devices. The format is also supported in at least Windows and in Edge and other Chromium-based browsers, but there are very few fonts and I think I can say the format is pretty much obsolete. (Even Google has since replaced CBDT in the Noto Color Emoji font—see below.)



  *   sbix: this was originally developed by Apple to support emoji. This is also supported in other platforms, some browsers and in some apps (e.g., Corel Graphics Suite). But last I checked it’s not supported in apps from Adobe or Affinity.

Then there are vector formats: two different font tables are used, but one has two versions that need to be distinguished:


  *   COLRv0: this was originally developed by Microsoft to support emoji. It was a relative simple extension to monochrome formats. On the one hand, that means it has limited graphic capabilities—layered shapes with solid colour fills plus alpha blending. But, on the other hand, this is the colour format that’s most widely supported—all platforms, all browsers, and many apps, including Corel Graphics Suite and Affinity Designer, but noticeably absent from Adobe apps.


  *   SVG: this was originally developed by Adobe at the same time as the above, and first supported in Firefox. Support was added in Windows, the Edge browser and in Adobe apps in 2017, and also in Safari in a similar timeframe. There have been many OT-SVG fonts created—probably the vast majority of existing colour fonts, mainly because of support in Adobe apps.

(Most OT-SVG fonts could actually have been implemented using COLRv0, and would have gotten broader app support that way, except that they wouldn’t work in Adobe apps.)

However, when Edge’s edgehtml layout engine was replaced with Chromium, support for OT-SVG in Edge went away. There’s no expectation that this will be coming back.



  *   COLRv1: This was developed by Google and Microsoft a few years ago to provide graphics capabilities similar to OT-SVG but in a binary format that better integrates with the rest of the font format. It has superseded CBDT in the Noto Color Emoji font, and the Segoe UI Emoji font in Windows 11 was recently updated using COLRv1 — see Bringing new emoji to Windows 11 | Microsoft Design<https://microsoft.design/articles/bringing-new-emoji-to-windows-11?fbclid=IwAR36ro0ec6BHu_YSsDsbnueb2gUjc9k_oPzZBHzlJ5mnfZ62tosMbQg8hqc>. Being still relative new, however, it’s not yet widely supported in apps—Android, Windows and Chromium-based browses are probably it at this point.

At this point, I expect sbix will continue to be used for the indefinite future for colour bitmaps. For vector formats, it remains to be seen whether one or the other of SVG and COLRv1 will become the dominant format.

Peter

From: mpeg-otspec <mpeg-otspec-bounces at lists.aau.at> on behalf of William_J_G Overington via mpeg-otspec <mpeg-otspec at lists.aau.at>
Date: Monday, February 26, 2024 at 4:37 PM
To: mpeg-otspec at lists.aau.at <mpeg-otspec at lists.aau.at>
Subject: Re: [MPEG-OTSPEC] [EXTERNAL] questions on OT-SVG in Chrome, MS Edge and Firefox

Hi

I refer to

https://lists.aau.at/pipermail/mpeg-otspec/2024-February/003285.html

--

A discussion about the technique of using an SVG file exported from Affinity Designer (Affinity Designer not having colour font capability) to produce a colour display using Microsoft Edge has arisen.

https://forum.affinity.serif.com/index.php?/topic/199300-color-font-is-not-being-displayed-in-affinity-designer-2-desktop/&do=findComment&comment=1178254

https://forum.affinity.serif.com/index.php?/topic/199300-color-font-is-not-being-displayed-in-affinity-designer-2-desktop/&do=findComment&comment=1178261

Is the issue in this thread related to that or is about something different please?

Best regards,

William Overington

Monday 26 February 2024






------ Original Message ------
From: mpeg-otspec at lists.aau.at
To: htl10 at users.sourceforge.net; mpeg-otspec at lists.aau.at; jfkthame at gmail.com
Sent: Tuesday, February 13th 2024, 00:44
Subject: Re: [MPEG-OTSPEC] [EXTERNAL] questions on OT-SVG in Chrome, MS Edge and Firefox

> Guess OT-SVG support was broken when MS Edge moved to a Chromium-based backend in April 2021.


That’s correct.


Peter

From: Hin-Tak Leung <htl10 at users.sourceforge.net>
Sent: Monday, February 12, 2024 3:07 PM
To: mpeg-otspec at lists.aau.at; Jonathan Kew <jfkthame at gmail.com>; Peter Constable <pconstable at microsoft.com>
Cc: suzuki toshiya <mpsuzuki at hiroshima-u.ac.jp>
Subject: [EXTERNAL] questions on OT-SVG in Chrome, MS Edge and Firefox

Hi,

I have continued to keep the blink/skia patches [1] up to date to current Chromium. And continue to test them [2] with QT WebEngine, which is a slimmed-down Chromium code variant up to about 3 months behind in latest Chromium development. Am trying to get the QT folks to take the patches [3].

Since some claimed that MS Edge supports OT-SVG back in 2017, and MS Edge has been available for Linux for a while, I gave it a try, and it is a NO. Guess OT-SVG support was broken when MS Edge moved to a Chromium-based backend in April 2021.

Anyway, here is a question for Peter and possibly also other Microsoft folks:

- I have no idea how much current MS Edge on windows differs from Chrome on windows, but would you pass the URL for the patches to the relevant people and let them see what they see fit to adapt please? Thanks. Feedbacks and corrections/modifications can go to [1]'s issues, etc or directly/privately to me if needed.

And here is a question for Jonathan, and possibly other Firefox folks:

- logically my chrome patches are in 3 parts, a one-liner switching OT-SVG support on in Skia, tell OTS to let such fonts pass-through as a usable font format, and get Blink to use freetype for non-OS-native font formats similar to sbix for windows etc. The 2nd part is somewhat common to Firefox - how does firefox deal with OT-SVG web-font sanitizing-wise? Does its copy of OTS (AFAIK) let them through and just hope the SVG processing is robust enough, or do some XML/etc validation on the way?

Would like to hear what Safari/Apple folks or webkitgtk folks (both of them supoprts OT-SVG, the latter I tested myself with webkitgtk-sharp) who like to comment on the sanitizing/security aspect of OT-SVG web fonts too.

Hin-Tak


[1] https://github.com/HinTak/chromium-mod-CI
[2] https://github.com/HinTak/Qt6WE-OT-SVG
[3] https://bugreports.qt.io/browse/QTBUG-120543
________________________________

_______________________________________________
mpeg-otspec mailing list
mpeg-otspec at lists.aau.at
https://lists.aau.at/mailman/listinfo/mpeg-otspec

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.aau.at/pipermail/mpeg-otspec/attachments/20240227/b9a298cf/attachment-0001.htm>


More information about the mpeg-otspec mailing list