Re: [csswg-drafts] [css-fonts-5] How to add new generic font families (#6770)

The CSS Working Group just discussed `[css-fonts-5] How to add new generic font families`, and agreed to the following:

* `ACTION i18n: Propose script-specific generics`
* `RESOLVED: Add a generic() function, for generic font famlies that are not defined across all of unicode`

<details><summary>The full IRC log of that discussion</summary>
&lt;TabAtkins> addison: Another checkin, we've been discussing potentially more generics to support writing/typography traditions in other parts of the world<br>
&lt;TabAtkins> addison: Beyond the existing standard set, to let people use named generics rather than requriing authors to hunt for specific font names<br>
&lt;TabAtkins> addison: We've discussed this in our meetings<br>
&lt;TabAtkins> florian: Status update is same as last time<br>
&lt;TabAtkins> florian: Status: complicated<br>
&lt;TabAtkins> addison: So partly the status is, mutually trying to gather examples of generic styles that can't just be mentally mapped to the existing generics, where not having the distinction would impair the reading of the doc.<br>
&lt;florian> q+<br>
&lt;TabAtkins> addison: r12a compiled a doc of langs with stylistic differences that don't fall into the existing buckets<br>
&lt;wolfgang> s/requriing/requiring/<br>
&lt;xfq> https://www.w3.org/International/articles/typography/fontstyles.en<br>
&lt;TabAtkins> addison: Where maybe having named generic would be useful for authors to say what they want and get the desired behavior.<br>
&lt;TabAtkins> addison: Challenge is that since they're usually narrowly script-specific, what happens for `nastaliq` in Chinese?<br>
&lt;drott> q+<br>
&lt;TabAtkins> addison: And also how would CSS encode additional generics, without exploding the set.<br>
&lt;astearns> ack florian<br>
&lt;TabAtkins> florian: One challenge was, for these things that are only relevant to a subset of unicode, what does it mean for the rest.<br>
&lt;TabAtkins> florian: The other is i18n have compiled a list of groupings, but within this there's a gradient of "essential" to "common but authors would survive without it" and everything between.<br>
&lt;addison> q?<br>
&lt;addison> q+<br>
&lt;chris> q+<br>
&lt;TabAtkins> florian: So it's a question where the CSSWG wants to place the bar, doing the research to show the distinction is important enouh requires research<br>
&lt;TabAtkins> florian: Looking thru books/etc to see that it's a style you need that would not just be visually jarring without, but actually be misunderstood<br>
&lt;wolfgang> s/enouh/enough/<br>
&lt;TabAtkins> florian: I think elika had a criteria that if we find fonts in the first group it's undeniable we need them, because it causes misunderstandings<br>
&lt;chris> qq+ to point to an existing resolution re "the rest"<br>
&lt;TabAtkins> florian: But that research is hard. Should probably only be done if we want to be that strict.<br>
&lt;myles> q+<br>
&lt;TabAtkins> florian: If we're okay with less strict criteria - visually jarring, even if not causing misunderstanding - finding fonts over that bar is much easier<br>
&lt;TabAtkins> florian: So where CSS wants the bar will affect how we'll do research<br>
&lt;astearns> ack chris<br>
&lt;Zakim> chris, you wanted to react to florian to point to an existing resolution re "the rest"<br>
&lt;chris> https://github.com/w3c/csswg-drafts/issues/4442#issuecomment-561913410<br>
&lt;TabAtkins> chris: We ahve an existing resolution on what to do if they don't apply to the script<br>
&lt;TabAtkins> chris: It's in the spec, they just don't do anything<br>
&lt;astearns> ack drott<br>
&lt;chris> q?<br>
&lt;TabAtkins> drott: I think florian's comment was good, about criteria<br>
&lt;chris> q- chris<br>
&lt;myles> q- i think chris said what i was going to say<br>
&lt;myles> q-<br>
&lt;TabAtkins> drott: I brought up some ipml questions about what to apply<br>
&lt;wolfgang> s/ahve/have/<br>
&lt;TabAtkins> drott: For existing generics we usually have UIs and user prefs to apply them.<br>
&lt;TabAtkins> drott: If we add a bunch, we'd have to expand that UI, and that could confuse users.<br>
&lt;TabAtkins> drott: If we don't add UI, can we agree on the criteria?<br>
&lt;TabAtkins> drott: Finding good fonts that recognize the distinctions...<br>
&lt;TabAtkins> drott: We have trouble finding them consistently<br>
&lt;astearns> q?<br>
&lt;TabAtkins> drott: So what are good candidates? Can we agree on how fonts map to the keywords?<br>
&lt;TabAtkins> florian: I wonder, if for those values, we can start a registry of known fonts that map to the style<br>
&lt;addison> q-<br>
&lt;TabAtkins> florian: I don't think blessing some fonts in the spec is fair to font vendors<br>
&lt;TabAtkins> florian: But a list of "all these fonts are known to be okay for nastaliq" is okay, UAs can draw from this when picking up from the OS<br>
&lt;TabAtkins> drott: If the OS doesn't have it, what do we do?<br>
&lt;TabAtkins> florian: fallback<br>
&lt;dbaron> Maybe such a list could be in a more editable document that's linked from the spec?<br>
&lt;TabAtkins> astearns: That's relevant to the previous issue, you have to define a fallback for anything we add<br>
&lt;myles> q+ to ask if there is a specific proposal<br>
&lt;TabAtkins> astearns: So we're stuck on finding a criteria.<br>
&lt;fantasai> dbaron, https://www.w3.org/2023/Process-20230612/#registries<br>
&lt;TabAtkins> astearns: Probably not a good idea to take the most important one and derive a criteria from that?<br>
&lt;TabAtkins> florian: i18n has done research and found a bunch that are relevant<br>
&lt;chris> q+ to ask if we like the "generic prefix" proposal for new generics<br>
&lt;addison> q+ to ask if a new feature would be appropriate<br>
&lt;r12a> q+<br>
&lt;chris> q?<br>
&lt;emilio> florian: maybe we just take i18n's advice directly?<br>
&lt;emilio> myles: is there a specific proposal? Not quite sure what we're talking about<br>
&lt;TabAtkins> myles: The spec already has pictures of example fonts for many generic famlies<br>
&lt;TabAtkins> myles: I don't think we need another document listing more examples<br>
&lt;TabAtkins> myles: i think the pictures in the spec are good enough<br>
&lt;wolfgang> s/famlies/families/<br>
&lt;TabAtkins> florian: Maybe we just take i18n's advice directly and start from their recs<br>
&lt;TabAtkins> myles: Is there a specific proposal?<br>
&lt;TabAtkins> chris: So there's 3 ways to go.<br>
&lt;TabAtkins> chris: One is we add a small, select number of generics.<br>
&lt;astearns> ack myles<br>
&lt;Zakim> myles, you wanted to ask if there is a specific proposal<br>
&lt;astearns> ack chris<br>
&lt;Zakim> chris, you wanted to ask if we like the "generic prefix" proposal for new generics<br>
&lt;TabAtkins> chris: Two is there's a bunch, possibly hundreds. As soon we find a distinction in a writing system, we add them.<br>
&lt;astearns> q++ chris<br>
&lt;astearns> ack +<br>
&lt;TabAtkins> chris: Three is generics are bad, we add these three and then never again.<br>
&lt;TabAtkins> myles: iirc there's a GH issue, and it resolved that 1 and 3 are bad, so that leaves 2.<br>
&lt;TabAtkins> myles: We've already solved "what does nastaliq mean in Chinese?'<br>
&lt;TabAtkins> myles: If i18n says a bunch of families are useful, let's do it<br>
&lt;astearns> ack chris<br>
&lt;TabAtkins> chris: so there was a proposal that if we add new generics we add a prefix or something<br>
&lt;TabAtkins> chris: problem at the moment is they look like normal font names<br>
&lt;florian> q?<br>
&lt;florian> q+<br>
&lt;TabAtkins> chris: I think the grouping is ugly but more scalable.<br>
&lt;TabAtkins> chris: like `generic(nastaliq)`<br>
&lt;r12a> q-<br>
&lt;addison> q-<br>
&lt;TabAtkins> myles: Don't think I have an opinion, except that if we do have a grouping mechanism it should be a function rather than a prefix.<br>
&lt;TabAtkins> chris: So that's what I was on the q for, to ask if we want the generic syntax.<br>
&lt;astearns> ack fantasai<br>
&lt;Zakim> fantasai, you wanted to comment on complete generics vs incomplete generics<br>
&lt;TabAtkins> astearns: So should we resolve on adding new font families via generic syntax?<br>
&lt;TabAtkins> fantasai: I think we should add a new syntax, but only for incomplete generics.<br>
&lt;TabAtkins> fantasai: complete is one that applies to every writing system, it is an endpoint for fallback<br>
&lt;TabAtkins> fantasai: monospace, serif, sans-serif are those<br>
&lt;TabAtkins> chris: There's not just examples, they're the only ones<br>
&lt;TabAtkins> fantasai: No we have system-ui, etc<br>
&lt;TabAtkins> chris: No we have a resolution that *those three* always match, the others might fail<br>
&lt;TabAtkins> chris: So the "complete" distinction already exists<br>
&lt;TabAtkins> myles: Two very similar things<br>
&lt;TabAtkins> florian: One is "things that always match across all of unicode, and will never fallback past"<br>
&lt;TabAtkins> florian: Then the UI ones which are defined across unicode but might not exist, they can fallback<br>
&lt;TabAtkins> chris: Yeah I think that's the distinction.<br>
&lt;TabAtkins> astearns: So back to generic functional syntax<br>
&lt;TabAtkins> myles: I think if we add a function, the dfn should not be "every generic font family after Sep 14 2023"<br>
&lt;TabAtkins> myles: I think it should be somethin like what elika gave, based off the meaning<br>
&lt;fantasai> +1 Chris, that's exactly what I meant<br>
&lt;TabAtkins> chris: What about names already defined that would fail the criteria?<br>
&lt;TabAtkins> myles: We'd keep them for compat but also allow them in generic()<br>
&lt;fantasai> (Chris suggested fangsong -> generic(fangsong))<br>
&lt;fantasai> myles++<br>
&lt;TabAtkins> myles: So the rule for what gets `generic(foo)` and which gets `foo` is based off of something meaningful, not just date added<br>
&lt;TabAtkins> fantasai: I think the distinction should be if the font is defined across all writing systems, or is specific to one writing system<br>
&lt;TabAtkins> myles: think that's reasoanble<br>
&lt;TabAtkins> proposed resolution: add `generic(...)` function, whose values will be the set of fonts that are generic but script-specific<br>
&lt;florian> +1<br>
&lt;fantasai> s/fonts/generic fonts/<br>
&lt;TabAtkins> chris: So that means ui-rounded doesn't get it, it applies across all of Unicode<br>
&lt;TabAtkins> myles: Don't have an opinion, sounds fine<br>
&lt;TabAtkins> fantasai: of the existing generics, only want would go into generic() is fangsong<br>
&lt;TabAtkins> astearns: Objections?<br>
&lt;chris> +1 to proposed<br>
&lt;TabAtkins> myles: And the reason we're doing this is so that i18n can add a bunch of generic families. Please give us that list<br>
&lt;fantasai> ACTION i18n: Propose script-specific generics<br>
&lt;TabAtkins> RESOLVED: Add a generic() function, for generic font famlies that are not defined across all of unicode<br>
&lt;TabAtkins> florian: Earlier Myles said 3 options, add a few, add a bunch, add nothing<br>
&lt;TabAtkins> myles: that was chris<br>
&lt;wolfgang> s/famlies/families/<br>
&lt;TabAtkins> florian: Ah, I think you said "add a few" and "add nothing" was bad was established<br>
&lt;TabAtkins> florian: I thought it wasn't established yet. Want to reconfirm that "add a bunch" is fine.<br>
&lt;astearns> +1 to a bunch<br>
&lt;TabAtkins> florian: So are we indeed in the situation that we're okay to add a bunch?<br>
&lt;TabAtkins> astearns: Any concerns about adding a bunch of script-specific generic font families?<br>
&lt;TabAtkins> myles: I think I wrote a set of criteria a few years ago<br>
&lt;TabAtkins> myles: There have to *be* at least two fonts that exist that can map to this keyword<br>
&lt;TabAtkins> myles: And generic families are only useful for installed fonts, so there has to be popular OSes with an example of that font.<br>
&lt;addison> q+<br>
&lt;TabAtkins> TabAtkins: I like those rules<br>
&lt;astearns> ack florian<br>
&lt;astearns> ack addison<br>
&lt;fantasai> fantasai: or installed with language packs<br>
&lt;TabAtkins> addison: Particularly for small lang communities, who often require installing their fonts, if people, to use their language, install some fonts, and use the necessary generics.<br>
&lt;TabAtkins> myles: If everyone is installing a particular font, then content can just name that font<br>
&lt;TabAtkins> &lt;br type=lunch dur=60min><br>
</details>


-- 
GitHub Notification of comment by css-meeting-bot
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/6770#issuecomment-1719234911 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Thursday, 14 September 2023 11:01:18 UTC