[CSSWG] Minutes Telecon 2021-02-24 [mediaqueries-5] [css-images-3] [css-scroll-snap] [css-ruby]

=========================================
  These are the official CSSWG minutes.
  Unless you're correcting the minutes,
 Please respond by starting a new thread
   with an appropriate subject line.
=========================================


Media Queries
-------------

  - The disagreement about removing prefers-contrast: forced was
      focused around users who have defined a color set which would
      not qualify as high or low for the forced-colors media query and
      therefore would not be detected if prefers-contrast: forced was
      removed.
      - Firefox will gather data about the colors used so the group
          can monitor if the change would cause a negative impact in
          experience for these users.
  - There was also disagreement as to if reduced visual complexity is
      necessary when there are forced colors. There was no data
      available about expectations and people had contrasting views on
      what is most likely.
  - RESOLVED: Remove the forced value from prefers-contrast MQ (Issue
              #5433: duplication of `forced-colors: active` and
              `prefers-contrast: forced`)
  - There was discussion on if the prefers-contrast MQ should be held
      back until the group decides how to handle the reduced
      complexity and forced color relationship. The group didn't
      agree, though, so it will be opened as a separate issue.


CSS Images
----------

  - RESOLVED: Bake the smoothing into non-integer changes in current
              pixelated value. Add a new value for nearest neighbor
              jaggedness (Issue #5837: image-rendering:pixelated
              should not force "nearest neighbor" (or similar) when
              the scale factor is far from an integer (e.g. 150%))

Scroll Snap
-----------

  - RESOLVED: Republish CR-snapshot of Scroll Snap

Ruby
----

  - RESOLVED: Add an 'alternate' value which is the initial value
              (Issue #5971: Alternating sides for ruby-position)

===== FULL MINUTES BELOW ======

Agenda: https://lists.w3.org/Archives/Public/www-style/2021Feb/0012.html

Present:
  Rachel Andrew
  Rossen Atanassov
  Tab Atkins-Bittner
  Christian Biesinger
  Mike Bremford
  Emilio Cobos Álvarez
  Elika Etemad
  Simon Fraser
  Megan Gardner
  Chris Harrelson
  Daniel Holbert
  Dael Jackson
  Sankit Joshi
  Jonathan Kew
  Vladimir Levin
  Daniel Libby
  Peter Linss
  Alison Maher
  Myles Maxfield
  François Remy
  Morgan Reschenberg
  Florian Rivoal
  Miriam Suzanne
  Lea Verou

Regrets:
  Tantek Çelik
  Chris Lilley
  Greg Whitworth

Scribe: dael

Media Queries
=============

duplication of `forced-colors: active` and `prefers-contrast: forced`
---------------------------------------------------------------------
  Github: https://github.com/w3c/csswg-drafts/issues/5433

  alisonmaher: For a bit of context, chromium has implemented of
               prefers-contrast behind flag. Pretty sure FF does as
               well
  alisonmaher: prefers-contrast: forced is duplication of
               forced-colors MQ. Previously agreed to keep for compat.
               Do we want to keep prefers-contrast: forced or not?
               Strong arguments on both. jcraig summarized them well.
  <alisonmaher> In favor of 'prefers-contrast: forced'-

https://github.com/w3c/csswg-drafts/issues/5433#issuecomment-716954048
  <alisonmaher> Against 'prefers-contrast: forced'-

https://github.com/w3c/csswg-drafts/issues/5433#issuecomment-716954108
  alisonmaher: In favor is it shortens the MQ needed to match any
               combo of users and reduces likelihood that authors
               overlook users with a different color scheme than less
               or more
  alisonmaher: Against is it doesn't add any additional benefit and
               removing provides more clarity to authors on which to
               use and how it works
  alisonmaher: I tend toward remove because simplifies and matches
               more to prefers color scheme approach which just
               matches to dark or light.
  alisonmaher: Perhaps a middle ground where we remove but still
               capture the users, but not sure what that would look
               like.

  jcraig: Thanks alisonmaher for the summary
  jcraig: One piece not mentioned is there's an assumption that all
          forced-color users regardless of match less or more want
          reduced complexity. I don't believe it's true. Don't have
          evidence, but don't think evidence exists. My hunch is these
          people customize and don't have a preference on complexity.
          Seems correlation vs causation
  jcraig: Suggestion alisonmaher mentioned about a way to match both,
          I don't think it's desirable because I don't know of need.
          Looked like dlibby commented along the same lines
  <jcraig> dlibby's comment:
https://github.com/w3c/csswg-drafts/issues/5433#issuecomment-780191074

  florian: Thanks to alisonmaher and jcraig.
  florian: I disagree with jcraig this is people tweaking colors
           because forced-colors changes the colors of your webpage
           and since you don't have full range of colors available a
           number of things will break like gradients. force-color
           palette is reduced
  <TabAtkins> florian is saying exactly what i was going to
  florian: because of that I think we fall into needing reduced
           complexity
  <fremy> I agree with florian
  florian: Otherwise, I think priority of consistency applies. For
           authors separation is nicer. Slightly shorter syntax is
           probably not worth it. Users, though, nice for the small
           set of users not to be forgotten

  astearns: Any other comments?
  [silence]
  astearns: Proposal is remove the forced value for prefers-contrast
            and de-link the two media queries
  florian: I think we've made progress about where there's an issue.
           Not sure we agree on the solution

  jcraig: On mac and iOS the underlying architecture allows us to use
          increased contrast and other settings and would allow a
          really high contrast forced-colors in the future. Similar to
          Microsoft. Issue we've seen in the past is because Microsoft
          is only implementation of forced-colors we don't know end
          result will match that exactly
  jcraig: We don't have direct plans to do that, but I'd like to see
          it.
  jcraig: Leaving the forced-colors media feature open and extensible
          would allow us to better match variants across
          implementations. Shoehorning into prefers-contrast limits
          that in the future. I think it would be good to leave
          extensible
  Rossen: Quick point, chrome is almost done so won't be only one I
          presume
  jcraig: I'm talking platform, not browser
  Rossen: My bad. I thought you were talking about browser
  Morgan: I have a follow up. FF has its own version of forced-colors
          that we allow on any platform. It's another implementation
          same as Microsoft one. There is another sort of platform
          impl there.

  TabAtkins: In jcraig's earlier comment you seemed to say you should
             leave forced-colors more open. Do you think there's
             anything we could query for about forced colors beyond on
             or not? From our designs there wasn't anything you can
             conclude beyond on or not
  fantasai: And forced-color limits the palette. You could have
            forced-color that's similar to increased contrast which
            keeps hue but turns the contrast way up, but that would be
            a different feature
  TabAtkins: I don't think that's consistent with idea of
             forced-colors as we have
  fantasai: yeah, forced-contrast mode
  jcraig: Speculating on that question. Closest thing I'm aware of is
          closed captions have default colors and forced colors.
          Similar to user styles vs overwritten user styles where you
          can say if media doesn't specify the font then I want it to
          be in monospace. If it does specify leave as specified. And
          you can override author
  jcraig: Closest thing to speculate on is this mixed force-ness where
          you may say for caption blocks I want forced, but don't care
          about others. Mixing of DOM and elements. All speculation

  florian: I think today I'm the only one who explicitly was in favor
           of retaining it. I would like a sense of if I'm alone
  TabAtkins: In IRC both fantasai and I said we think the same as you
  fremy: And I did
  astearns: My take is we have two separate opinions and neither side
            has convinced the other. My bias is remove until people
            can be all convinced it should be there
  fantasai: Would create compat problems. prefers-contrast is
            triggering...I guess can try, but if triggering on some
            cases but not other and we change it. Would be a minority
            of cases, I guess
  Rossen: Do you have data?
  florian: My part it's logic but not data. I suspect Microsoft is
           only party with data. We would want to look at the
           particular color schemes used by those with forced-colors
           which are neither high or low contrast
  Rossen: What about data of use removing it and looking for compat
          risk?
  florian: That's future compat. If we do it one way and switch there
           are problems. If we remove it a small minority of users
           would have things worse if you follow my logic.
  dlibby: Wanted to note we can gather data as we ship to understand
          impact. On compat point seems main motivation is for user
          and not web author. If seeing harm for users I think that's
          more of a concern than compat since those are the users who
          want these rules. But data of shipping without value could
          be useful
  jcraig: I would agree if there's evidence. but florian said it was
          based on logic, sounded like speculative logic.
  jcraig: Quoting dlibby from the issue, florian said Microsoft would
          be one to know. dlibby says [reads]
  jcraig: It's about author and user benefit
  jcraig: And if this is larger problem in practice we can add, but
          removing is more difficult. It sounds like that comment is
          in favor or removing now. Fair dlibby?
  dlibby: Yes
  <jcraig> dlibby from the issue: "We didn't get to this in the F2F
           last week, but I agree with the core of @cookiecrook's
           argument - I don't think there is strong evidence for the
           boolean form of prefers-contrast being used to reduce
           visual complexity, and would probably be difficult for
           authors to reason about (enhancement in service of
           respecting a user preference is much different from
           adjusting in response to forced changes to a page's
           appearance)."
  <jcraig> … "Also, if this does become a larger problem in practice,
           we would have the option of re-adding the value, whereas
           removing it would be more difficult. Another option (either
           now, or if the boolean usage ends up being problematic)
           would be always mapping forced colors mode to more or less,
           similar to what is done for prefers-color-scheme."
  <jcraig> ..."As anecdata, I also ran across this blog post that
           expresses some of the same sentiments:
  <jcraig> https://kilianvalkhof.com/2021/css-html/prefers-contrast-forced-is-a-mistake/
"

  TabAtkins: Not to belabor too much. Idea about unclear author
             guidance, the point is there is explicit author guidance.
             Anyone with contrast preference you should reduce visual
             complexity.
  <fantasai> agree with jcraig's last assessment
  <fantasai> (and also the point TabAtkins is making now)
  TabAtkins: Concern with add later is by then benefit of hey this is
             a new feature user guidance is lessened. Would be nice to
             have consistent story to say most of the time use
             prefers-contrast in boolean and you can listen to more or
             less or system pallet, but for overall design boolean
             works great
  TabAtkins: If we decide we don't want it's not more problematic then
             adding in the future. Worst case we say it never matches.
             Not great, but we've had it before and can shove in an
             appendix
  florian: I did feel strongly against removing while we hadn't
           reached understanding about the question because felt bad
           to users was inappropriate. We do understand the
           disagreement now. Still feel strongly, but less bad about
           being overruled.

  astearns: Can we get a resolution to remove the value and unlink the
            features and if there's user data in the future we can
            revisit
  fremy: Removing the value, we also mean if people enable the high
         contrast but set at middle contrast they won't match the MQ.
         That makes the feature useless. On windows I would just use
         MQ for forced-colors. Or I would have to dup the code. I'm
         not sure if value is nes but it makes sense.
  fremy: Even if you treat the contrast as people from Apple said, you
         want to remove complexity. You want same behavior when using
         forced colors
  emilio: Can't you just use or?
  <jcraig> @media (prefers-contrast) or (forced-colors)
  fremy: True, but thing is devs won't test special case. They will
         assume prefers-contrast works. Nobody will catch this tiny
         use case. That's the key of the issue
  astearns: From my PoV, your particular case where someone used
            forced-colors to select with no contrast, I would prefer
            it did not match prefers-contrast because there is no
            contrast. I think it's an argument to delink
  fremy: Then maybe name is misleading. We want to use feature to
         reduce complexity, maybe name is wrong. Seems it would be
         unfortunate
  jcraig: Was going to say same. This is core of disagreement. Half
          the people think there's an association between people using
          forced colors in the window where it doesn't match but they
          still want less complexity
  <jcraig> "In my opinion, if CSS needs a media feature for
           prefers-reduced-complexity or prefers-improved-legibility,
           the working group should consider those separately."
  jcraig: I get it, but I don't agree it's a match. I also suggested
          similar to your suggested fremy ^
  jcraig: The contrast features should ONLY be about contrast and
          forced-colors should ONLY be about forcing colors. I don't
          agree with a 100% correlation
  <TabAtkins> Alternate proposal: we drop (prefers-contrast) entirely
              for right now while we study the problem more and see if
              there's better things to do in the visual complexity
              sphere
  <myles> +1 to what james just said
  fremy: What you said makes sense
  astearns: jcraig's suggestion is I think we should consider
            separately
  astearns: Proposal: Removed the forced value
  <jensimmons> I agree with what James just said — the 100%
               association between the two isn't best.
  <fantasai> jcraig, the reduction in complexity isn't because that's
             specifically requested. It's because in a reduced
             palette, you don't have the option to use intermediary
             colors and you *have to* make changes accordingly

  astearns: Will anyone object to removing it?
  florian: Can we get a promise to collect data about the cases where
           it would be different?
  fantasai: What data do you want?
  florian: Color schemes people use that would be neither high nor low
           and therefore would no longer match. So we can look and see
           if we made things better or worse
  fantasai: Won't know unless you look at a page
  TabAtkins: Since we have requirement that forced-color scheme opts
             into more or less, assuming there's a middle ground
             collecting data about it is would be valuable
  Morgan: Adding probes in FF which should detect browser and platform
  <florian> thanks Morgan
  astearns: Objections?

  RESOLVED: Removed the forced value from prefers-contrast MQ

  astearns: TabAtkins' proposal to drop prefers-contrast all together.
            Would get in way of collecting data
  florian: Not necessarily. Collecting data about user settings, not
           sites
  TabAtkins: Yeah, data isn't about if MQ is used, how categorization
             would work
  astearns: I thought it would be useful to have to get set of people
            that have chosen a color scheme and have the MQ but
            missing out
  jcraig: Sounds like a Windows argument. If we drop prefers-contrast
          can't implement Apple contrast settings. They indicate a
          preference for more contrast. We have a beta implementation
          for prefers-contrast:more in WK

  TabAtkins: The proposal is we drop temporarily while we think about
             problem space of contrast and visual complexity. We can
             bring right back when decide separate or don't need to
             think about visual complexity. It would be worse if we
             ship and then decide should be different.
  jcraig: I don't think we've done this quickly. Has taken years to
          standardize prefers-contrast values. Just agreed less and
          more instead of high and low. Taken years because difference
          between Windows, and MacOS, and Android.
  jcraig: Reduced complexity has higher association to
          prefers-reduced-transparency. I don't know we want to mix
          streams, but if you're associating should be
          reduced-transparency. Would object to removing
          prefers-contrast
  TabAtkins: They're all reasonably linked, sure. Concerned we have
             large set of prefers options and authors need 6 MQs to
             target when there's a potential most people can be well
             served by broader MQs. Let the specific ones exist, but I
             don't want 10 prefers queries that subtly interact in
             ways that are confusing.
  TabAtkins: Worried if we don't guard against it. Has taken a while,
             but it's because people talk slowly. We can move quickly
             if we want

  <aja> might want to consider a way to SET prefers-contrast in user
        stylesheet
  astearns: [reads IRC comment]
  fantasai: Can't really set in user stylesheet. Can in user
            preferences. We're not going to introduce cycle between MQ
            and properties
  astearns: And users know how to set browser preferences much more

  fantasai: When you have a reduced palette, which happens when you
            have increased or reduced contrast or forced colors, you
            have to make changes. You don't have intermediary colors.
            You have to remove things that require drawing these
            colors.
  fantasai: Applies with forced-color or change in contrast. Argument
            for prefers-contrast triggering isn't that they want to
            reduce visual clutter, it's that you have less colors and
            need to adapt. You can't use a subtle drop shadow. You
            need a solid border or nothing
  fantasai: If someone wants a reduced visual complexity category,
            that's border and separate.
  fantasai: Regards to prefers-contrast, if we want to try without
            forced value at first we could. But I agree with TabAtkins
            it means we can't teach it when forced-colors is on and
            you can loop it into same MQ. Authors won't get benefit of
            trigger on both. Forward compat issue won't be that huge
            because most people will fall under prefers-contrast.
  fantasai: The people that do fall in will have a problem or won't
            and we can handle it later. But you don't get author
            benefit to teaching the grouping

  <fremy> Proposal: (color-reduction: forced | optional) and that is
          `optional` when prefers-contrast is set to more or less

  astearns: I'd like to close the discussion for this meeting.
            TabAtkins if you want to continue the idea can you open a
            new issue on GH?
  TabAtkins: Sure
  <jcraig> thanks for your time discussing this everyone
  <astearns> jcraig thanks for joining today

CSS Images
==========

image-rendering:pixelated should not force "nearest neighbor" (or
    similar) when the scale factor is far from an integer (e.g. 150%)
---------------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/5837

  TabAtkins: Image rendering property controls how browses render when
             scaling. Smooth or pixelated. pixelated uses nearest
             neighbor. Great so long as scaling up by integer multiple
             of size. 2.5 times as big and it's terrible
  TabAtkins: You don't get consistent line weight. Something could be
             2 or 3 px depending on precise details.
  TabAtkins: At least 2 people in this issue brought up the problem.
             Want to retain pixel-ness but don't want it to look bad.
             Minor smoothing okay.
  TabAtkins: Proposal is a value that does nearest neighbor scaling
             and use smooth scaling to close gap.
  <florian> Proposal makes sense to me.
  TabAtkins: Use cases seemed reasonable. Canvas-based using pixel art
             and you don't want jaggies but you don't want to force
             canvas. You want to scale as you can
  TabAtkins: Reasonable to me. Happy to add if reasonable to others

  fantasai: Overall makes sense. I think we should allow overshoot and
            scale down. If you're 2.8px might make sense
  TabAtkins: Right. Should test, but we should scale to nearest
             multiple and then go up or down smoothly

  smfr: Does image-render pixelated apply to canvas
  TabAtkins: It's supposed to. It's an image source
  smfr: With houdini? That's only way to get it in
  TabAtkins: canvas element is an image element. It's a replaced
             element with a raster display of content. Intended to be
             effected by image rendering
  smfr: For a UA to implement it means painting image would be 2
        steps. pixelated and then nearest neighbor to destination. Has
        cost. Fine feature request, but additional cost
  TabAtkins: I think you're right. Are you objecting or should we add
             a note about don't use too much
  smfr: Note in spec about performance is good
  <smfr> image-rendering does not appear to affect canvas

  vmpstr: Suggesting to mandate an algorithm or allow a different?
  TabAtkins: Pixelated mandates nearest neighbor. This mandates to
             nearest int and use whatever smoothing
  vmpstr: Yeah. This would add cost
  <fantasai> generally people don't use pixelated unless they really
             want it, it's not the default

  dholbert: I think we have this behavior in spec for scale of less
            than 1. You do default image scaling. Nice to harmonize.
  dholbert: Also, not clear. Is this proposal for new value or change
            to pixelated
  TabAtkins: Asked in thread. Authors thought different value. I
             proposed merge into default. I could go either way
  dholbert: If we did keep pure nearest neighbor, might be nice to
            remove <1 special case and have pixelated scaling
            separate. You can see as you spec
  jfkthame: My understanding of last comment in issue is the
            suggestion is this should be what pixelated does and true
            nearest neighbor would be new. That makes sense to me.
            This would be true pixelated and actual nearest neighbor
            would be special
  <fantasai> +1 jfkthame
  astearns: Then you make current use of pixelated take the harder path
  jfkthame: True, but I think it's the better result. Arguable
  fantasai: I imagine it's not that common unless you want that effect
  TabAtkins: You want for integer. If you use it in between it is
             variable.
  <fantasai> Comment jfkthame was referring to: “Personally, I agree
             with baking this into pixelated. Yes, pixelated should
             mean pixelated, but I don't think nearest neighbor
             interpolation with 150% scaling ratio looks pixelated:
             Squares that vary in size from 1*1 to 2*2 do not look
             like pixels. I think it would be better to add a new
             keyword nearest-neighbor, which means nearest neighbor.”
  <fantasai> https://github.com/w3c/csswg-drafts/issues/5837#issuecomment-776951044

  TabAtkins: dholbert where are you seeing scale down? I'm looking at
             spec and there is no such difference between up and down
  dholbert: I haven't looked at spec for a couple years. It was there
            a few years ago. If it's been removed, that's great
  TabAtkins: I'll research. not in current ED

  astearns: Do you want resolution?
  TabAtkins: Add this with caveats discussed in chat
  fantasai: New value or adding into pixelated and nearest as new? I
            personally agree with jfkthame
  TabAtkins: Also agree with jfkthame. If vmpstr and smfr don't think
             it would be problematic I would like to do that
  astearns: Smoothing only necessary for non-int values?
  TabAtkins: Yea
  astearns: Proposal: Bake the smoothing into non-int changes in
            current pixelated value. Add a new value for nearest
            neighbor jaggedness
  myles: Flip the names?
  fantasai: I don't think so. Last commenter pointed out having a
            variety of squares and rectangles representing source
            pixels doesn't look pixelated. You want each pixel same
            size. I think naming is better where pixelated is same size
  astearns: Is that okay myles?
  myles: No comment
  astearns: Objections?

  RESOLVED: Bake the smoothing into non-integer changes in current
            pixelated value. Add a new value for nearest neighbor
            jaggedness

Scroll Snap
===========

  fantasai: Scroll snap- can we republish CR?
  <fantasai> https://lists.w3.org/Archives/Public/www-style/2021Feb/0013.html
  fantasai: Some issues. Here's a status summary ^
  fantasai: If someone wants to insist on a test existing and will
            volunteer to write, happy to hold off.
  florian: CR-snapshot?
  fantasai: Yes. Long time so should do one
  astearns: Objections to republish CR-snapshot of scroll snap?

  RESOLVED: Republish CR-snapshot of Scroll Snap

Ruby
====

Alternating sides for ruby-position
-----------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/5971

  florian: 3 values; let's focus on over and under. Default is over
  florian: If you have 1 layer it goes over. If 2 they both goover and
           stack. If want one over one under need selector
  florian: People sometimes want to stack, but majority is when you
           have 2 layers (3 almost not done) people want one on each
           side
  florian: Separate selectors is annoying, especially given markup has
           anonymous boxes
  florian: Proposal is default value is auto or alternate which is
           over with 1, over and then under with 2, and continue
           alternating with more

  myles: Didn't realize proposal is changing initial value. I think we
         have ruby in books which is scary.
  myles: Separating changing initial value from the new property is
         good
  fantasai: Don't think you support multi-level
  myles: Doesn't effect nested. Multi level ruby in same element only?
  fantasai: Yes.
  myles: Then, now that I understand, if you tried to give this to use
         we would have longer ruby text on top
  fantasai: Not sure, haven't loaded it. It's a separate issue from if
            you display on top or bottom
  myles: General compat concern
  fantasai: Yeah. If you don't support multi-level in same ruby
            structure
  florian: Problem is same no matter if value
  myles: If we implement multi level without this we would turn 1
         level to 2. With this we would turn it into 1 level above and
         1 below
  florian: If I remember your current impl, yes

  astearns: myles resolve or investigate?
  myles: Okay resolve. If things explode we can come back
  astearns: Add an alternate value which is the initial value

  RESOLVED: Add an 'alternate' value which is the initial value

Received on Thursday, 25 February 2021 00:07:42 UTC