[CSSWG] Minutes Telecon 2020-06-10 [mediaqueries] [css-color-adjust-1]

=========================================
  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
-------------

  - While discussing how to handle length video-* features (Issue
      #5044: length units in video-* media features) the group spent
      time working out what the use cases are that lead to this
      request.
      - The conclusion was that the use case to know the dimensions
          was very similar to the discussion that led to srcset. There
          are possible fingerprinting vectors when exposing this data
          which need to be carefully considered.
      - Additionally, there were some questions as to if this was
          properly a media query or should change more to be UA driven
          to decide what content to serve.
      - A call will be coordinated between the CSSWG and the Media WG
          with representation from TAG in order to dive into these
          questions further.
  - Issue #5043 (Definition of video width and height) is related to
      issue #5044 so will also wait on the coordinated call before a
      resolution can be reached.

Dialog Element
--------------

  - RESOLVED: We switch dialog positioning to rely on centered fixed
              container with max-height and overflow:auto pending use
              counter data (Issue #4645: <dialog> positioning should
              be describable in CSS)

Color Adjust
------------

  - RESOLVED: Do not honor non-URL background images in forced color
              adjustments (Issue #4916: Should probably not honor
              non-url background images)
      - There was interest in looking into a more nuanced solution to
          issue #4916 using the alpha channel.

Color Adjust/Media Queries 5
----------------------------

  - RESOLVED: Add the forced value to prefers-contrast (Issue #3856:
              Fold `forced-colors` and `prefers-contrast`?)

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

Agenda: https://lists.w3.org/Archives/Public/www-style/2020Jun/0012.html

Present:
  Rachel Andrew
  Rossen Atanassov
  Tab Atkins
  David Baron
  Amelia Bellamy-Royds
  Christian Biesinger
  Mike Bremford
  Oriol Brufau
  Emilio Cobos Álvarez
  Dave Cramer
  Luke Dary
  Elika Etemad
  Simon Fraser
  Chris Harrelson
  Dael Jackson
  Sanket Joshi
  Brian Kardell
  Greta Krafsig
  Chris Lilley
  Peter Linss
  Stanton Marcum
  Alison Maher
  Nigel Megitt
  Chris Needham
  Tess O'Connor
  Anton Prowse
  Florian Rivoal
  Cassondra Roberts
  Jen Simmons
  Miriam Suzanne

Regrets:
  Megan Gardner
  Daniel Holbert

Scribe: dael

  astearns: Anyone have any changes for the agenda?
  astearns: We are going to take #12 and #13 and move them to next week
  astearns: Other changes?

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

length units in video-* media features
--------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/5044

  florian: I can remind where we're at. Not sure how to solve.
  florian: We have a set of MQ which are specific to video. I'm going
           to focus on width but have height too
  florian: Just like normal web pages render to viewport, some players
           render video to a separate plane. We have video-width and
           properties like that.
  florian: Proposed with same syntax as normal width and height. On
           devices where planes are different they accept same syntax.
           That implies they take any kind of length and what do those
           units mean? Goal is the for a 4k device it would return 4k.
  florian: Should it be pixel with a different definition and if so
           what do the others mean. Should it be a unitless, separate
           unit. Underlying that is how are they expected to be used.
  TabAtkins: For the use case people want to know physical density of
             screen. If it's a 4k screen they want 4k video no matter
             if it's full screen
  TabAtkins: Given that I agree with fantasai we should do an int

  hober: I think I would like there to be a principle for answering
         questions like this. Here on a device with only one plane in
         a UA that supports video prefix they should be same as if
         alias for equivalent.
  florian: That's where we started but introduces problems
  TabAtkins: Explain why you think that's a useful principle?
  hober: Sure. I think...I worry this 2 plane model is a contingent
         fact of present limited hardware.
  hober: I would like in the future if this hardware goes away I would
         like the maintenance burden for browser to be minimized.
         Great if simple alias. Working backwards is how I get here.
  hober: Future is longer than the past and I doubt devices with these
         characteristics are a thing in 100 years, but I hope CSS is a
         thing in 100 years and I hope we don't burden future
         implementors
  <emilio> hober++
  AmeliaBR: Following up on hober's comment, I do agree we shouldn't
            have similar but different things. px with a different
            interpretation is dangerous.
  AmeliaBR: I don't know if that means they have to be alias but we
            need to think question and purpose of this MQ. If we do
            the integer value where it gives you raw dots on the
            screen we need to ask how is that interpreted by all UAs,
            even ones not doing special video rendering
  AmeliaBR: Does defining factor become this isn't about separate
            plane but this is a way to get raw pixel resolution to
            render graphics and will that be expected in all UAs?
  AmeliaBR: If it isn't just an alias for existing width and height we
            have to talk about what does it means and what's the
            purpose
  florian: A few things. Minimizing maintenance burden is good. If we
           define this as none or similar I think it's not height.
  florian: Mapping to an alias is odd. You want to deliver 4k on a 4k
           screen you don't want to deliver 4k if there's one plane.

  florian: Starting to think is it useful as a MQ. It's not to select
           stylesheets, it's for API things that want to know screen
           information and download assets. Wouldn't this be better as
           an API?
  <emilio> What is the expected usage of this media query?
  <AmeliaBR> `<video><source media>`
  AmeliaBR: MQ are used to select video sources in HTML attributes
  florian: For that purpose I think the best practice is not to select
           on device resolution but describe resolution of videos and
           let UA choose. This is for the cases you can't do that
           because managing it yourself in JS
  astearns: florian you're suggesting?
  florian: srcset is better for that. I'm thinking this isn't a MQ and
           this number is exposed in API
  fantasai: Also a question of this is the device...viewport size not
            device.
  florian: It's device
  fantasai: Describing number of pixels or length of viewport.
            Question if use case if for viewport size or device size.
            Need to be clear if we need one or both for the use case
  fantasai: We could make something only available in JS but still
            seems fundamentally a MQ. Doesn't make sense to create and
            API that's not a MQ even if we think it's only useful in JS
  florian: MQ don't give numbers, they answer a question. If people
           want a resolution they have to search the MQ. Seems not
           great

  plinss: Orthogonal, I want to object to 4k or 4000 because it's a
          marketing term not an exact specification. It is a hot mess
          so let's not use it in a technical context.

  faceless2: florian people are binary searching MQ to get approx
             resolution already. Ultimately if you're proposing a
             value to describe physical px I can think of multiple
             issues over the last 6 months that wanted that. It's a
             useful problem to solve and not restricted to video
  florian: Then different question. Number of physical pixels across
           the screen on the video plane is different than one across
           viewport.
  faceless2: Device with a single screen is it different?
  florian: Yeah, if browser not full screen it's different
  nigel: I got impression idea is combo of queries for that. if you
         have Info about whole device video plane you can do other
         queries to realize actual viewport is a subsection of that
  astearns: We have video width return px on video plane and other MQ
            gives you px width of browser window and we can't convert
            between I'm not sure how useful
  florian: Resolution gives density and that's in MQs
  <emilio> faceless2: hmmm, why are people bin-searching media-queries
           instead of `window.devicePixelRatio` / `window.screen` /
           `window.{inner,outer}Width`?
  <faceless2> A fair question, I didn't write the library that did it
              :-) Will dig it up and post here

  AmeliaBR: One thing to mention, I can't pull exact resolution but
            original discussion is MQ were part of solution but also
            going to be CSSOM API that exposed exact numbers. Screen
            API and screen.video
  AmeliaBR: That people want exact numbers doesn't mean MQ are
            inappropriate. Might be 2 parallel solutions. Can't
            remember what we resolved on

  florian: Another comment, we used to have device-width and -height
           MQ in CSS px but we deprecated them for privacy reasons. If
           we introduce this we're re-opening the problem. It's a
           trade-off so I don't have a decision, but want to remind
           people
  smfr: Strong support florian. For srcset the UA picks the source and
        we should push in that direction so we don't have to expose
        all device information b/c fingerprinting
  ChrisN: Like we discussed src requires knowing the device
          characteristics to know what media to pick
  florian: API to tell what resolutions are available and you can than
           tell which to load?
  ChrisN: Potentially
  florian: With an observer of some kind so if it moves from high to
           low density screen you get told
  ChrisN: Feels like need to take this to Media WG. Looking at history
          and we had 3 options, one of which was to add properties to
          screen object.
  AmeliaBR: I was reviewing that discussion and last comment was
            someone saying open a separate issue to discuss how API
            should look and I don't think that issue was ever filed

  emilio: I feel like florian and smfr. It doesn't feel to me like
          using a MQ is right. For video there's a lot UA would want
          to do. Seems sensible that even if high res screen you want
          to take low bandwidth into account. Leaving source decision
          to UA seems better to me and not clear how use MQ
  <Rossen> strong +1

  florian: I suggest we leave this open, go back to media working
           group to talk and with a suggestion to look at discussion
           for images and how srcset came to be because that was a
           similar item. People should look and have in back of mind.
           Doesn't mean we have to do same but it's related

  nigel: I want to observe there's an architectural side. There's a
         bunch of MQ about video and some make sense in API and others
         don't. Need to think about if we want consistent across all
         or if it makes sense to differ. Video size is an obvious
         thing to decide on resource. Another might be indicate if
         display can do a color gamut where you can choose a different
         version
  nigel: Might also want to select different colors for text in that
         case.
  nigel: It's complicated and would be neat if single approach to
         extend.
  florian: We do have color gamut and dynamic range for video. These
           seem fine to me. Width and height seem harder
  nigel: If users have to go to different places for info about same
         device that makes their job harder
  florian: But it's different. Picking different color of text you
           would do in CSS so a MQ is appropriate. If math in JS to
           figure out resource not obvious MQ is convenient.
  nigel: Yeah, just different things to balance
  ChrisN: I think that's how we ended up with this proposal. We have
          color gamut, let's put these in same place. Can revisit
  astearns: On face it seems reasonable people have shown issues with
            this MQ, especially with privacy. Appropriate to go back
            to media WG and see what is really required for MQ.
            Example usage is great

  hober: Joint call might make sense and be faster than going back and
         forth. Media WG telecon is monthly
  <fantasai> +1 to hober
  astearns: Excellent idea
  astearns: Possible to invite CSS people to media WG call? Or should
            we host?
  hober: Imagine either
  nigel: I don't think we have Media group chairs on the call
  ChrisN: It could work either way and may depend on timing.
  florian: Would be good in same discussion to have someone, maybe TAG
           who can represent responsive image discussion
  hober: With my TAG hat on and since I was part of srcset creation I
         guess I'll have to be on
  TabAtkins: Same here since I'm also responsible for srcset
  astearns: I'll reach out to Media WG chairs to get a time for a
            joint call
  florian: Next issue is related but different

Definition of video width and height
------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/5043

  florian: Summary and than we move on.
  florian: Just like we copy/paste what they mean we also copy/paste
           about video plane on paper.
  florian: Needs a degree of revisiting. Related to what the units
           mean but when we define that we need to see what we change
           in this definition.

  astearns: We'll take both these issues to the Media WG joint call

Dialog Element
==============

<dialog> positioning should be describable in CSS
--------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/4645

  emilio: Started looking into dialog and whole positioning for abspos
          dialog is weird. Have to snapshot scroll position at time
          you open.
  emilio: I think it's not common since most dialogs I know are
          fixedpos and height of screen at most
  emilio: Some discussion in the past. I wonder what is model people
          feel we should have. fantasai proposed snapshot scroll
          position in dom and apply that
  emilio: I think I would like simpler and make dialogs fixedpos,
          scrollable with max-height is the screen height. Only Chrome
          ships dialog so I'd like to know their feelings
  <fantasai> issue was about describing the behavior specced in HTML,
             didn't look into making fundamental changes to it :)

  TabAtkins: Played a bit. Does ability to anchor a dialog to a mouse
             event or another element exist or is it limited to dialog
             center on screen
  emilio: I don't think we can attach to an element
  TabAtkins: If we ever do want to attach to an element some mechanism
             is the thing being used to position non-anchor dialogs.
             If we switch non-anchor to fixedpos we have to figure out
             how to do it for non-anchored.
  iank: I think a different solution for anchoring down the road

  iank: I tried to work out where this originally came from. It was
        something like 8 years ago. Only concern I have is webcompat.
        Given we're only shipping it might be fine. Want to add use
        counters to see what sites are triggering. Otherwise changing
        to fixed height and overflow auto sounds fine
  emilio: Other weird thing is reposition dialog when viewport
          resizes. That just feels weird.
  iank: Dialog should always be centered given abspos constraint
  emilio: Agree. Whole snapshot is redone when viewport is resized
  iank: Sure. Don't disagree this is crazy behavior
  iank: I'll add a blink use counter to determine when we're
        snapshotting a non-0 scroll position. That should cover it and
        give us insight in web compat
  TabAtkins: Okay resolve pending data showing we can't this is the
             way to go?
  iank: Fine.

  TabAtkins: Proposal: We switch dialog positioning to rely on
             centered fixed container with max-height and
             overflow:auto pending use counter data
  smfr: Only for modal and therefore in top layer?
  TabAtkins: Yeah
  smfr: Don't have to worry about transforms because not in top layer?
  TabAtkins: Yeah
  chrishtr: Does this amount to styling same as full screen element?
  TabAtkins: Yeah
  chrishtr: It would just allow a margin?
  iank: top left at 0 but margins are auto which centers
  chrishtr: Only difference is margins, sounds good to me. Recently
            reviewed full screen so this is not a problem
  hober: Seems good if they converge since intended to use same
         underlying
  astearns: Do we need to be explicit about connection?
  hober: Are since use notion of top layer. A lot of refactor on full
         screen spec that could move some of this to other specs
  chrishtr: Is dialog in a css spec?
  TabAtkins: Just in HTML right now
  chrishtr: Can we define where we'd put it when work is done?
  TabAtkins: I think it's still fine for special styling rules to live
             in html spec. Only if we're adding new functionality
             should it be in css.
  chrishtr: The rendering monkeypatches need to be moved
  TabAtkins: We're planning to kill those
  AmeliaBR: One new magic thing is idea of top layer. Is that
            described?
  TabAtkins: Have an open issue for it in positioning spec
  AmeliaBR: Needs to be defined and then html can define dialog as
            rendered in top layer with these properties. Then we solve
            dialog being described by css terms in the html spec
  chrishtr: Sounds right and same for full screen
  florian: And if there is not css terms to describe we should create
           it rather than have it be magic
  fantasai: Describing the top layer is a separate open issue
  astearns: Any magic aside from top layer?
  TabAtkins: Assuming we use proposal from earlier no. It's just a
             fixedpos container
  chrishtr: Top layer is in a special place because it's above
            scrollbars
  TabAtkins: Yes. As fantasai said describing the top layer is a
             separate issue

  astearns: Have open issue for top layer, we will define that. For
            this issue we're going to resolve that We switch dialog
            positioning to rely on centered fixed container with
            max-height and overflow:auto pending use counter data
  astearns: Any objections?

  RESOLVED: We switch dialog positioning to rely on centered fixed
            container with max-height and overflow:auto pending use
            counter data

  astearns: Good to get to top layer definition soon so we can remove
            the magic.

Color Adjust
------------

Should probably not honor non-url background images
---------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/4916

  emilio: When we implemented we initially allowed all background
          images like spec says. We had to revert and only allow url
          based because things like gradients cause undesired effects.
          High contrast dark theme with white gradient you don't want
          to show
  emilio: Not sure what Edge on new Blink implementation does, but we
          got a lot of complaints from high contrast users
  AmeliaBR: End user point of view gradients act more like background
            color than background image which we'd preserve?
  emilio: Right

  Rossen: Current impl is evolving in this respect
  Rossen: Issue you raised I checked one of the linked URLs. I didn't
          see why but that didn't reproduce the issue.
  Rossen: Regardless two options you listed which is not honor or do
          something further and allow alpha blending of non-color
          background to blend with override from system colors. That's
          an interesting approach but not sure effect on gradients and
          if that's more desirable
  Rossen: Either approach seems reasonable.
  Rossen: Before the call smfr linked to a proposal from dino a while
          back
  smfr: Linked because had a mechanism to describe how change colors
        and gradients. Instead of magic text you can say
        color-filter-saturation:0
  Rossen: Defined background color as a color-mix to be able to blend
          with computed color of system colors. That's the case and I
          was thinking if the color mix would be enough in this case
  emilio: Need to color-mix all colors in image. color-filter more
          tricky because if applies to system colors it's opposite.
          Need to prevent it from applying to UA colors which is not
          ideal
  smfr: Had notion in webkit, but I don't think we specified anything
        on it
  emilio: Doesn't that mean default color isn't filtered? I guess it
          depends

  Rossen: Could go more restrictive and not honor non-url background
          images and than figure out if we can alpha-blend gradients
  emilio: sgtm
  astearns: Proposal: Not honor non-url background images for color
            adjustments
  astearns: Or non-URL background images people can use color
            adjustment MQ to make own changes?
  fantasai: No because we're not allowing them
  astearns: But you can have rules in stylesheet to use different
            gradients
  AmeliaBR: Same as forced-color changing any other forced-color rule.
            It turns off forced color on certain element
  fantasai: But that turns off all rules which is next issue

  astearns: Any objections to not honor non-URL background images in
            color-adjustments?
  AmeliaBR: Can you say forced color?
  astearns: Prop: Do not honor non-URL background images in forced
            color adjustments
  fantasai: I'm okay with it to start. Looking at other ideas in issue
            might be worthwhile, but we can start here
  Rossen: Agree. I think this is a reasonable first step on the path

  RESOLVED: Do not honor non-URL background images in forced color
            adjustments

Fold `forced-colors` and `prefers-contrast`?
--------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/3856

  fantasai: I think we're not going to fold them together because due
            to web compat we need to keep forced color MQ.
  fantasai: Could add it to trigger when forced-colors is active so
            you can know if there is a contrast requirement in place.
  emilio: Who ships prefers-contrast? MS?
  Rossen: Yes
  florian: Not convinced this can work. With prefers you're supposed
           to pick. With forced it's done for you. Knowing something
           is changed doesn't tell you what to do
  fantasai: People will likely want to not use gradients or other
            content layering. Pull back effects with visual
            complexity. Those changes which aren't colors are things
            you'd want with low, high and forced contrast
  Rossen: Synergy between forced-colors and the other prefer
          properties makes sense for same reason we made initial
          change for prefers color scheme. Seems reasonable based on
          forced-colors mode people can allow the effect of
          forced-colors on large parts of content while providing
          reasonable experience either for contrast or adjust for
          appropriate color scheme.
  <fantasai> I'm suggesting we make @media (prefers-contrast) { ... }
             handle high, low, and forced contrast modes

  Rossen: I would argue for this change for similar reasons fantasai
          pointed out but also to underline that being able to escape
          large parts of content and do your own thing is important
          for this feature.
  Rossen: I think the current contrast hint is missing here and if
          people do more with prefers-contrast this is a nice addition
  AmeliaBR: I would argue opposite. Important to keep independent.
            Forced-color mode can force low-contrast. It's not common.
            If we treat forced as prefers-contrast people will assume
            it means high contrast when it's not true. Keeping them
            independent options recognizes it's more
  fantasai: prefers-contrast also can acknowledge low contrast.
            forced-colors says I want a particular contrast. Adding it
            to prefers-contrast adds a preference be it high or low.
            That's why I think it's appropriate.
  <florian> I started skeptical, but I now support the proposal
  AmeliaBR: How works in authoring boolean perspective? Forced-colors
            is independent and media prefers-content doesn't match?
  <fantasai> https://drafts.csswg.org/mediaqueries-5/#prefers-contrast
  fantasai: We add a keyword of forced to prefers-contrast. If you use
            it without anything it means you have a preference be it
            high or low and the author should respond
  <fantasai> prefers-contrast: no-preference | high | low
  <fantasai> proposed to make that
  <fantasai> prefers-contrast: no-preference | high | low | forced
  florian: Author you can query to prefers-contrast: high to
           prefers-contrast: forced and with forced you can reduce
           visual complexity
  AmeliaBR: With that I'm okay with proposal. Need clear authoring
            guidance to not assume the preference is in a specific
            direction
  <fantasai> The fact that 'low' and 'high' both exist as values makes
             that pretty obvious imho

  astearns: I'm hearing support
  astearns: Objections to add the forced value to prefers-contrast?

  RESOLVED: Add the forced value to prefers-contrast

Received on Wednesday, 10 June 2020 22:32:50 UTC