LGTM2

/Daniel

On 2022-09-21 07:39, Yoav Weiss wrote:
LGTM1 - thanks for following up on the TAG's feedback!

On Tue, Sep 20, 2022 at 1:47 AM Dominik Röttsches <dr...@chromium.org> wrote:


            Contact emails

    dr...@chromium.org


            Explainer

    
https://github.com/w3c/csswg-drafts/blob/main/css-conditional-5/font-tech-format-explainer.md


            Specification

    https://www.w3.org/TR/css-conditional-5/#at-supports-ext


            Summary

    The font-tech() and font-format() are extensions to the @supports
    rule CSS Conditional Syntax enable declarative and programmatic
    access to feature detection of font stack features. Using these
    conditions together with @supports allow progressive enhancement
    of content depending on font format support. In particular with
    UAs differing in support for color font formats, this is useful
    for including color font style rule and @font-face definitions
    only if the user agent supports it. Using JS CSS.supports() calls
    this is also the first ergonomic way of testing for font stack
    capabilities on the web without UA sniffing or canvas pixel
    readback as in Chromacheck (https://pixelambacht.nl/chromacheck/).

    This feature is closely related to the @font-face src: descriptor
    syntax extension which was recently discussed and LGTM'ed here
    <https://groups.google.com/a/chromium.org/g/blink-dev/c/_9k-Ne8FRu4>:
    - the same font format and technology keywords are used and
    synchronized between these two features.

    *Motivation*

    While font files look the same from the outside in their mime type
    and file signature, they may contain information that requires
    specific features of the UA's font stack. If an author wants to
    progressively enhance their site depending on font format
    capabilities of the UA, feature detection is needed. This feature
    here provides such a capability on the client side in two ways,
    declaratively in CSS, or programmatically in JS using
    CSS.supports(). Examples:

      * If OpenType variations are supported, I want to use a set of
        different style rules than when variations are not available
      * If color font support is available, I want to enhance my site
        with a colorfonts plus style rules affecting other parts of my
        page.


            Blink component

    Blink>Fonts
    <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EFonts>


            TAG review

    https://github.com/w3ctag/design-reviews/issues/666


            TAG review status

    Issues addressed


            Risks



            Interoperability and Compatibility



    /Gecko/: In development
    
(https://github.com/mozilla/standards-positions/issues/563#issuecomment-1224131600)
    Implemented behind flag and standards position concluded with
    positive stance towards this feature. Jonathan Kew plans to ship
    this soonish and in any case in sync with COLRv1 support.

    /WebKit/: From the standards discussion on this, my take-away of
    the discussion with Myles is that the feature is useful, but Myles
    suggests to ship it only in combination with @else
    <https://github.com/w3c/csswg-drafts/issues/6520#issuecomment-947346133>
    - my position is that @else is not essential for this feature to
    provide value.

    /Web developers/: Positive Feedback we received from partners is
    that robust feature detection for this feature is a requirement
    and helps activation of usage of color fonts. More info available
    internally. (See previous I2S for tech() and format() in the src:
    descriptor of font-face)

    /Other signals/:


            Ergonomics

    This feature is intended for situations where the progressive
    enhancement choice is made client side. Feature detection on the
    server side, at the time for example the UA makes a request for a
    style sheet is out of scope for this proposal. In those
    situations, UA sniffing on the server side is still performed on
    the server based on request headers and user-agent string - which
    may be addressed by font feature client hints in the future.



            Activation

    Low: If this feature is not supported, the respective CSS styles
    are not included, so the progressive enhancement fails, which is
    the nature of this approach. If CSS.supports() calls are failing
    because they are not available, then the program logic trying to
    feature detect font stack capabilities, may need to resort to
    other methods of testing font support, for example through Canvas
    pixel probing or hardcoded UA lists.



            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?

    No.



            Debuggability

    Equivalent to other @supports debugging.



            Will this feature be supported on all six Blink platforms
            (Windows, Mac, Linux, Chrome OS, Android, and Android
            WebView)?

    Yes


            Is this feature fully tested by web-platform-tests
            
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?

    Yes, tests were added by Mozilla's Jonathan Kew initially while
    developing support for this feature in Gecko with additional tests
    and modifications to them when I developed the feature behind a flag.


            Flag name

    chrome://flags/#enable-experimental-web-platform-features


            Requires code in //chrome?

    False


            Tracking bug

    https://bugs.chromium.org/p/chromium/issues/detail?id=1255685


            Sample links


    
https://github.com/w3c/csswg-drafts/blob/main/css-conditional-5/font-tech-format-explainer.md#use-case-1---progressive-enhancement-with-color-fonts


            Estimated milestones

    108



            Anticipated spec changes

    Additional keywords may be added in the future.


            Link to entry on the Chrome Platform Status

    https://chromestatus.com/feature/5155718374621184

    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 on the web visit
    
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAN6muBvYtHHtgDGtJ-7j%3DJdzWTOA8MFf8O6VT%3DOyovcfYihmog%40mail.gmail.com
    
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAN6muBvYtHHtgDGtJ-7j%3DJdzWTOA8MFf8O6VT%3DOyovcfYihmog%40mail.gmail.com?utm_medium=email&utm_source=footer>.

--
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 on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfVFHFsAxh164yJKC8%3DdZEUA9QnQn4kSi4K1R4TtSEUWqw%40mail.gmail.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfVFHFsAxh164yJKC8%3DdZEUA9QnQn4kSi4K1R4TtSEUWqw%40mail.gmail.com?utm_medium=email&utm_source=footer>.

--
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 on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/af6ad6e4-ada1-8035-0924-9aa28d0af32e%40gmail.com.

Reply via email to