-
Notifications
You must be signed in to change notification settings - Fork 642
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[css-fonts-5] Details of format()
and technology()
values
#6864
Comments
For For It isn't exactly a format (it applies to any sfnt font format) but yeah it isn't exactly a rendering technology either. Indeed incremental is forbidden from affecting rendering:
|
Quick thoughts: As soon as we got CFF2 support via FreeType code in Blink, we also got CFF2 variations with it for free. So I am curious if there is practically a situation where you'd have an engine's stack support CFF2, but not support CFF2 variations? |
IIRC there are old versions of WebKit on macOS that support "variations-truetype" but not "variations-cff2." However, those old versions wouldn't be getting updates any more - so nothing we resolve on here will affect them. In the interest of steering people toward the right answer (aka the "pit of success" idea), I'm sympathetic to @drott's idea about avoiding combinations which don't actually exist in the wild.
I don't know if putting it in |
While that may make this somewhat irrelevant for what Apple ships in Safari (and equivalently for Edge on Windows), I'm not sure it holds more generally. Gecko relies on the host OS font system -- Core Text on macOS, DirectWrite on Windows -- and therefore the capabilities that are supported depend not only on the version of Gecko (which may be updated, e.g. to recognize the My understanding is that both macOS and Windows shipped support for TrueType variations in earlier releases than CFF2; indeed, I notice that https://github.com/adobe-fonts/source-han-serif/releases/tag/2.000R, for example, warns users that
(My own experience suggests that there is some CFF2 support in Windows, but that it is somewhat unreliable, so that a browser running on Win10 and using DirectWrite to render -- as Firefox does -- might want to treat
Is that really the case? https://w3c.github.io/IFT/Overview.html#declaring-fonts says that "An incrementally transferred font must be in a raw format such as truetype or opentype", which I understood to exclude compressed packages like WOFF/WOFF2. I find it difficult to imagine how either range-request or binary patching could usefully work with a compressed packaging like WOFF2. |
Can we get this resolved (at least, the |
No objections to splitting it into Also ok with, but not necessarily needed: in addition, keep un-postixed |
Offhand, I'd be inclined not to keep the bare |
I wonder if |
Reading the conversation here, I'm pretty worried about over complicating this. Most CSS authors don't look inside their fonts. We should make sure that these CSS facilities are usable even if you don't understand what specific tables do inside the font files. |
Good point. I don’t like the idea of authors looking inside their font files at all. Assuming they’re working with WOFF2 files they’d have to decompress before inspection too. |
Fair point, but we already require them to tell |
Perhaps the W3C should host a web app, where fonts can be dropped and their capabilities displayed in terms of |
That already exists @RoelN |
Revisiting this old issue, what we have now in the spec seems to be well tested and interoperable so I don't think we should change it at this point. |
[Originally referred to css-fonts-5, edited to refer to css-fonts-4 as
technology()
is there...]Before the
technology()
extension to the@font-face
rule'ssrc
descriptor ships, I think we need to bikeshed its potential values a bit further.Currently, https://drafts.csswg.org/css-fonts-4/#font-face-src-parsing has
I see a couple of issues/questions regarding this collection of values:
variations
should perhaps be split intovariations-truetype
(orvariations-gvar
, similar to how specific table tags are used to identify the color technologies?) andvariations-cff2
, as these are two quite distinct technologies (even though by design they behave similarly on the surface) and font rendering systems exist that support one but not the other. Distinguishing these is equivalent to distinguishing among color technologies, where rendering systems may support only a subset of the possible types.incremental
seems to me to be out of place here. It's about how the font data is packaged and delivered, not about the rendering technologies that are supported. Should it be a new value offormat()
rather thantechnology()
? (And should it be specific about the raw format, soformat(incremental-opentype)
? I don't think the proposal is designed to support incremental transfer for "packaged" font resources such asWOFF
orcollection
, AFAICT.)The text was updated successfully, but these errors were encountered: