[CSSWG] Minutes Telecon 2016-12-14 [css-variables] [css-syntax] [mediaqueries]

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


Scheduling
----------

  - It is still undecided if there will be a meeting next week.
  - A location is being sought for to host a summer F2F in Europe.
      There's also a doodle for members to add availability
      information.

Relative URL resolution in var() references
-------------------------------------------

  - RESOLVED: No change in current custom properties for issue #757.
              Need to solve this issue with future work.

'>>' and '>>>' should be a token
--------------------------------

  - RESOLVED: We drop the implicit requirement that selectors
              parsing remains LR1 and as a consequence we remove
              specialized selectors from the syntax and replace
              accordingly.

Consider making device-pixel-ratio a standard alias
---------------------------------------------------

  - RESOLVED: Do not add device-pixel-ratio unprefixed.
  - It was left undecided if -webkit-device-pixel-ratio should be
      defined in the Media Queries spec. Several people had no wish
      to define it since it's an alias to the resolution media
      query, but there was concern that that's compatibility hostile
      since currently you need -webkit-device-pixel-ratio to be
      web compatible.

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

Agenda: https://lists.w3.org/Archives/Public/www-style/2016Dec/0053.html

Present:
  Rachel Andrew
  Rossen Atanassov
  Tab Atkins
  Bert Bos
  Tantek Çelik
  Alex Critchfield
  Simon Fraser
  Daniel Glazman
  Tony Graham
  Brad Kemper
  Dael Jackson
  Chris Lilley
  Peter Linss
  Myles Maxfield
  Michael Miller
  Rachel Nabors
  Simon Pieters
  Anton Prowse
  Liam Quin
  Matt Rakow
  Melanie Richards
  Florian Rivoal
  Jen Simmons
  Geoffrey Sneddon
  Alan Stearns
  Majid Valipour
  Lea Verou
  Steve Zilles

Regrets:
  David Baron
  David Cramer
  Elika Etemad
  Vladimir Levantovsky

Scheduling
----------

  astearns: Let's start. I've heard a couple people are not
            available next week
  astearns: Is there anyone that could come and wants a meeting next
            week?
  * Bert won't be here next week
  Florian: I could come.
  gsnedders: I'm the same.
  astearns: Other opinions?
  jensimmons: I can make it
  glazou: I'm unlikely be be available.
  astearns: Alright. We will see I think. It sounds there will be a
            bunch of people out. We definitely won't have the 28th.
            If we don't have a call next week there will prob be
            enough for a Jan 4.
  gsnedders: Assuming people are around.
  astearns: mmm....true. People will have had time to recover, I
            think.

  [discussion on webex problems]

  astearns: Other scheduling topic was if we can have a meeting in
            the summer.
  astearns: fantasai put up a doodle.
  <astearns> doodle for summer meeting http://doodle.com/poll/n7dg3i2hmuvzagws
  astearns: I expect there will be enough business that it would be
            useful. I don't know if anyone could host. Europe makes
            sense for location.
  astearns: If anyone has a European location please get a hold of
            Rossen or me. Please put your availability in the doodle
            so we can see if there's a time that would work.
  <Bert> (I'd be happy to host. Meeting rooms enough. Hotels may be
         expensive in that period...)
  jensimmons: I live in NYC but I'm sure I could get Mozilla in
              Paris or London.
  Florian: Paris is beautiful.
  gsnedders: New London is small. I'm not sure there's space there.
  Rossen: Also W3C hosting in Sophia something we can explore.
  Bert: Yes, the rooms here are all available. The advantage is
        you're on the cost. You have to book a hotel early, it's
        high season. I'm happy to host.
  Rossen: Sounds great. We'd be happy to be hosted.
  <gsnedders> I could potentially help to arrange something around
              Scotland, but don't have hte funding to pay.

  astearns: Let's plan on if and when and where we'll have a meeting
            in the summer when we meet in Seattle.

  glazou: One thing about Sophia in the summer if you mean July and
          August it's extremely painful to drive there. It's a
          gigantic traffic jam. If you remember last time we were
          there in summer it took us an hour to get to dinner.
  glazou: So end of June is waaayyy better there.
  Rossen: That's really good input
  Florian: jensimmons if you can check on Mozilla availability it
           could be useful. And then we weigh in Seattle.

Relative URL resolution in var() references
-------------------------------------------

  <astearns> https://github.com/w3c/csswg-drafts/issues/757
  TabAtkins: I wasn't around last week.
  TabAtkins: I'm not sure...is frremy on?
  frremy: I am
  TabAtkins: mmkay. Can you summarize why you think my solution
             won't work?
  frremy: I think there are 2 reasons. First you need to spec the
          URL in a property that only contains the URL which will be
          a pain. Even if you could do something like background
          you'd have to create your own syntax and that will change
          over time.
  frremy: Second is if you look at the way yours works it resolves
          at computation time and I don't think we want to replace
          with computed because we resolve before the computed time.
          It assumes if you have time it brings them at computation
          time.
  frremy: I think that's why if it makes sense.
  TabAtkins: That we can't do complex properties in level 1 of
             Houdini is true of everything. That's a limitation of
             living in level 1. We'll aim to relax that in the
             future as we get more of a handle on it. Houdini should
             reproduce everything CSS does eventually. It's not a
             URL specific problem.
  TabAtkins: Computation is more interesting. Your example of a
             custom property of 1em being used in a font size...I
             think that's invalid because you introduced another
             chain. URLs just resolve on the sheet they're in. It's
             not the same deal. Dependencies aren't ever cyclical.
             Which style sheet it's in matters.
  TabAtkins: That's what people are asking for.
  frremy: I don't think the solution is a fix. It seems like it
          would be a custom thing for only URLs. I checked in Edge
          and Chrome and they don't support custom URLs. I don't see
          why we wouldn't fix it the right way.
  frremy: It seems like we need to fix it so let's fix it.

  TabAtkins: Your solution of look for things like URLs and keeping
             the information around doesn't work. There are several
             functions that use URLs and they carry them around as
             just strings. That means you have to track every string
             as well.
  frremy: No, if you think about strings I don't want to resolve
          that. It's based on the token that's URL or image. A
          string is a string. If you want to define a URL or image
          this is where you resolve.
  TabAtkins: Or any future functions.
  frremy: Yep. You resolve the image or url, not the string. Keeping
          source for string doesn't make sense.

  leaverou: If we're adding new URL function would it help to accept
            a second argument as the base that would accept a custom
            origin?
  TabAtkins: I think that's straight up a useful feature.
  <ChrisL> yes, we need better control of the base to resolve against
  TabAtkins: It doesn't directly address the issue. If you have an
             untyped custom prop with a URL it doesn't know it's a
             URL unless we go with pretend typing.
  Florian: If you specify the origin as CSS origin it doesn't solve
           the problem?
  TabAtkins: Right.

  leaverou: You could have a custom prop with its own origin and set
            it as it's own origin. It's hacky.
  Rossen: It's a good thing to keep the relative things relative.
          You would have to deal with the case where you spec the
          base.
  leaverou: Is frremy implementable?
  ChrisL: It doesn't sound it. We'd need a URL function that would
          allow the base so that people can control that. We need to
          support relative and absolute URLs. Duck-typing strings is
          a terrible idea.
  TabAtkins: Everything works as you expect if it's typed using
             Houdini. It's untyped that are causing problems because
             we know they're URLs.

  astearns: Sounds like we should try to solve frremy problem in the
            future but keep the current terrible string URLs in
            variables as they are now.
  TabAtkins: That's the solution if we do nothing. Which I'm fine
             with.
  frremy: I think it's a mistake but if this is what we want to do
          it's an option.
  astearns: Will you object to doing nothing?
  frremy: I can't object to doing nothing :D
  Rossen: I wouldn't say this is objecting to doing nothing. All
          frremy is asking is to keep pursuing a better solution. If
          we solve it now or kick it down the road and keep at it,
          that's tbd by the group. By ducking our head in the sand
          it doesn't mean the problem is gone.
  Rossen: I'm not hearing consensus around this is the only way
          we'll solve it. I'm hearing what frremy says kinda makes
          sense but maybe not the right time.
  astearns: And I thought that's what I was expressing. We need to
            solve it but won't do so with the L0 custom properties.
  leaverou: Perhaps this is another reason to prioritize the
            declarative API

  Rossen: frremy are you okay with this for now?
  frremy: Current behavior isn't working at all. If you think it's
          not working and we document it's not working it's fine.
          It's just not what I think authors want. If we doc it it's
          fine.
  Rossen: We document it this way...
  frremy: I'm not saying we should put it in a spec. I'm fine
          keeping as is.
  astearns: As specified the strings should resolve at computation
            time and relative URLs will resolve at that point to the
            style sheet they're resolved. If that doesn't work in
            Chrome or Edge that's a bug.
  astearns: The spec says at computation time the URLs will resolve.
            Am I wrong?
  leaverou: I agree with astearns.
  frremy: I don't think it's specified in the spec.
  TabAtkins: It is. Once you substitute it into a property that
             knows it's a URL it's resolved.
  leaverou: Right now it doesn't work in Chrome.
  frremy: Same in Edge.
  astearns: That they don't work is a bug. That they prob won't
            resolve to the expected URL is something we'll fix in
            the future
  TabAtkins: And we have a solution spec in simple cases. We expect
             to address most or all needs as we expand what a typed
             custom property can express
  astearns: Let's close on this.

  RESOLVED: No change in current custom properties for issue #757.
            Need to solve this issue with future work.

'>>' and '>>>' should be a token
--------------------------------

  <astearns> https://github.com/w3c/csswg-drafts/issues/712
  TabAtkins: For grammar reasons to keep the selector grammar being
             a single token look ahead earlier CSS added in special
             tokens just for selectors.
  TabAtkins: By making them special tokens in the CSS we needed
             special selectors with one look ahead. We introduced >>
             and >>> combinators.
  TabAtkins: And these are under the same issues. If we want
             selectors as one token of look ahead we need to make >>
             and >>> a single token in syntax
  TabAtkins: Question is, is LR1 in selector syntax important to
             maintain. If it is I can modify for specialized tokens.
             If not I'll avoid doing so and we can try and remove
             special syntax. This would make selectors LR3. It would
             simplify things because we won't have selectors only
             tokens.
  TabAtkins: Other benefit as dbaron pointed out, specialized tokens
             mess with grammar. Having these extra tokens can have
             similar problems to the unicode issue. Do impl still
             think maintaining selectors as one look ahead is
             important?
  <TabAtkins> unicode issue = "u+a { color: blue; }" was invalid,
              because the selector part parsed as a unicode-range
              token, while "u + a { color: blue; }" was valid. This
              is confusing.

  glazou: First, personally, I think either solution is fine. I want
          to give a user specific tale. I read the issue in detail
          on github. Most people never noticed you can add a comment
          between : and class selector. Most are unaware that if you
          have two combinators you can have a comment in between.
          From a user prospective these kind of controls are really
          complete. You can't divide into pieces.
  glazou: The attribute selectors between the name and the value the
          |= can't divide into two pieces. Whatever is best for
          implementors would be fine for me.
  TabAtkins: I agree. The details of where you can put comments it
             are just random and arbitrary. This is just a what is
             easiest for implementor issue. I agree.

  TabAtkins: If people need to consult and come back later I'm fine
             with that. We need a decision at some paint.
  Rossen: On our end I don't believe it will be a big deal. Did you
          guys have a solution or experiment in Chrome?
  TabAtkins: Ours is fine. We have it a separate tokens. You can do
             >>> with comment in between. It's if it should be
             allowed.
  Rossen: I don't believe the complexity will be there. I think
          we'll be fine.

  glazou: I just thought about a case. a>b>c and you remove the b.
  glazou: Suddenly the whole thing is something else. Is it
          something we want? I'm not against it but we should
          consider. Removing the b changes the behavior.
  TabAtkins: That's a weird thing to do. Hopefully it's a typo and
             you notice.
  glazou: All types of weird things happen in style sheets.
  Rossen: I think the case from glazou is the editing scenario and
          you're typing and you could get weird behavior with a typo.
  TabAtkins: In editing if you leave white space in the place of the
             b it's not valid. It's only if you remove all which
             space it because valid.
  <liam> [ this comes up if you comment out the b too, e.g. for
         testing ]
  Rossen: Sure. Let's not debate. It's reasonable to expect you may
          run into it. Let's just put it on the record.

  <leaverou> Question: Does this affect the Houdini Parsing API as
             well? If so, having it as a series of child combinators
             decreases usability for developers.
  astearns: leaverou had IRC question. [reads]
  TabAtkins: It does not effect Houdini. We're not exposing weird
             selector tokens. They're all exposed as just a string.
  leaverou: Houdini doesn't parse selectors?
  TabAtkins: As far as Houdini APIs are concerned you won't see a
             difference.
  leaverou: This is just internals?
  TabAtkins: Yeah.
  TabAtkins: From Houdini side we removed those weird tokens.

  TabAtkins: Chrome is okay with separated tokens. Sounds like MS is
             okay. Do we want to resolve, see if Mozilla has an
             opinion?
  astearns: dbaron commented in the thread, but I don't think I see
            an opinion there.
  <glazou> https://github.com/w3c/csswg-drafts/issues/712#issuecomment-264568190
  TabAtkins: He said adding more tokens was bad with the unicode
             range issue I mentioned. Well, potentially problematic.
  TabAtkins: He also pointed out in this exact case it wouldn't make
             selectors not LR1, but if I go to where I want and
             throw away the old tokens it would make selectors LR3
             or at least 2.
  astearns: Two options. Resolve today and see if anyone complains.
            Or we wait for more input.
  astearns: I'd be happy resolving today.
  TabAtkins: They're easy changes to make.

  glazou: If it helps we could also reverse the question. Do we want
          to allow comments between the > signs in these
          combinators. If the answer is no it gives a direction
  Florian: I think we don't care. We care about consequences of
           impl, but don't care about the comments.
  TabAtkins: Yeah. Comments is already weird.

  Rossen: I'm in favor of progress. Resolve and move on. The problem
          will clearly come back.
  TabAtkins: Proposed resolution: We drop the implicit requirement
             that selectors parsing becomes LR1 and as a consequence
             we remove specialized selectors from the syntax and
             replace accordingly
  astearns: Objections?
  Florian: Do you mean becomes?
  Florian: I'm only asking about resolution phrasing.
  Florian: Just replace becomes with remains for the resolution.
  glazou: Yes. I agree with the proposal

  RESOLVED: We drop the implicit requirement that selectors parsing
            remains LR1 and as a consequence we remove specialized
            selectors from the syntax and replace accordingly.

  <TabAtkins> (We still maintain the implicit requirement that
              Selectors syntax, like CSS parsing in general, should
              be a small finite amount of lookahead, of course. Just
              drop the strict requirement that it be LR(1),
              specifically.)

Consider making device-pixel-ratio a standard alias
---------------------------------------------------

  <astearns> https://github.com/w3c/csswg-drafts/issues/417
  Florian: Three parts. We have a MQ called resolution. It used to
           be -webkit-device-pixel-ratio. webkit name is common
           enough that non-webkit implementors are implementing.
           Compact spec documents this.
  <zcorpan> https://compat.spec.whatwg.org/
  Florian: Q1: Are we happy that this is only in compact spec or,
           given that it's implemented by all browsers should we
           inline into MQ spec?
  Florian: I think we can resolve on that first.
  TabAtkins: I'm for pulling into the full spec. We put it in a
             compat appendix and document in a core spec.
  <MaRakow> seems fine
  Florian: That would be my favorite thing to do.
  Rossen: Moving to a different spec means we'll pursue [missed]
  Florian: I'm not talking about device adaptation. The MQ spec.
           There's a compat spec that lists things that need to be
           prefixed.
  Rossen: What I'm saying is you won't take the prefix and put it in
          the MQ and say implement as the
          -webkit-device-pixel-ratio. But also un-prefixing it.
  Florian: That's Q2.
  Rossen: The resolution on Q1 weighs on Q2. If it's only about
          quirking and keeping up with that I'd prefer to keep it
          just in that spec. If we're evolving it would be good to
          pursue.
  <zcorpan> quirks spec and compat spec are different specs :-)

  Florian: This is a feature we have under a different name.
  astearns: We have it under a different name and the
            -webkit-device-pixel-ratio so it's compat not quirk.
  Rossen: We called compat quirks
  Florian: It's not the same thing.
  zcorpan: Quirks is things browsers have in their quirks. This is
           in all rendering modes so not a quirk.

  Rossen: Let's talk in compat. So adopt this and keep it moving
          forward or leave as is?
  Florian: Given this is an alternative name for an existing
           behavior that everyone has to impl we should put it in
           the spec.
  MaRakow: Do we have precedent? I think we should keep as if it's
           it's the same.
  Florian: People who do compat remove it from there if it goes
           mainstream.
  MaRakow: Then I'm happy both ways.
  Rossen: If we're not doing anything except put it in or spec
          what's the point? If we're planning on changing then let's
          move. That's why the decision of where to put it weighs on
          this.
  Florian: So part 2. Even if we don't resolve on doing anything
           other then adding it, if you impl MQ it's not sufficient
           to just use resolution. You must also do
           -webkit-device-pixel-ratio. So they belong in the same
           place.

  smfr: They're not the same. There's difference in zoom.
  Florian: They are. There's a difference between safari and
           everybody else. Everybody else treats them the same, but
           safari and everyone else doesn't do the same. Within each
           browser the names are consistent.
  smfr: I think authors using -webkit-device-pixel-ratio are IDing
        the iOS behavior. Since there's not software zoom on iOS
        it's the same as resolution but on mac desktop it's not the
        same.
  Florian: The standard name behavior on safari is the same. You
           treat both standard and non-standard the same. Which is a
           spec violation of resolution. If we should match safari
           is a relevant conversation, but there is no browser that
           treats the names differently. The two names do the same.
  MaRakow: When we implemented -webkit-device-pixel-ratio it didn't
           make a huge interop difference there. But there were
           cases with a ratio of 2 there was a difference. There may
           be benefit of specing it with a note to rec preferring 2.
           We didn't see issue with it being an alias of resolution.

  Florian: We've touched on all the points including the extra one
           if people should match safari.
  smfr: Webkit will impl resolution MQ as specified and if we do
        that there's little pressure to unprefix. We're okay with
        the difference on software zoom. I think
        -webkit-device-pixel-ratio should be historical.
  <MaRakow> +1 to smfr

  Florian: Mozilla while implementing -webkit-device-pixel-ratio
           felt uncomfortable when the standard name wasn't the same
           thing. So they wanted to add device-pixel-ratio. I don't
           think that helps anyone.
  MaRakow: I agree. It's a historical property.
  Rossen: And keep it in the compat spec. Agreed.
  Florian: So we seem to have easy agreement to not add unprefixed
           device-pixel-ratio to any spec.
  Florian: It's not in any browser.
  Rossen: Not in compat spec?
  Florian: Unprefixed is no where.
  Rossen: Oh, sorry.
  astearns: So who in Mozilla wanted to add the unprefixed?
  Florian: Someone with a github name I can't parse.
  MaRakow: dbaron mentioned it last time we talked. I think he felt
           uncomfortable adding prefixed without an unprefixed. I
           think he said it was unpleasant but didn't disagree.
  astearns: Objections to resolving not to add device-pixel-ratio
            (unprefixed)?

  RESOLVED: Do not add device-pixel-ratio unprefixed

  Florian: The remaining questions are tied. Do we want to
           acknowledge the existence of the prefixed version. If we
           want to pretend it doesn't exist we're fine. If we want
           to inline we have to agree on what it does. Do we want to
           leave it to the compat spec or is a CSS thing everyone
           has to impl?
  Rossen: We would prefer to leave it in the compat spec.
  Florian: That seems compat hostile.
  Rossen: I don't believe compat under-specifies.
  Florian: It doesn't say what it does.
  <zcorpan> Florian you can file an issue on the compat spec
  myles: Then why not change the compat spec?
  Florian: We don't maintain it.
  myles: That makes sense.

  Florian: Maybe my test is wrong, but from my testing...in all
           browsers neither resolution not
           -webkit-device-pixel-ratio are affected by pinch zoom. In
           all except safari both are affected by page. In safari
           neither are affected by page zooming. So browsers agree
           both names mean the same thing.
  astearns: Would it make sense to file an issue on the compat spec
            to say -webkit-device-pixel-ratio is an alias of
            resolution?
  Florian: That's what they say.
  astearns: So resolution is defined in our spec. If it just says
            they're aliases no matter what spec it's in doesn't much
            matter.

  Florian: I thought I heard smfr say is they're willing to fix
           their implementation of resolution to match the spec, but
           not -webkit-device-pixel-ratio and therefore they'll be
           similar but not same.
  smfr: We don't have a final decision, but that's my preference.
  Florian: Not my preferred solution, but...
  astearns: We're at top of hour and I'm not hearing consensus.
  Florian: Here's a proposed way forward. With this resolution I can
           close the issue. Currently the spec is clear these names
           do the same and safari is buggy. If safari wishes to
           change it can. Or it can file a bug on the spec. They're
           defined as an alias. If they wish that to change they can
           also file a bug.
  Florian: It seems safari hasn't made up their mind so we can't
           discuss it effectively for not.
  astearns: I think that's a good summary. We'll see for next week.
            I'll see if there's enough agenda items and if people
            will be around.

Received on Wednesday, 14 December 2016 20:05:21 UTC