- From: Vitor Roriz via GitHub <sysbot+gh@w3.org>
- Date: Tue, 11 Jul 2023 11:24:36 +0000
- To: public-css-archive@w3.org
vitorroriz has just created a new issue for https://github.com/w3c/csswg-drafts:
== [css-fonts-4] @font-face src tech() multiple value syntax  ==
`tech()` accepts multiple values, being `@font-face src` descriptor syntax:
`<url> [ format(<font-format>)]? [ tech( <font-tech>#)]? | local(<font-face-name>)`
Spec says:
> If a component value is parsed correctly and is of a [font format](https://www.w3.org/TR/css-fonts-4/#font-format-definitions) or [font tech](https://www.w3.org/TR/css-fonts-4/#font-tech-definitions) that the UA supports, add it to the list of supported sources. If parsing a component value results in a parsing error or its format or tech are unsupported, do not add it to the list of supported sources.
However, I'm confused if an engine should validate `tech(A, B)` only if it supports both `A` **and** `B` technologies, or if it supports `A` **or** `B` techonologies.
I think it makes more sense to be `A` **and** `B` although I've interpreted as `A` **or** `B` at first and implemented it that way for WebKit. This resulted in a bug filed at https://bugs.webkit.org/show_bug.cgi?id=258948.
I've added a test case locally on [font-face-src-tech](https://github.com/web-platform-tests/wpt/blob/master/css/css-fonts/parsing/font-face-src-tech.html) enforcing the `and` behavior. It seems that Blink  behavior is already `and` but  Gecko behavior is `or`, but it can be that it is failing for another reason for Gecko.
WPT export _attempt_ : https://github.com/web-platform-tests/wpt/pull/40950
I'd like to clarify what's the expected behavior here. 
Use case:
```
@font face {
...
src: url("font1.otf") tech(A, B)
src: url("font2.otf") tech(A)
}
```
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/9054 using your GitHub account
-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Tuesday, 11 July 2023 11:24:38 UTC