[CSSWG] Minutes Santa Clara F2F 2014-10-27 Part I: CSS3 UI, ::selection and Pseudo-Elements issues

Agenda and Introductions
------------------------

  -This discussion to set the agenda held no technical details.

CSS3 UI
-------

  - RESOLVED: Add Florian as editor to CSS3 UI
  - There was general consensus that the pseudo-classes listed
      should only be in Selectors. They can move back into CSS3 UI if
      it seems like it will make progress a lot faster.
  - The pseudo-elements may be removed depending on if there's any
      implementations.
  - The values for text-overflow should be start/end instead of
      right/left

::selection and Pseudo-Elements issues
---------------------------------------

  - caret-color and text-shadow will be added as properties
  - The color change when text is selected was discussed in regards
      to what parts should change and what shouldn't, such as
      underlines and text-decorations. fantasai will look into the
      Microsoft implementation which was described as only the text
      and background are selected.
  - When text is replaced, it was suggested that the color should
      always be different to indicate the change.
  - When discussing the issue raised here:
      http://lists.w3.org/Archives/Public/www-style/2008Oct/0268.html
      it was agreed that the second option is the best choice and
      offers the most interoperability. It is, however, very hard to
      describe in prose, so anyone interested was asked to give it a
      look to see if there's a way to improve the description.
  - There will be more testing, specifically on IE, to see if it's
      better to have color inherit through a cascading thing with
      tree depth or having the inheritance go through the
      ::selection tree

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

Present:
  Tab Atkins
  Takao Baba
  David Baron
  Bert Bos
  Rick Byers
  Dave Cramer
  Arron Eicholz
  Elika Etemad
  Simon Fraser
  Sylvain Galineau (on phone)
  Daniel Glazman
  Richard Ishida
  Dael Jackson
  Dean Jackson
  Brad Kemper
  Ian Kilpatrick
  Peter Linss
  Michael Miller
  Shinyu Murakami
  Simon Pieters
  Keshav Puttaswamy
  Matt Rakow
  Florian Rivoal
  Jacob Rossi
  Andrey Rybka
  Narumichi Sakai
  Hiroshi Sakakibara
  Simon Sapin
  Dirk Schulze
  Alan Stearns
  Shane Stephens
  Bobby Tung
  Alan Turransky
  Lea Verou
  Ian Vollick
  Greg Whitworth
  Kazutaka Yamamoto
  Steve Zilles

Regrets:
  John Daggett

  Scribe: dael

Agenda and Introductions
------------------------

  [ This discussion to set the agenda held no technical details.]

CSS3 UI
=======

Status/Editorship
-----------------

  florian: I was looking at this document that's been stagnating.
  fantasai: I propose adding florian as editor.
  rossen: That's what happens when you look at document.
  glazou: tantek used to be editor. Did you ping him?
  florian: Nope.
  fantasai: He's not around.
  glazou: No, he's not, but you should let him know. Learning about
          it from a resolution isn't good.
  glazou: So no objections?

  RESOLVED: Add florian as editor to CSS3 UI, ping Tantek

CSS3 UI: selectors
------------------

  florian: I'll dive in deeper, but while we're on it there is a
           bunch of things about pseudo classes that are all in
           selectors.
  florian: I don't think they should stay here, they're better
           spec'ed elsewhere. Can we remove duplications?
  SteveZ: What's the status of them in selectors?
  florian: Some are in 3, but all are in 4.
  SteveZ: What's your expectation for progress? The main reason we
          stick things is in for progress.
  florian: It makes sense elsewhere.
  SteveZ: But it's for making sure there's progression. It makes
          sense in selectors, but if you need things to progress
          they should stay.
  fantasai: If CSS UI was close to CR it would make sense to leave
            it in selectors, but I can't tell what would make it to
            CR first. They both need cleanup.
  SteveZ: So based on that, pull them out and you can put them back
          if necessary.
  fantasai: And they're already in selectors.

  glazou: So the last copy on the TR is from 2012.
  florian: The ED is more recent, but needs to be cleaned before
           publication.
  florian: For pseudo-classes the selectors text is newer.

  florian: While we're in selectors, there's also pseudo-elements in
           the spec. They seem reasonable, but don't seem to have
           interest. Anyone care about what to do with them?
  fantasai: What are they?
  florian: Value choices, repeat item, repeat index.
  fantasai: If there's no implementations we should drop.
  Bert: It's hard to find implementation information because it's
        not in browsers. I think Steven Pemberton is here and we can
        ask him.
  florian: That's my feeling. It's probably not something used, but
           it's not inherently wrong.

  Action: Bert find Steven Pemberton and ask him about
          implementations
  <trackbot> Created ACTION-656

  fantasai: If there's none we should drop.

CSS3 UI: icon value/property
----------------------------

  florian: We also have a content property extension. The value is
           icon and lets you use icon which is a pointer to an image
           and lets you use that instead of having it be a child.
  florian: Right now it's described as applying to pseudo and
           elements, but as far as I know it's not web compatible
           for the content property to apply.
  fantasai: We have implementations in the print world. It stays and
            we need to figure out web compatibility.

  florian: And why is it called icon?
  fantasai: The idea is that it allows you to associate something
            that represents that element.
  florian: The ability to have a replaced element. That's reasonably
           nice. That images are normally used on content and aren't
           replaced make it hard to style.
  fantasai: This wasn't intended to solve that use case.

  dauwhe: Should we move this to generated content?
  fantasai: Does anyone use icon?
  ...
  fantasai: So we say this was a nice idea and we'll put it in the
            list of CSS4 ideas. I'm surprised it's still there.
  florian: It's marked as at risk.

CSS3 UI: text-overflow
----------------------

  <andreyr> http://www.w3.org/TR/css3-ui/#text-overflow
  florian: About text-overflow: there's probably a lot of issues.
           Superficially it references CSS3 marquee. It probably
           shouldn't. I don't know if we need a resolution for that.
           Also when you use the two value variant which lets you
           decide overflow at beginning and end.
  florian: Currently it says left and right, should we change to
           beginning and end?
  Rossen: Should be start and end.
  florian: Probably start and end, yes.

  glazou: Basic support is implemented. 2 value syntax is only
          Firefox and we don't have dbaron in the room. I'd love to
          hear from dbaron.
  florian: Sounds fair.
  glazou: But in theory we should do that.
  glazou: We do have consensus. It could be resolved, but he should
          be here and he's late.
  florian: There will be much more to come, but for this morning
           we're good.

  Bert: Can we go back to text-overflow? Where did you see
        left/right/start/end?
  florian: It says left/right.
  Bert: Where? It just says ellipsis.
  plinss: It uses both terminologies.
  Bert: Ah, got it.
  plinss: It's inconsistent. It's bad.

CSS3 UI: Miscellaneous
----------------------

  smfr: There's many cases where it's (outline) is for drawing boxes.
  florian: I think it belongs here.
  smfr: I think box-sizing and text-overflow do not belong on this
        spec.

  fantasai: tantek leans toward objecting to a new co-editor.
  glazou: There are no updates in 11 months and we need to make
          progress or we'll drop it. I'd rather add florian.
  glazou: Do you know where he (tantek) is?
  fantasai: I don't.
  glazou: Can you ask him to pay us a visit?
  fantasai: Yes.

  glazou: I have a question. The resize property...at least two
          browsers don't implement it. Opera is listed as not
          implementing because Presto. IE, are you planning to
          implement?
  Rossen: I think it's on our backlog. It's under consideration.
  florian: It's not objected to?
  Rossen: I don't think so, nope.
  ...
  krit: To come back to resize, what was the suggestion?
  glazou: I was just asking if IE would implement.

CSS3 UI: Status/Editorship (cont.)
----------------------------------

  glazou: Anything else on CSS3 UI?
  florian: Not for now.
  glazou: You're planning new stuff?
  florian: I'm starting with a cleanup.

  fantasai: tantek says if florian wants to help he can start on the
            wiki.
  glazou: I think the group had consensus because we think it'll be
          more productive to have him as an editor. I suggest we
          stick to our decision. Is that okay for everyone?
  [silence]
  glazou: Okay. We have consensus minus 1 person. It's a good
          consensus.

CSS Pseudo-elements: specifying ::selection
===========================================

  fantasai: Okay. Let me get the spec.

  <tantek> Good morning - I'm co-chairing the #social WG today and
           tomorrow but will be on IRC here too
  <tantek> ::selection latest info is in CSS3-UI issues wiki page
  <tantek> https://wiki.csswg.org/spec/css3-ui#issue-30
  <tantek> Still awaiting tests to answer questions raised in
           http://lists.w3.org/Archives/Public/www-style/2008Oct/0268.html
  <tantek> Until we have those tests, it doesn't make sense to try
           again with a spec.
  <tantek> Please capture any conclusions regarding ::selection in
           this CSS3UI issue:
           https://wiki.csswg.org/spec/css3-ui#issue-30
           I'll read changes there afterwards - can't follow line-by-
           line here in IRC right now.

  <fantasai> http://dev.w3.org/csswg/css-pseudo
  <fantasai> For the minutes:
https://dvcs.w3.org/hg/csswg/raw-file/9591381784e1/css-pseudo/Overview.html
  fantasai: We have dbaron's e-mail. Let's project the spec.
  <fantasai> dbaron's requirements were:
  <fantasai> 1. Selection style shouldn't vary on least common
                ancestor
  <fantasai> 2. Default selection style should be representable by
                UA rules
  <fantasai> 3. Authors should override systems default style
  <fantasai> 4. Background color and text color always cover
                original color
  <fantasai> 5. Authors can change within a particular element
  fantasai: I did some browser testing. I don't think we can solve
            the problem in #2

::selection: - Short Issues
---------------------------

  fantasai: I'll go through and we can talk about individual issues.

  fantasai: First issue is do we want to add other types of
            selection i.e. spelling errors.

  fantasai: Second is we don't have a way of distinguishing active
            and inactive selectors.
  bkardell: What is inactive?
  fantasai: When the window is inactive.

  fantasai: I'll skip 3 for now.

  fantasai: Issue 5 is which properties are here. I think just color
            and background color.
  leaverou: Text shadow.
  fantasai: I'll add that.

  Action: fantasai Add text-shadow
  <trackbot> Created ACTION-657

  fantasai: Anything else we should be considering?
  glazou: caret from CSS3 UI?
  fantasai: Okay.
  <leaverou> glazou: this caret?
             http://lists.w3.org/Archives/Public/www-style/2011Nov/0772.html

  bkardell: Would opacity make sense?
  fantasai: That would add stacking, but we can use RGBA.

  glazou: We don't have caret yet, but it will be proposed at some
          point in future.
  fantasai: So caret-color and text-shadow. Anything else?
            Definitely not layout stuff.
  adenilson: Maybe an issues link so we can open bugs in spec?
  fantasai: Yes, I think an issues list makes sense.
  fantasai: Point to Tantek's wiki
  <tantek> fantasai - it's not "my wiki" - it's the CSS3UI issues
           list on the CSSWG wiki

  adenilson: I just found a typo.

  r12a: Do we have to worry about Arabic joins being broken?
  fantasai: Anything written here needs to handle discontinuity.
  glazou: Is your idea to discuss how middle will be traded? Some
          systems that's the case.
  r12a: And I would guess CSS is a level above that.
  smfr: Webkit allows you to style text-emphasis with the color and
        text-fill color.

::selection: Representing Default Colors
----------------------------------------

  fantasai: The next issue is right now in implementations: if you
            don't specify a color then actual text is used and
            background is transparent. If you don't specify either
            you get system default. That means you can't have a
            default UA style rule that represents system color, it
            needs to be some kind of magic.
  fantasai: Seems like everyone represents it that way.
  fantasai: Blink, Gecko, and presto seem to do that. If IE doesn't
            it's possible to change things for requirement #2. But
            that's where we're at.
  fantasai: If we did change it we might be able to use the
            currentColor keyword so that behavior is representable.
            I think compat might be an issue here.

::selection: z-index of selection colors
----------------------------------------

  fantasai: It seems like the selection color and background is
            painted right over everything else, but under positioned
            things. That probably needs a bit more testing.

  fantasai: It seems implementations redraw text decorations over
            the highlight. I think if you're selecting text you
            should just see text. If you specify decorations on the
            selection of course you should see those. That the
            background being opaque doesn't hide text decorations
            seems weird to me.
  fantasai: What do others think?
  zcorpan: Does it look bad to redraw shadows/decorations?
  fantasai: It does since they maintain original color.
  fantasai: Let me give you a test case.
  <fantasai> http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cp%3E%3Cu%3Eselect%20me%3C%2Fu%3E
  fantasai: Black text with an underline. Select it and the text
            becomes white, line stays.
  fantasai: When you have decorations it might obscure text and make
            it hard to read. Other people might have a different
            perspective.

  fantasai: This one has text-shadow.
  <fantasai> http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cp%20style%3D%22font-size%3A%20200%25%3B%20text-shadow%3A%20red%203px%203px%203px%22%3E%3Cu%3Eselect%20me%3C%2Fu%3E
  fantasai: The coloring changes and text flattens to the two
            colors, but the text decorations are wild.
  smfr: This isn't how webkit works on a mac.
  fantasai: I noticed, but no one else does that.
  astearns: Firefox on mac is the same.
  fantasai: If you do an alpha thing on top, showing through makes
            sense.
  fantasai: But in Linux it's repainted on top of that background.
  <Bert> 4x

  Rossen: What do you propose?
  fantasai: That the background color of the selection obscures
            text-decorations as if it's painted on top. So you draw
            the selection background color over the text and repaint
            the text.
  Rossen: So you'd have shadows bleed behind the selection?
  fantasai: If your selection color is opaque you don't see shadows.
  Rossen: And if it extends beyond?
  fantasai: You'd see it beyond.
  fantasai: If you have a red blurry shadow on your text and you
            select it, the section becomes the default colors. I
            feel either you shouldn't see the colors or it should be
            a color that belongs to the text selection.
  Rossen: I think most of the...our selection is highly optimized to
          be as cheap as possible for render so we don't re-blend
          most of the things that we do for other types of changes
          when we do selection.
  Rossen: If this is something we need to worry about today I'm not
          sure.
  Rossen: Historically, our selection was just the selection
          background with the text and that's it.
  fantasai: I'll look at what you did.

  <bkardell> Maybe it would be good to show visual representations
             of these rather than verbal descriptions... I think it
             should be like this picture, not this one.

::selection - Highlighting Replaced Elements
--------------------------------------------

  fantasai: So. Next thing is for what I've tested: Require a
            semi-transparent item wash over what you've selected.
            Firefox and, I think, Opera just uses default selection
            color. Webkit uses same color as selection background.
            But if it's transparent you can't tell the replaced item
            is selected.
  fantasai: I took what they did and extended it: for non-replaced
            content the UA should honor the specified color/bg,
            but for replaced content they should do a wash of the
            bgcolor, and if it's transparent you should use the
            foreground color to create the wash.
  fantasai: Replaced content can be foreground, or background, or a
            mix. I think it's better that if you don't have a color
            you can still tell what's selected and you're in the
            same color scheme.
  fantasai: I'll take comments on that. If you don't like it we can
            use system colors for the wash. I don't know.

::selection - Area of Selection
-------------------------------

  zcorpan: If you spec where the background should be painted and it
           doesn't match the platform, that seems weird.
  fantasai: We do require that... I have to say something about
            where you're drawing. I say you have to cover the text
            and may do more.
  fantasai: I have a minimum set of requirements as to what you
            cover which is the em-box of all the text. But you can do
            more than that in order to match patform conventions.
  fantasai: If we need looser wording I can do that, but having a
            guideline makes sense.

::selection - Cascade
---------------------

  fantasai: So let's go back to dbaron's issue now that he's here.
  <dbaron> I presume the email you're talking about is
           http://lists.w3.org/Archives/Public/www-style/2008Oct/0268.html
  fantasai: There were 3 solutions to dbaron's requirements.
  fantasai: First was each element is its own ::selection and if you
            style them all they paint on top of each other. Problem
            is if you have a background color with alpha they start
            to stack as you get deep into tree.
  fantasai: No one implements it and it's bad.

  fantasai: Second two options were the selectable area of each
            element belongs to the innermost element. What happens
            if you have two elements styling the same thing? If you
            have rules doing both how do you sort between the two?
  fantasai: Browsers do solution B. Check the tree depth as most
            important to decide color.
  fantasai: Downside is suppose you style ::selection and
            p::selection, if you select a <p> with a <span>, inside
            the <span> the the ::selection style, not the
            p::selection style, applies.
  fantasai: We wanted the default style represented as ::selection.
            But it would have to be :root::selection to get the
            overriding correct.
  fantasai: It seems where I tested (and I didn't test IE) all
            followed B. So it's not incompatible and it's more
            straightforward than C.

  glazou: I'm confused. You have a p with a span inside. You said
          you don't use the p::selection?
  fantasai: Because ::seletion is shorthand for *::selection. They
            both get assigned the ::selection rules.
  fantasai: p has a more specific rule, but the span has its own
            rule and within the span, we use its own rules.
  glazou: Why did we want ::selection to not apply to the span?
  fantasai: It was confusing to some people, who thought that
            ::selection set the default rule for the document.
            When this was written with the various solutions,
            there was there a way to have ::selection have that
            expected behavior.
  fantasai: But this behavior is consistent with how selectors
            normally work, and we have interoperability on standard
            behavior. So you cascade by depth then specificity.

  <jcraig> why not just change the selector to "p::selection,
           p *::selection"

  dbaron: Do browsers match the details of option B? Specificity
          stuff?
  fantasai: Yes. I think so.
  fantasai: Let me double check.
  fantasai: I did the testing yesterday.
  dbaron: I guess. Okay. I believe that. C was the crazy thing.
  fantasai: We seem to have interop on B. I think that's what we
            should go with.

  fantasai: Trying to describe B is hard. Anyone interested should
            read it and tell me if there's a better way.

::selection - Representing Default Colors (cont.)
-------------------------------------------------

  fantasai: One requirement was system colors should be
            representable as a UA. Right now if you don't set color
            or background, we treat background as transparent and we
            don't fall back to default.
  dbaron: Is that interoperable?
  fantasai: On many, but I haven't tested IE.
  dbaron: Because that sounds weird.
  fantasai: If IE does that we probably can't change it.
  fantasai: But if it doesn't do that, then we're saved and we can
            fix that.

::selection - Inheritance
-------------------------

  fantasai: I think that's an overview of all the issues.
  fantasai: Oh, one more. Each element draws it's own portion of the
            highlight. When multiple elements conflict, the winning
            one belongs to innermost after cascade.
  fantasai: What do we want inherit to inherit from? So one option
            was to inherit from the original. The other is
            ::selection pseudo inherits through its own trait.
  fantasai: If you want to unset things, we have an unset keyword so
            that's possible.
  dbaron: That would need to be defined pretty carefully for
          background inherit.
  fantasai: Yeah. Now that I think about it color has to inherit
            through ::selection tree. Initial behavior is inherit.
            What is the value if it's not...
  dbaron: You could define them as not having inheritance and just
          cascade.
  dbaron: Or with B: with cascade by tree depth, as long as it
          happens before inheritance, you don't have to worry if you
          say tree depth is part of cascading process. Then it is
          moot.
  fantasai: Right. Okay...

  fantasai: I guess the question is which sounds worse. Making tree
            depth a cascading thing or having inheritance through
            ::selection tree.
  dbaron: I don't know and you can probably distinguish through
          testing which is worth doing.
  fantasai: I know. I have implementations for both, basically.
  dbaron: If there's implementations for both I don't have a strong
          opinion.
  fantasai: I'll poke around with IE. I don't have any testing on
            that yet.

CSS Pseudo-elements - Status
----------------------------

  glazou: So are we done?
  fantasai: I think that's all the issues.

  glazou: Before we move on, I suggest we do the first coffee break.

  fantasai: We could do pseudo spec overall, first.
  fantasai: I bikeshedded the whole spec, I cleaned the first style
            bits. There was a CSS OM section that I haven't deleted.
            I didn't know what the WG wanted it there.
  glazou: I don't know if it makes sense if you removed multiple
          before/after.
  astearns: Some of it does not.
  glazou: I can take an action to review.

  Action: glazou review pseudo spec based on edits.
  <trackbot> Created ACTION-658

  glazou: Anything else?
  [15 minute break]

Received on Thursday, 18 December 2014 01:41:32 UTC