IRC log of css on 2019-06-04
Timestamps are in UTC.
- 13:01:27 [RRSAgent]
- RRSAgent has joined #css
- 13:01:27 [RRSAgent]
- logging to https://www.w3.org/2019/06/04-css-irc
- 13:01:29 [trackbot]
- RRSAgent, make logs public
- 13:01:29 [Zakim]
- Zakim has joined #css
- 13:01:31 [trackbot]
- Meeting: Cascading Style Sheets (CSS) Working Group Teleconference
- 13:01:31 [trackbot]
- Date: 04 June 2019
- 13:01:39 [dbaron]
- Zakim, remind us in 9 hours to go home
- 13:01:39 [Zakim]
- ok, dbaron
- 13:02:03 [dbaron]
- Meeting: Cascading Style Sheets (CSS) Working Group Face-to-face meeting
- 13:03:42 [jlin]
- jlin has joined #css
- 13:05:12 [una]
- una has joined #css
- 13:09:19 [jihye]
- jihye has joined #css
- 13:09:19 [dauwhe]
- present+
- 13:10:04 [stantonm]
- stantonm has joined #css
- 13:13:58 [rachelandrew]
- present+
- 13:18:36 [antonp]
- antonp has joined #css
- 13:23:21 [jihye]
- present+
- 13:25:04 [heycam]
- present+
- 13:25:43 [myles]
- myles has joined #css
- 13:26:06 [astearns]
- present+
- 13:26:09 [myles]
- present+ myles
- 13:26:12 [fremy]
- fremy has joined #css
- 13:27:43 [heycam]
- ScribeNick: heycam
- 13:27:43 [jensimmons]
- jensimmons has joined #css
- 13:27:57 [jensimmons]
- present+
- 13:28:00 [Rossen_]
- Rossen_ has joined #css
- 13:28:01 [flackr]
- present+
- 13:28:15 [TabAtkins]
- present+
- 13:28:19 [Rossen_]
- Rossen Atanassov, Microsoft
- 13:28:22 [astearns]
- Alan Stearns, Adobe
- 13:28:25 [flackr]
- Rob Flack, Google
- 13:28:36 [jihye]
- Jihye Hong, LGE
- 13:28:38 [oriol]
- Oriol Brufau, Igalia
- 13:28:40 [tantek]
- tantek has joined #css
- 13:28:40 [AmeliaBR]
- AmeliaBR has joined #css
- 13:28:47 [dbaron]
- L. David Baron, Mozilla
- 13:28:51 [heycam]
- Cameron McCormack, Mozilla
- 13:28:52 [TabAtkins]
- Tab Atkins, Google
- 13:28:56 [AmeliaBR]
- Amelia Bellamy-Royds, Invited Expert
- 13:29:05 [bkardell_]
- bkardell_ has joined #css
- 13:29:05 [stantonm]
- Stanton Marcum, Amazon
- 13:29:06 [koji]
- Koji Ishii, Googe
- 13:29:07 [jensimmons]
- Jen Simmons, Mozilla
- 13:29:10 [tantek]
- Tantek Çelik, Mozilla
- 13:29:11 [rachelandrew]
- Rachel Andrew, Fronteers
- 13:29:13 [tantek]
- present+
- 13:29:19 [AmeliaBR]
- present+
- 13:29:22 [bkardell_]
- Brian Kardell, Igalia and JS Foundation
- 13:29:23 [chris]
- chris has joined #css
- 13:29:26 [bkardell_]
- present+
- 13:29:30 [una]
- present+
- 13:29:56 [myles_]
- myles_ has joined #css
- 13:29:57 [dauwhe]
- Dave Cramer, Hachette Livre
- 13:29:59 [chris]
- present+
- 13:30:07 [hober]
- hober has joined #css
- 13:30:08 [florian]
- Florian Rivoal, Invited Expert
- 13:30:19 [florian]
- present+
- 13:30:39 [heycam]
- Topic: additional resource state pseudo-classes for media elements
- 13:30:44 [heycam]
- github: https://github.com/w3c/csswg-drafts/issues/3821
- 13:30:45 [bkardell_]
- s/JS Foundation/Open JS Foundation
- 13:31:08 [iank_]
- Ian Kilpatrick, Google
- 13:31:10 [heycam]
- hober: we currently have playing and pause pseudo classes, which media elements match when they are playing or paused
- 13:31:18 [fremy]
- present+
- 13:31:21 [heycam]
- ... the use case is, things like custom media controls, with a unified play/pause button
- 13:31:34 [oriol]
- present+
- 13:31:38 [heycam]
- ... there are a handful of other common media element states that have a similar rationale for exposing to CSS
- 13:31:45 [heycam]
- ... stuff that people are currently using script for
- 13:31:50 [heycam]
- ... this issue is the 3 easy ones
- 13:31:59 [heycam]
- ... 1 is whether or not the element is muted
- 13:32:10 [heycam]
- ... you may have a mute button, styled volume slider
- 13:32:13 [heycam]
- ... very similar to playing/paused
- 13:32:17 [heycam]
- ... hope it's uncontroversial
- 13:32:20 [heycam]
- ... other 2 are a bit weird
- 13:32:28 [heycam]
- ... the HTMl spec has a concept of media being stalled
- 13:32:44 [heycam]
- ... and you can see examples of custom UI when media is stalled on popular sites like YouTube, netflix
- 13:32:47 [heycam]
- ... the spinner looks different
- 13:32:55 [heycam]
- ... if we could provide styling for that it would be nice
- 13:33:03 [hober]
- present+
- 13:33:15 [dbaron]
- Present+
- 13:33:16 [tantek]
- q+ to ask about "buffering" vs. "streaming connection broken" (have seen different UI)
- 13:33:20 [heycam]
- ... the 3rd one is: media elements have a seeking state, which is useful for cases like when you are displaying custom controls, but seeking is happening due to other controls
- 13:33:37 [heycam]
- ... maybe seeking with a remote control, but you want you custom control to do a different thing
- 13:33:37 [tantek]
- FYI: https://html.spec.whatwg.org/multipage/media.html#htmlmediaelement
- 13:33:44 [heycam]
- ... so the HTML spec has the right hooks here
- 13:33:49 [heycam]
- ... just need something in CSS to expose them
- 13:33:59 [heycam]
- ... so 3 proposed pseudo classes: muted, stalled, seeking
- 13:34:03 [heycam]
- florian: what is seeking as a state
- 13:34:12 [heycam]
- hober: while you're seeking. if you using the scrubber
- 13:34:16 [heycam]
- AmeliaBR: like an active state
- 13:34:17 [fremy]
- q+ to talk about additional states
- 13:34:27 [TabAtkins]
- q+
- 13:34:39 [Rossen_]
- ack dbaron
- 13:34:39 [Zakim]
- dbaron, you wanted to ask whether :muted would cover tab-level, app-level, or system-level muting (I suspect not, but want to ask)
- 13:34:47 [heycam]
- dbaron: there's ofte na lot of ways to mute something
- 13:35:01 [heycam]
- ... my guess here this ignores your tab is muted, hardware control is muted, is that right?
- 13:35:12 [Rossen_]
- q?
- 13:35:22 [heycam]
- hober: I think that's right. but I'm not sure. I think this shouldb e tied to the host lang's definition
- 13:35:26 [heycam]
- dbaron: ok so the HTML definition
- 13:35:27 [tantek]
- ack tantek
- 13:35:27 [Zakim]
- tantek, you wanted to ask about "buffering" vs. "streaming connection broken" (have seen different UI)
- 13:35:29 [Rossen_]
- ack tantek
- 13:35:43 [heycam]
- tantek: I like the general direction of the proposal, +1 on them. even the less common features
- 13:36:00 [heycam]
- ... this shook loose memories of things I worked on right before Mozilla, doing HTML5 consulting, setting up video UIs
- 13:36:07 [heycam]
- ... took a bunch of notes which I forgot about that
- 13:36:13 [heycam]
- ... I needed this in 2010
- 13:36:40 [heycam]
- ... the :stalled pseudo class, I've seen different UI between buffering to show something, vs the network connection is gone
- 13:36:47 [heycam]
- ... even if you're in this "I want to play" state
- 13:36:52 [heycam]
- ... wondering if it's worth distinguishing
- 13:37:00 [heycam]
- hober: I agree there's a use case there
- 13:37:04 [florian]
- +1 to tantek
- 13:37:10 [heycam]
- ... I think network state is a little more general. that's going to affect hte page, not just the media elements
- 13:37:15 [heycam]
- tantek: but that's a differnt can of worms
- 13:37:21 [heycam]
- hober: I'd rather tacklet that as a different thing
- 13:37:22 [Rossen_]
- q?
- 13:37:28 [heycam]
- tantek: I'm saying I'd rather not, since it is a can of worms
- 13:37:39 [heycam]
- hober: could you propose another pseudo for this?
- 13:37:52 [heycam]
- tantek: do you want one pseudo that means either of that? two for the specific states?
- 13:38:01 [heycam]
- hober: I'd be happy to delegate this to HTML
- 13:38:12 [heycam]
- ... some HTML spec refactoring is needed anyway, for stalled
- 13:38:17 [heycam]
- ... from our perspective, we'd defer to the host language
- 13:38:20 [jensimmons]
- do these apply to <audio> as well as <video>? I’d assume so…
- 13:38:23 [heycam]
- tantek: specifially the HTML media element interface?
- 13:38:24 [heycam]
- hober: yes
- 13:38:46 [jensimmons]
- q+
- 13:38:50 [heycam]
- emilio: images have differnet set of states. broken, loaded. Gecko hsa internal pseudos for these
- 13:38:57 [Rossen_]
- q?
- 13:38:59 [heycam]
- ... I wonder if it is useful to try to expose a common set of pseudos
- 13:39:09 [heycam]
- fremy: I was going ot suggest the same
- 13:39:20 [heycam]
- hober: in the past when this has come up, we've agreed we should have more general subresource state exposing
- 13:39:26 [heycam]
- ... was hoping to not get bogged down on that too much
- 13:39:34 [heycam]
- ... there's specific use cases for media in custom media controls
- 13:39:34 [tantek]
- note that the HTMLMediaElement does distinguish network state a bit: NETWORK_EMPTY, NETWORK_IDLE, NETWORK_LOADING, NETWORK_NO_SOURCE
- 13:39:42 [heycam]
- ... I agree it should be coherent with a more general thing
- 13:39:46 [heycam]
- ... so we should keep that in mind
- 13:39:54 [heycam]
- ... but the last few times it's come up over 10 years, we end up not doing it
- 13:39:57 [dbaron]
- https://github.com/w3c/csswg-drafts/issues/3134 is about image state pseudo-classes
- 13:40:10 [Rossen_]
- ack fremy
- 13:40:10 [Zakim]
- fremy, you wanted to talk about additional states
- 13:40:15 [heycam]
- fremy: we don't need to standardize pseudos for all possible cases
- 13:40:24 [jensimmons]
- anything to make doing this kind of stlying possible, without replacing everything with JS, would be ideal: https://thewebahead.net/110
- 13:40:28 [heycam]
- ... you say you're sticking to the HTML spec's state. ther's already an error state in there
- 13:40:34 [heycam]
- hober: I'm happy for someone to propose those
- 13:40:46 [heycam]
- fremy: seems reasonable to want to style them differently if you're on the network, etc.
- 13:40:56 [heycam]
- ... in the specific cases for media controls you do want to know about the network state
- 13:41:16 [heycam]
- ... in my initial proposal it was with video in mind. I think it's a good idea to see how we can map them
- 13:41:24 [heycam]
- ... if you end up in an error state, you want to show that in the UI
- 13:41:46 [tantek]
- q+ to ask if :seeking is *while* the user is dragging the seeker, only upon release, or both?
- 13:41:57 [heycam]
- TabAtkins: hober's list of things are video specific
- 13:41:57 [Rossen_]
- ack TabAtkins
- 13:42:00 [heycam]
- ... two specific questions
- 13:42:01 [jensimmons]
- q-
- 13:42:09 [heycam]
- ... 1st, the current definition of playing says it subsumes seeking and stalled
- 13:42:15 [heycam]
- ... keeping that?
- 13:42:16 [heycam]
- hober: yes
- 13:42:36 [heycam]
- TabAtkins: ok cool. 2nd, :muted is good, do we want a general volume state? low-volume high-volume?
- 14:03:42 [RRSAgent]
- RRSAgent has joined #css
- 14:03:42 [RRSAgent]
- logging to https://www.w3.org/2019/06/04-css-irc
- 14:03:46 [heycam]
- ... currently, if you set the volume from script, and it doesn't work, you can tell?
- 14:03:46 [heycam]
- hober: yes
- 14:03:47 [fremy]
- @hober: `:user-locked-volume` ?
- 14:03:55 [Chris__]
- Chris__ has joined #css
- 14:03:55 [heycam]
- AmeliaBR: if I mute the whole laptop, is that included in this?
- 14:03:56 [Zakim]
- Zakim has joined #css
- 14:04:12 [heycam]
- hober: I don't know if system muted state on desktop OS affects that
- 14:04:18 [heycam]
- ... if it did, I would expect it to affect this
- 14:04:21 [chris]
- rrsagent, here
- 14:04:21 [RRSAgent]
- See https://www.w3.org/2019/06/04-css-irc#T14-04-21
- 14:04:32 [heycam]
- AmeliaBR: either way there's a clear defn in HTML? and it's already exposed to script?
- 14:04:32 [heycam]
- hober: yes
- 14:04:44 [heycam]
- hober: AmeliaBR proposed :adjustable-volume. so it's the opposite of that
- 14:04:57 [jensimmons]
- q+
- 14:04:59 [heycam]
- TabAtkins: :volume-locked
- 14:05:10 [heycam]
- ... expresses the semantic that you'd style on, doesn't need :not()
- 14:05:36 [heycam]
- ... but given other suggestion for a volume pseudo, you could merge this into a pseudo that takes a keyword
- 14:05:40 [TabAtkins]
- https://www.irccloud.com/pastebin/rPsIGCzk/
- 14:05:48 [heycam]
- hober: on Windows, muted and volume are independent states
- 14:05:56 [heycam]
- :volume( locked || muted || <volume-value> )
- 14:05:56 [heycam]
- <volume-value> = [ '<' | '>' ] '='? [ <number [0,1]> | <percentage [0%,100%]> ]
- 14:06:08 [fremy]
- +1 on TabAtkins's proposal
- 14:06:11 [astearns]
- ack florian
- 14:06:20 [heycam]
- florian: I don't think this varies per element. maybe a MQ is better?
- 14:06:27 [heycam]
- hober: I think the use case is tied to media controls
- 14:06:35 [heycam]
- florian: but you can't have one media element which is locked and one is not?
- 14:06:39 [Rossen_]
- q+ fremy
- 14:06:43 [heycam]
- hober: I think it makes sense to be symmetric with the other pseudos
- 14:06:50 [heycam]
- ... but I concede the point it's a system wide thing
- 14:06:56 [fremy]
- q-
- 14:07:07 [Rossen_]
- ack jensimmons
- 14:07:18 [heycam]
- jensimmons: a few quick examples in the thread
- 14:07:23 [TabAtkins]
- :volume(locked < 50%), for example
- 14:07:31 [dbaron]
- s/a few/request a few/
- 14:07:32 [heycam]
- hober: of Tab's syntax, or when you would use this?
- 14:07:33 [TabAtkins]
- :volume(muted)
- 14:07:34 [heycam]
- jensimmons: when you'd use it
- 14:07:42 [florian]
- q+
- 14:07:53 [hober]
- div.controls:volume(locked) .volume { display: none; }
- 14:07:57 [heycam]
- TabAtkins: for :volume(locked), you'd display:none your custom volume button
- 14:08:20 [heycam]
- AmeliaBR: should the pseudo refer to the fact that the volume control works or wouldn't work
- 14:08:23 [heycam]
- hober: my case is for the latter
- 14:08:28 [TabAtkins]
- `video:volume(locked) + .controls > .volume { display: none; }`
- 14:08:29 [heycam]
- ... shouldn't display if it's going to be futile
- 14:08:37 [Rossen_]
- q?
- 14:08:49 [heycam]
- fremy: if you set vol to 0, that stil lmutes the video?
- 14:08:55 [heycam]
- hober: depends on the platform
- 14:09:01 [heycam]
- ... not on Windows. unmuted at volumnet 0
- 14:09:18 [heycam]
- hober: on iOS you can mute audio tracks on media elements
- 14:09:25 [heycam]
- fremy: using volume 0?
- 14:09:27 [heycam]
- hober: using .muted
- 14:09:43 [heycam]
- chris: when you unmute you want to go back to the old volume
- 14:10:03 [heycam]
- florian: for this one and the prev one, wondering if this is practical as a pseudo, given the controls aren't usually a descendant
- 14:10:06 [heycam]
- hober: it's often a sibling
- 14:10:16 [Rossen_]
- ack florian
- 14:10:22 [heycam]
- hober: that's the same as the existing :play / :paused pseudos
- 14:10:35 [heycam]
- hober: I really like Tab's locked suggestion. either as the one off or the general proposal
- 14:10:47 [heycam]
- ... since we resolved on :muted. I'm happy to resolve on :volume-locked, and discuss merging later
- 14:11:03 [heycam]
- AmeliaBR: for the parenthesized idea, volume(max/min) might also be useful
- 14:11:21 [heycam]
- TabAtkins: are min/max different from 0% / 100%?
- 14:11:29 [heycam]
- AmeliaBR: do we want to expose %s in a selector?
- 14:12:02 [heycam]
- emilio: we don't have any other pseudos with numeric values inside them
- 14:12:14 [heycam]
- hober: I think it's a good argument for going with the one off for now
- 14:12:41 [heycam]
- RESOLVED: Add :volume-locked.
- 14:13:48 [heycam]
- Topic: :has and :within selectors
- 14:14:18 [heycam]
- bkardell_: we had 100 proposals to get around not having these. they're all happening in their own worlds, would be good to have some of us try to wrangle those into something coherent
- 14:14:24 [heycam]
- ... to make sure we answer the use cases that exist
- 14:14:34 [heycam]
- .. would anyone be interested in working on that with me?
- 14:14:59 [heycam]
- florian: there's a long tail of something somethin within that are all kind of reasonable. but not reasonable to have 50 different selectors
- 14:15:24 [heycam]
- ... I think there were impls constraints in Gecko that within is doable, you can do 2 or 3, but not 50
- 14:15:48 [heycam]
- florian: so should we fit which things are more worthy, but if we're going to do :has() ...
- 14:15:52 [heycam]
- emilio: doing :has() seems harder than adding more bits
- 14:16:01 [heycam]
- bkardell_: is there a limited thing that's not :has()?
- 14:16:06 [heycam]
- ... to cover enough use cases?
- 14:16:12 [heycam]
- AmeliaBR: a simple selector inside?
- 14:16:20 [heycam]
- emilio: the reason within is more reasonable is you know what you're going to match against
- 14:16:40 [heycam]
- ... do don't need to walk the whole subtree
- 14:16:48 [tantek]
- which issue are we discussion?
- 14:16:55 [tantek]
- q?
- 14:17:03 [heycam]
- AmeliaBR: it's the diff between "focus changed, let's focus-within all the ancestors, vs generic selector match start from an ancestor"
- 14:17:13 [heycam]
- fremy: for useful but less frequent, you could have a single bit
- 14:17:16 [heycam]
- emilio: :something-within
- 14:17:37 [heycam]
- fremy: but still have 50 different pseudso
- 14:17:49 [fantasai]
- fremy: maybe just have an "other" bit that catches everything, and pull out the ones that are populare into their own bits
- 14:17:54 [heycam]
- s/fremy/florian/
- 14:18:07 [heycam]
- ^ that's two lines up fremy
- 14:18:37 [heycam]
- bkardell_: as an author this was my #1 frustration
- 14:18:45 [heycam]
- ... if we know we can't do it, let's admit it
- 14:18:56 [heycam]
- TabAtkins: was my impression that generic :has we don't expect to be possible to impl reasonably
- 14:19:07 [heycam]
- AmeliaBR: I think there's agreement on the authoring use case, constraint is the impl side
- 14:19:21 [heycam]
- ... people faimilar with selector matching engines should get together to hash out what's practical
- 14:19:37 [tiger]
- tiger has joined #css
- 14:19:46 [heycam]
- fantasai: it's doable, just not easy
- 14:19:49 [heycam]
- florian: not performantly enough
- 14:20:07 [heycam]
- fantasai: if someone were to figure out how to impl it performantly ...
- 14:20:10 [tantek]
- what I'm hearing is: needs incubation
- 14:20:17 [heycam]
- TabAtkins: it will never be performant to do body:has(...)
- 14:20:19 [tantek]
- let's punt it to WICG
- 14:20:27 [Rossen_]
- q?
- 14:20:33 [fantasai]
- emilio: you can use memory instead of time...
- 14:20:57 [dbaron]
- (There's also the side question of whether :subject might be more implementable than :has()...)
- 14:21:02 [heycam]
- AmeliaBR: the other side to attract. if the way forward is with dedicated something-within selectors, we should know from author side what the demand is
- 14:21:11 [heycam]
- bkardell_: I just want to know how to move forward
- 14:21:20 [heycam]
- emilio: if someone wants to impl :has I'm happy to mentor...
- 14:21:27 [tantek]
- bkardell: "need a group of people to figure out how to move forward"
- 14:21:31 [heycam]
- fantasai: :has-child is a lot easier to impl, that would solve many use cases still
- 14:21:32 [tantek]
- sounds like a WICG effort
- 14:22:18 [heycam]
- Topic: Password reveal pseudo-element and pseudo-class
- 14:22:20 [heycam]
- https://github.com/w3c/csswg-drafts/issues/3934
- 14:22:22 [fantasai]
- github: https://github.com/w3c/csswg-drafts/issues/3934
- 14:22:36 [heycam]
- fantasai: Greg posted an issue where he wanted to ask for a pseudo-element
- 14:22:39 [heycam]
- dbaron: and pseudo clas
- 14:22:49 [heycam]
- fantasai: for when passwords have a show the password switch
- 14:23:13 [heycam]
- dbaron: [demos what the Windows UI looks like]
- 14:26:14 [heycam]
- dbaron: in many cases, users with good 30 char passwords, want to make sure they didn't make a typo
- 14:26:21 [heycam]
- ... Edge has this, and it's nice
- 14:26:32 [heycam]
- hober: sites work around this by writing terrible scripts to change input type=password
- 14:26:37 [heycam]
- emilio: that is a security issue
- 14:26:43 [heycam]
- hober: harder for password autofill to work
- 14:26:59 [fremy]
- q+
- 14:27:08 [heycam]
- jensimmons: is the proposal to create a pseudo to style the two states?
- 14:27:19 [heycam]
- AmeliaBR: the proposal is to style it if the UA provides it
- 14:27:29 [heycam]
- dbaron: two pieces. one piece is a pseudo class that matches the control as a whole, when the pw is revealed
- 14:27:31 [chris]
- Android also has this reveal-password button
- 14:27:40 [heycam]
- ... the other is a pseudo element, that matches the toggle thing, so you can use a different image for it
- 14:27:40 [florian]
- q+
- 14:27:48 [heycam]
- fantasai: my qn is, is it important to make this stylable?
- 14:28:24 [heycam]
- Rossen_: that's what we started with. back in IE 10, there was a demand for this, botth the x button on input type text, and the reveal on password
- 14:28:39 [tantek]
- the "x" button? is that the "clear field" button?
- 14:28:41 [heycam]
- ... and so there was a lot of web sites that started to fight with the pseudo. until they figured out how to use it
- 14:28:46 [heycam]
- ... at the time, it was a prefixed impl
- 14:29:00 [heycam]
- Rossen_: most sites ended up with two "x"s, or two reveal buttons
- 14:29:08 [fremy]
- @tantek: yes
- 14:29:22 [heycam]
- ... having a predictable way to turn it off, at least, is why we ended up with this being stlyable
- 14:29:36 [heycam]
- fantasai: I'm figuring there's a use case for having it. but is the use case strong for stylable?
- 14:29:49 [heycam]
- Rossen_: it's as much as making any other control stylable. should contrls be looking native? stylable?
- 14:30:01 [jensimmons]
- q+
- 14:30:01 [dbaron]
- (another thing that goes wrong when people use input type=text for things that are actually passwords is that mobile keyboards might try to remember the password for their autocompletion, whereas I think they're pretty good about not remembering things that go in password controls)
- 14:30:05 [heycam]
- fantasai: but it should be keying off the font?
- 14:30:11 [heycam]
- ... should use the same color and size as the text inside the box
- 14:30:16 [heycam]
- Rossen_: by default that's our Edge behavior
- 14:30:20 [heycam]
- ... not sure what every author will want
- 14:30:26 [myles_]
- myles_ has joined #css
- 14:30:31 [heycam]
- ... they might want this google style button with a large eye
- 14:30:41 [myles_]
- q+
- 14:30:42 [fremy]
- q-
- 14:30:52 [tantek]
- "large eye" so is that asking for both dimensions and image customizability?
- 14:30:55 [heycam]
- una: every time I see form elements, I can see designers wanting to match brand styling
- 14:31:11 [heycam]
- ... makes sense to adjust the element with a pseudo. that's a common pattern, would be good to make it easier for developers
- 14:31:19 [Rossen_]
- q?
- 14:31:23 [AmeliaBR]
- q+
- 14:31:31 [Rossen_]
- ack florian
- 14:31:44 [heycam]
- florian: 2 points. I'm confused by the pseudo class, not so much with the pseudo element apart from hiding it
- 14:31:56 [heycam]
- ... just changing the color of it sounds weird
- 14:32:10 [fremy]
- @Chris__: (to answer your long-gone question, the Edge one used a push-to-reveal as well, but for screen readers, that wasn't possible, so we switched to push-to-toggle-reveal instead so that screen readers can switch to text input)
- 14:32:11 [fantasai]
- s/weird/weird if you don't know really what it is/
- 14:32:15 [heycam]
- ... second, we have from a year back, a resolution for something that hasn't made it into a spec, which is complementary to this
- 14:32:23 [heycam]
- ... opt in for a non-password field to look like a password field
- 14:32:32 [una]
- q+
- 14:32:32 [heycam]
- ... I think we resolved on something in CSS UI to opt in to the hidden display
- 14:32:37 [heycam]
- ... these two thins probably interact
- 14:33:02 [heycam]
- dbaron: one thing I missed saying is that the intent of the pseudo element that the things that are stylable are widht, height, background-image
- 14:33:11 [heycam]
- Rossen_: and it could have state
- 14:33:19 [heycam]
- ... if it's sticky, e.g.
- 14:33:29 [astearns]
- yeti peeking at your password UI: https://codepen.io/ankitashodhan/pen/mxxjpY
- 14:33:48 [Rossen_]
- q?
- 14:33:55 [Rossen_]
- ack jensimmons
- 14:34:09 [heycam]
- jensimmons: I agree with una that the use case is strong. replacing the eyeball with an icon that matches the styling of the site is one
- 14:34:20 [heycam]
- ... someone might want to put a red border around the input when pw is revealed
- 14:34:36 [heycam]
- ... I think CSSWG so far has been reluctant to allow styling of form controls
- 14:34:48 [heycam]
- ... but this is a newer one, and i think we're moving towards solving stylability
- 14:34:51 [Rossen_]
- ack myles_
- 14:34:56 [fremy]
- For people curious, here is when we standardized Apple's proposal:
- 14:34:57 [heycam]
- myles_: this idea of the reveal pw icon is a good one
- 14:34:57 [fremy]
- RESOLVED: input-security: auto|none in UI 4 and applies to input type=password only
- 14:35:01 [bkardell_]
- is it actually a newer control?
- 14:35:07 [fremy]
- https://github.com/w3c/csswg-drafts/issues/2495#issuecomment-380397331
- 14:35:14 [heycam]
- ... if sites start changing icons, maybe every site will have a different looking passwrod field
- 14:35:20 [heycam]
- ... which is harmful for web security
- 14:35:27 [heycam]
- ... trains users to type pw into sketchy things
- 14:35:36 [tantek]
- q?
- 14:35:50 [fantasai]
- myles: good proposal, but replacing image seems problematic
- 14:36:00 [tantek]
- But Google does it (changes the icon) so it must be ok right?
- 14:36:09 [heycam]
- myles_: on iOS it's a deliberate feature to make input type password look the same as system password entry fields
- 14:36:16 [fremy]
- q+ since I'm confused with what myles said
- 14:36:21 [fremy]
- q+
- 14:36:44 [heycam]
- chris: we don't allow style sheets to change the lock icon in the address bar
- 14:36:52 [fantasai]
- Florian^: if all password fields look the same, then users are used to typing into things that looke like that ... if they all look different, then they adapt to typing in the password into anything
- 14:36:54 [Rossen_]
- q?
- 14:37:05 [heycam]
- fremy: but you're already shipping input-security
- 14:37:46 [Rossen_]
- ack AmeliaBR
- 14:37:51 [fremy]
- q-
- 14:38:01 [heycam]
- AmeliaBR: heard a strong need for something not in the proposal, which is detecting whether the UA will be displaying a pw reveal
- 14:38:05 [heycam]
- ... or the clear field button
- 14:38:16 [heycam]
- ... argument for styling is more superfluous
- 14:38:17 [jensimmons]
- q+
- 14:38:34 [heycam]
- ... from usability perspective, having these things look different everywhere isn't necessarily good for users
- 14:38:50 [heycam]
- ... I was fighting recently with a site that was breaking the pw reveal button, because the focus kept getting lost
- 14:39:00 [heycam]
- ... could imagine all kinds of way s to make the button unusable
- 14:39:16 [Rossen_]
- q?
- 14:39:19 [tantek]
- "fussy designer could get rid of this usability feature" <-- this
- 14:39:34 [heycam]
- ... in general, CSS doesn't mandate good design, authors can shoot themselves in the foot, but when this is a very strong security / usability issue, not sure what the argument is
- 14:39:50 [florian]
- q+
- 14:39:55 [heycam]
- .. other thing was what Jen brought up; we have this much broader scope of exposing subcomponents of replaced elements, if we do this it should maybe be part of this much larger scope
- 14:40:04 [heycam]
- jensimmons: that wasn't my point
- 14:40:10 [heycam]
- una: I wanted to speak to AmeliaBR's point
- 14:40:13 [Rossen_]
- ack una
- 14:40:20 [heycam]
- ... I can see the perspective of wanting similar UX
- 14:40:27 [heycam]
- ... right now things look diff because people must reimpl them
- 14:40:33 [heycam]
- ... so I think it could help with unification
- 14:40:37 [heycam]
- ... having a standard for pw fields
- 14:40:42 [AmeliaBR]
- q+
- 14:40:42 [heycam]
- ... and could be overridden if the team wants to
- 14:40:56 [tantek]
- The pseudo-element does sound like a bit of a footgun, as it burdens webdevs with doing it in such a way that works across input fields on different desktop/mobile OSs/platforms etc. which is a lot more than they may expect they have to do
- 14:41:05 [heycam]
- ... to the second point, does this span any replaced element? what about telephone fields? maybe validating want to little check mark in there
- 14:41:12 [heycam]
- ... should we be thinking about form elements as a whole?
- 14:41:22 [heycam]
- fantasai: that's a good point that that exists
- 14:41:27 [Rossen_]
- q?
- 14:41:39 [heycam]
- ... placing that check mark and making sure it doesn't overlap the contents of the field. this doesn't solve that
- 14:42:03 [heycam]
- ... I would be curious to know, if we have this pw reveal implemented across all browsers, and waited a year, would there still be such a high demand for doing custom ones? or would it be adequate to just let the browser do it?
- 14:42:16 [heycam]
- una: I've seen very design system have different designs for these elements, so I think the demand iwll continue
- 14:42:37 [heycam]
- Rossen_: so eveyrthing else would look as designed, except hte icon?
- 14:42:44 [chris]
- q?
- 14:42:44 [heycam]
- fantasai: but these icons don't have a lot of presence
- 14:43:00 [heycam]
- una: looking at these 2 examples. the material design one. the second one was the Edge one
- 14:43:07 [heycam]
- ... can't really mix and match them
- 14:43:11 [Rossen_]
- q?
- 14:43:27 [Rossen_]
- ack dbaron
- 14:43:37 [heycam]
- dbaron: I had three comments. one, AmeliaBR asked how do you detect this
- 14:43:41 [dbaron]
- @supports selector(::reveal)
- 14:43:46 [heycam]
- ... one answer is that you could use @supports for this selector
- 14:43:57 [heycam]
- ... impls would only suppor this selector if they have a pw reveal mechanism
- 14:44:11 [heycam]
- TabAtkins: I don't like that assumption. then they'll have broken style rules
- 14:44:23 [heycam]
- AmeliaBR: that already hapepns with pseudos everywhere
- 14:44:42 [fantasai]
- ...
- 14:44:57 [fantasai]
- dbaron: Somewhat, but also today's impls don't support that pseudo
- 14:45:14 [florian]
- q?
- 14:45:18 [fantasai]
- dbaron: fremy pointed out that a year ago we agreed to add 'input-security' property that controls whether or not the password shows up
- 14:45:23 [fantasai]
- scribeNick: fantasI
- 14:45:34 [fantasai]
- dbaron: If that property has influence on whether the reveal pseudo-class matches
- 14:45:39 [fantasai]
- dbaron: then we can't do both
- 14:45:48 [fantasai]
- dbaron: You can't have a property that controls whether a selector matches
- 14:45:56 [fantasai]
- dbaron: This is not a problem for the pseudo-element, though
- 14:46:10 [fantasai]
- dbaron: We don't want to create cycles with input:reveal { input-security: ... }
- 14:46:17 [tantek]
- FYI: https://github.com/w3c/csswg-drafts/issues/2495
- 14:46:19 [heycam]
- ScribeNick: heycam
- 14:46:44 [heycam]
- florian: talking about this I said that we had introduced this prop, for arbitrary things, which is not what we resolved. we resolved none and auto, for make it able to turn it off on pw fields
- 14:46:48 [heycam]
- ... not to hide it on non-pws
- 14:46:54 [heycam]
- fantasai: that problem still applies
- 14:46:57 [heycam]
- ... just limited in scope to input
- 14:47:03 [Rossen_]
- ack florian
- 14:47:12 [heycam]
- dbaron: the 3rd comment is that there was a bunch of discussion baout WG's history of not styling form controls
- 14:47:44 [heycam]
- ... some of this is that there was an assumption that really form controls are a big problem to tackle, and there was a bunch of ongoing work that was supposed to help us tackle this problem, which at this point has taken 14 years longer than expected
- 14:47:47 [heycam]
- ... Web Components is a thing now
- 14:48:19 [heycam]
- ... part of the idea of the origin of WCs is to help us figure out how to expose styling of form cotnrols to the web
- 14:48:36 [heycam]
- ... we should at some point think about whta we can do that is still web compatible, we have more compat constraints now
- 14:49:04 [heycam]
- bkardell_: it would be helpful to work with people how make custom control libraries
- 14:49:17 [tiger_]
- tiger_ has joined #css
- 14:49:17 [heycam]
- ... I want to be in control of these things, but not these things? it's not simple
- 14:49:20 [Rossen_]
- q?
- 14:49:26 [heycam]
- Rossen_: there will always be native controls
- 14:49:27 [tantek]
- Also FYI: https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-text-security
- 14:49:28 [Rossen_]
- ack jensimmons
- 14:49:49 [heycam]
- jensimmons: myles_ what you brought up was interesting, keeping UX consistent as a security concern, pulls it out of the rest of the form controls debate
- 14:50:16 [heycam]
- ... if we wanted to pull those concerns up, the web should get the pw off the web page, I wonder if the genie is already out of the bottle
- 14:50:33 [heycam]
- ... I don't have any answers, but there's something interesting there
- 14:50:35 [florian]
- q?
- 14:50:41 [heycam]
- ... solving passwords on the web ... not going to happen here
- 14:50:41 [florian]
- q+
- 14:50:54 [tantek]
- Does the CVV use-case apply here? (e.g. is that a use-case for -webkit-text-security ?)
- 14:50:55 [heycam]
- fantasai: I don't think Web Components is the answer to all of this
- 14:50:58 [bkardell_]
- my above comment was intended to say that there are orgs and frameworks providing custom elements to other people now, and they seem to have similar challenges as browsers now
- 14:51:03 [florian]
- q-
- 14:51:10 [heycam]
- jensimmons: we'll get to the form controls eventually, just ship these pseudos for passwords?
- 14:51:11 [Rossen_]
- ack AmeliaBR
- 14:51:18 [Rossen_]
- Zakim, close q
- 14:51:18 [Zakim]
- I don't understand 'close q', Rossen_
- 14:51:20 [heycam]
- AmeliaBR: is there any interest in browsers that don't have this feature, adding this feature?
- 14:51:22 [Rossen_]
- Zakim, close queue
- 14:51:22 [Zakim]
- ok, Rossen_, the speaker queue is closed
- 14:51:40 [heycam]
- ... is there any work being done on the HTML side to have this as a state of the input element, that is revealed on a DOM level? rather than just through CSS
- 14:51:57 [heycam]
- ... right now, I don't think there is any DOM level way to detect when someone toggles the reveal or not on their native input
- 14:52:06 [heycam]
- ... not sure whether it's a security concern, but it would expose info that's not already exposed
- 14:52:11 [heycam]
- ... which may be something to consider
- 14:52:21 [heycam]
- ... and the discussion maybe should happen at a DOM/HTML level
- 14:52:32 [heycam]
- ... on dbaron's concern about circularity, don't think it's an issue
- 14:52:51 [heycam]
- ... wouldn't want the revealed state to be based on a css property, but a state maintained by the input element which knows whether it's revealed or not
- 14:53:00 [heycam]
- ... and the UA sheet can say do something based on it
- 14:53:24 [heycam]
- ... but again that depends on the idea that the input element is able to maintain the state of whether it's in the reveal state, which is an HTML/DOM question
- 14:53:43 [heycam]
- myles_: when we discussed text-security a year ago, we spent a lot of time talkingabout the behavior of mobile browsers, where you press a key and it shows for 0.5s
- 14:54:02 [heycam]
- AmeliaBR: it's a state that exists only as long as you're pressing the key, vs on or off
- 14:54:05 [heycam]
- myles_: it's per character tho
- 14:54:11 [heycam]
- AmeliaBR: as you're typing? the char you just typed?
- 14:54:13 [heycam]
- myles_: yeah
- 14:54:19 [heycam]
- una: I liked AmeliaBR what you said about HTML
- 14:54:25 [heycam]
- ... reminds me of the media control state
- 14:54:37 [heycam]
- ... it lets them decide whether to show the widget
- 14:55:00 [heycam]
- AmeliaBR: so the author could make a custom control that toggles the pw reveal state?
- 14:55:01 [heycam]
- una: yes
- 14:55:19 [heycam]
- AmeliaBR: currently most impls switch the input type from pw to text, awkward for a11y
- 14:55:31 [heycam]
- ... bad for autofill
- 14:55:41 [heycam]
- ... if authors could impl a custom pw reveal without changing the fact that it's pw...
- 14:55:45 [rachelandrew_]
- rachelandrew_ has joined #css
- 14:55:50 [heycam]
- florian: that's what we resolved 1yr ago, not that it was a DOM prop tho
- 14:56:03 [tantek]
- q?
- 14:56:05 [tantek]
- q+
- 14:56:07 [heycam]
- ... the details of whether it's showing only the last char, or the whole text, that's "auto"
- 14:56:14 [heycam]
- ... but only applies to input elements
- 14:56:23 [heycam]
- ... we didn't follow up on that, but we did resolve it
- 14:56:50 [heycam]
- AmeliaBR: that doesn't let the custom control allow you to turn the revealing on and off
- 14:57:25 [AmeliaBR]
- s/allow you to/detect whether the user agent can/
- 14:57:27 [heycam]
- florian: should we reopen that 1yr old question to see whether we should have it in HTML/DOM instead?
- 14:57:34 [heycam]
- tantek: I think we want this for cvv fields too
- 14:57:37 [heycam]
- ... so yes
- 14:57:50 [heycam]
- florian: the control we have didn't allow you to hide things. only reveal things which are hidden by default
- 14:57:59 [heycam]
- ... didn't want them to make normal text fields look like pw fields
- 14:59:02 [heycam]
- florian: the earlier resolution, we decided we only needed auto/none
- 14:59:15 [heycam]
- ... when WebKit brought this to the group, was to stop having non-pw fields for pw-ish purposes
- 14:59:21 [myles]
- myles has joined #css
- 14:59:23 [heycam]
- tantek: that sounds like denial of the use case
- 14:59:38 [heycam]
- florian: does sound like we should reopen that issue
- 14:59:49 [heycam]
- ... should we be able to hide things revealed by default, and whether it should be a DOM thing
- 15:00:07 [fremy]
- @myles @myles_ why did you mention this to me: // text-security was implemented in 2007, 12 years ago
- 15:00:08 [heycam]
- myles_: search fields often have a manifying glass image. if this will have an icon thing, it should use the same mechanism
- 15:00:37 [heycam]
- Rossen_: in Edge, it's the same mechanism. there's an action pseudo, for clear, search, reveal
- 15:01:41 [heycam]
- hober: can't resolve to add the pseudo class but also have input-security
- 15:01:45 [heycam]
- tantek: it's not optimal
- 15:01:53 [heycam]
- dbaron: needs to be clear what the two things do. it's still possible
- 15:02:20 [heycam]
- emilio: could have weird states with non-revealed text but still matching the pseudo
- 15:02:44 [heycam]
- fremy: [...] if the user clicks the button it would override what's set
- 15:02:54 [heycam]
- dbaron: does input-security control whether there's a reveal button or not?
- 15:03:18 [AmeliaBR]
- q?
- 15:03:18 [heycam]
- ... someone needs to write down a defn, to check whether the input-security is reasonable, the pseudo is reasonable, and whether they interact well or not
- 15:03:59 [heycam]
- AmeliaBR: I think we've brought up a number of issues, would be worth updating the explainer/proposal to hash out these details
- 15:04:19 [heycam]
- ... and generalizing to other action buttons. greg's not here, just throwing it back on him...
- 15:04:27 [heycam]
- jensimmons: from Greg's tweets sounds like he's diving into stylable controls
- 15:04:46 [heycam]
- tantek: 3 interrelated issues, resolving on one will make it harder to make sensible resolutions for the others
- 15:05:01 [heycam]
- florian: come back with a complete proposal
- 15:05:37 [heycam]
- tantek: hoping the "things that want a reveal button which are not pw fields" use case can be handled
- 15:06:04 [heycam]
- -- 15 min break --
- 15:06:18 [tantek]
- heycam++
- 15:06:50 [dbaron]
- github-bot, end topic
- 15:29:06 [antonp]
- antonp has joined #css
- 15:29:49 [jensimmons]
- jensimmons has joined #css
- 15:30:03 [TabAtkins]
- ScribeNick: TabAtkins
- 15:30:47 [myles_]
- myles_ has joined #css
- 15:30:52 [TabAtkins]
- Topic: Upcoming f2f
- 15:31:09 [TabAtkins]
- astearns: The jan meeting is set for Spain, as I understand?
- 15:31:20 [TabAtkins]
- dbaron: Dates?
- 15:31:34 [Rossen_]
- Rossen_ has joined #css
- 15:32:07 [bkardell_]
- here's a thing with the venue https://webengineshackfest.org/2019/#venue
- 15:32:08 [TabAtkins]
- Rossen: So Igalia hosting, location is A Coruña
- 15:32:52 [TabAtkins]
- dbaron: There's a moz all-hands the following week, if we use the Jan 20-24 dates
- 15:33:07 [TabAtkins]
- dbaron: But Moz people thus can't do the following week. Either week before or after.
- 15:33:52 [TabAtkins]
- jensimmons: Yes plz don't leave an empty week before Moz Berlin all-hands and this meeting...
- 15:34:00 [chris]
- TPAC 2020 Tentative dates 26-30 October 2020
- 15:34:33 [TabAtkins]
- TabAtkins: Probably no Houdini, we'll have talked at TPAC.
- 15:34:46 [TabAtkins]
- AmeliaBR: So W-F leading into Moz the next week seems best?
- 15:35:17 [TabAtkins]
- Rossen: So tentatively 22-24.
- 15:36:21 [TabAtkins]
- RESOLVED: Jan 22-24 for A Coruña meeting, pending final approval from Igalia.
- 15:37:37 [rachelandrew_]
- rachelandrew_ has joined #css
- 15:37:38 [TabAtkins]
- bkardell_: Igalia confirms that 22-24 works.
- 15:38:17 [TabAtkins]
- [Spring meeting will be at Apple, tess and myles will confirm room availability)
- 15:39:11 [leaverou]
- present+
- 15:39:13 [TabAtkins]
- dbaron: How many meetings this next year? 13ish months between TPACs, tentative wiki plans are for 3 meetings now.
- 15:39:15 [rachelandrew__]
- rachelandrew__ has joined #css
- 15:40:51 [TabAtkins]
- [discussion about france in August]
- 15:41:00 [TabAtkins]
- [definitely not doing Tokyo during olympics]
- 15:41:20 [rachelandrew__]
- the spring meeting - do we have rough dates? I have conference organisers to get back to
- 15:42:24 [TabAtkins]
- hober: We might be able to do two next year, haven't hosted in forever. We'll see.
- 15:43:03 [TabAtkins]
- florian: Maybe do Spring in Japan, then somewhere else in August.
- 15:43:56 [una]
- una has joined #css
- 15:43:58 [TabAtkins]
- una:
- 15:44:13 [TabAtkins]
- una: Could probably do NYC Google.
- 15:46:04 [TabAtkins]
- astearns: I could host in 2021 in Noida, India
- 15:46:24 [TabAtkins]
- astearns: In Spring, the best time to go there
- 15:47:20 [TabAtkins]
- <br type=lunch dur=1hr>
- 15:50:36 [jensimmons]
- jensimmons has joined #css
- 16:00:22 [myles]
- myles has joined #css
- 16:01:46 [jensimmons]
- jensimmons has joined #css
- 16:03:16 [lajava]
- lajava has joined #css
- 16:05:17 [cabanier]
- cabanier has joined #css
- 16:09:45 [rachelandrew___]
- rachelandrew___ has joined #css
- 16:15:27 [stryx`]
- stryx` has joined #css
- 16:20:17 [rachelandrew____]
- rachelandrew____ has joined #css
- 16:29:55 [myles_]
- myles_ has joined #css
- 17:01:21 [myles]
- myles has joined #css
- 17:08:45 [fremy]
- fremy has joined #css
- 17:09:01 [TabAtkins]
- Topic: Publish Early, Publish Often
- 17:09:20 [TabAtkins]
- fantasai: We're now on Echidna, so we can publish in about 5min normally.
- 17:09:22 [una]
- una has joined #css
- 17:09:27 [TabAtkins]
- fantasai: ONe of the goals of that was to publish more frequently
- 17:09:34 [Rossen_]
- Rossen_ has joined #css
- 17:09:42 [TabAtkins]
- fantasai: I think when we have signif changes we shoudl check with the WG to make sure everyon'es on board,
- 17:09:56 [TabAtkins]
- fantasai: But there are a lot of things where I think the editor should just be able to publish. Particularly editorial changes.
- 17:10:06 [TabAtkins]
- fantasai: So I propose we allow the editor to just push that to TR.
- 17:10:13 [TabAtkins]
- fantasai: Or other obvious bugfixes.
- 17:10:20 [stantonm]
- stantonm has joined #css
- 17:10:24 [TabAtkins]
- florian: Probably also if we've resolved toa ccept specific wording
- 17:10:26 [TabAtkins]
- fantasai: Yes
- 17:10:50 [TabAtkins]
- fantasai: But if there's a change that should be reviewed by somebody, like we resolved on a decision but not specific wording, and it's non-trivial, that should probably also still go thru the WG.
- 17:11:09 [TabAtkins]
- fantasai: But for editorial changes, trivial bugfixes, and resolutions with acceptance of specific edits, we should let people push
- 17:11:17 [TabAtkins]
- chris: Up to editor's discretion?
- 17:11:23 [tantek]
- q?
- 17:11:30 [TabAtkins]
- fantasai: Editor is fine for me. Could push thru chairs, just not waiting for the WG call.
- 17:11:38 [fantasai]
- has to be very very trivial, though!
- 17:12:00 [tantek]
- q+ to request that we have a requirement of adding to the Changes section, and preferably even an HTML diff as well, just because that *should* look minimal for editorial changes
- 17:12:00 [TabAtkins]
- AmeliaBR: Is there an intermediate state, where you ping people first?
- 17:12:07 [TabAtkins]
- astearns: I think if you're concerned, this isn't one of those cases.
- 17:12:28 [tantek]
- q+ to request that we have a requirement of adding to the Changes section, and preferably even an HTML diff as well, just because that *should* look minimal for editorial changes
- 17:12:40 [TabAtkins]
- astearns: I'd like a ping when things are published.
- 17:12:44 [fantasai]
- TabAtkins: Echidna can CC an address or ML when publication is succesful
- 17:12:54 [chris]
- zakim, thanks for condescending to open the queue :)
- 17:12:54 [Zakim]
- I'm glad that smiley is there, chris
- 17:13:01 [TabAtkins]
- TabAtkins: Echidna now has a cc feature, pass `-cc=email@example.org` to the bikeshed command to ping it when publication is successful
- 17:13:05 [astearns]
- ack tantek
- 17:13:05 [Zakim]
- tantek, you wanted to request that we have a requirement of adding to the Changes section, and preferably even an HTML diff as well, just because that *should* look minimal for
- 17:13:08 [Zakim]
- ... editorial changes
- 17:13:10 [TabAtkins]
- tantek: Strongly supportive.
- 17:13:22 [TabAtkins]
- tantek: The more we can desync publishing and make it rapid is a good thing.
- 17:13:45 [TabAtkins]
- tantek: Only request is that if you publish what you think are editorial changes, you still include changes about that, preferably with a link to a diff.
- 17:14:22 [TabAtkins]
- TabAtkins: W3C has a nice htmldiff tool useful for this, too
- 17:15:06 [TabAtkins]
- chris: This is for WD, reqs for updating other things stay the same
- 17:16:00 [TabAtkins]
- dbaron: one possible concern, sometimes we get into big arguments where the result of "we can't agree on anything" is "therefor we make no change"
- 17:16:37 [TabAtkins]
- dbaron: I don't want this to have too much implication for that, in that "therefore we make no change" should stay "therefore we stick with the previous resolution".
- 17:16:44 [TabAtkins]
- florian: Agree, but think that's a chairing issue.
- 17:17:06 [TabAtkins]
- florian: If there's disagreement, chairs can decide that we should stick with a particular wording.
- 17:17:35 [florian]
- q?
- 17:17:46 [TabAtkins]
- TabAtkins: That seems to fall under the intended rule of "don't make non-trivial changes under this process"
- 17:18:28 [TabAtkins]
- florian: Other types of changes allowed here is adding examples and inline issues.
- 17:18:33 [TabAtkins]
- fantasai: Those are editorial
- 17:19:07 [TabAtkins]
- florian: Technically not true unde rW3C process, but let's stick with the definition of "non-normative, non-controversial" as the dividing line
- 17:19:28 [TabAtkins]
- fantasai: yes
- 17:19:31 [leaverou]
- s/unde rW3C/under W3C/
- 17:20:10 [TabAtkins]
- astearns: Do you think you should still have one person review? I've made "editorial" edits that still cause problems.
- 17:20:36 [TabAtkins]
- ???: It's fine, people can review after the fact and then just push the fix.
- 17:20:58 [TabAtkins]
- AmeliaBR: Yeah, and the faster update cycle can fix issues we've had in the past with markup errors sticking around for a long while.
- 17:21:28 [TabAtkins]
- tantek: Adding non-trivial informative changes, like adding examples, could probably *use* some review, but we shoudln't require it in the process.
- 17:21:59 [TabAtkins]
- fantasai: As my goal I just wanna close the distance between ED and TR, so TR becomes more of a useful resource.
- 17:22:17 [TabAtkins]
- astearns: I want to avoid ahving this quick process meaning you hold off on normative changes bc you want to publish the editorial.
- 17:22:26 [TabAtkins]
- fantasai: I don't think that'll generally happen.
- 17:22:54 [TabAtkins]
- tantek: In the interest of not blocking on that, do we already have a custom of letting people be first in the telcon agenda if you have a pending publication?
- 17:22:58 [TabAtkins]
- astearns: Yeah, nearly always
- 17:23:58 [TabAtkins]
- astearns: So proposal is to allow editors to publish to TR at will, when the only changes are non-normative/editorial and non-controversial.
- 17:24:28 [TabAtkins]
- [discussion over difference between "uncontroversial" and "non-controversial", concluded that when there's a difference it should be considered controversial]
- 17:25:19 [TabAtkins]
- fantasai: And must include in the Changes section that the only changes are non-normative, with a link to the diff.
- 17:25:49 [TabAtkins]
- astearns: And ping www-style with the publication.
- 17:26:29 [TabAtkins]
- astearns: Anyone object?
- 17:26:57 [TabAtkins]
- fantasai: Also allowed: substantive changes when the WG has already approved the exact wording
- 17:27:50 [TabAtkins]
- RESOLVED: Allow editors to publish at-will, under the discussed caveats.
- 17:28:06 [TabAtkins]
- Topic: Republish Tables 3
- 17:28:20 [fantasai]
- RESOLVED: WDs with only editorial changes, non-normative non-controversial changes, and/or substantive changes with exact wording approved by the WG may be published by the editor straight to /TR without explicit approval, providing that a diff of changes is linked and www-style is pinged.
- 17:28:28 [fantasai]
- Topic: Republish Tables 3
- 17:28:30 [TabAtkins]
- florian: This is mostly editorial, but I still want to run thru the group.
- 17:28:41 [TabAtkins]
- s/florian/fremy/
- 17:28:46 [fremy]
- https://github.com/w3c/csswg-drafts/commit/942a46a1db056174fbb11cdf94bf2de3b14fc0e3#diff-6e3717cf0173351cda3264b270e9586a
- 17:28:49 [TabAtkins]
- fremy: Gonna explain the changes.
- 17:28:54 [fremy]
- https://github.com/w3c/csswg-drafts/commit/714ac7625b1b25ccacb183a17a77bb41144d0899#diff-6e3717cf0173351cda3264b270e9586a
- 17:29:01 [fremy]
- https://github.com/w3c/csswg-drafts/commit/8dbce74efa894eb8c7183440bd312316cb1ce449#diff-6e3717cf0173351cda3264b270e9586a
- 17:29:04 [tiger]
- tiger has joined #css
- 17:29:39 [rachelandrew____]
- rachelandrew____ has joined #css
- 17:29:39 [TabAtkins]
- fremy: First question was around % for height of table cells
- 17:30:05 [TabAtkins]
- s/First/Second, skipping ahead,/
- 17:30:11 [myles_]
- myles_ has joined #css
- 17:30:39 [TabAtkins]
- fremy: Mosty this change just moves text around.
- 17:30:59 [TabAtkins]
- fremy: Previous section was called "computing the table height", but it had details about resolving %s and other stuff
- 17:31:11 [TabAtkins]
- fremy: Hard to find that text, not in a good spot.
- 17:31:46 [TabAtkins]
- fremy: So I just lifted it to a new section so it's more clear.
- 17:31:58 [TabAtkins]
- fremy: Just wanted to bring it up if someone wants to review and make sure I didn't change anything.
- 17:32:11 [jensimmons]
- jensimmons has joined #css
- 17:32:38 [TabAtkins]
- Rossen: LIne 1896, that's a normative change...
- 17:32:51 [TabAtkins]
- fremy: Ah no, that's already implicit in the rest of the spec.
- 17:33:00 [TabAtkins]
- Rossen: But it's not just moving around.
- 17:33:10 [TabAtkins]
- fremy: Yeah, it's a clarification.
- 17:33:31 [TabAtkins]
- Rossen: My point is that here you're defining an algo that says something has no effect. That's not just an editorial change.
- 17:33:55 [TabAtkins]
- fremy: It's editorial in the sense that it's already normative in the spec elsewhere. This shouldn't be a behavior change, I'm just summarizing the effect of other stuff in the spec.
- 17:34:13 [TabAtkins]
- florian: New text, but no new requirements.
- 17:35:21 [tantek]
- editorial vs. substantial vs. normative are all different things, please don't try to collapse any two
- 17:35:40 [TabAtkins]
- astearns: It's often good in those situations to just link to the section saying that, rather than duplicating.
- 17:35:54 [TabAtkins]
- AmeliaBR: These are literally consecutive paragraphs, eh
- 17:36:15 [AmeliaBR]
- s/eh/in one subsection/
- 17:36:35 [TabAtkins]
- fremy: First link, actually adds something.
- 17:36:46 [TabAtkins]
- fremy: In spec there was a sectiond defining positioning of everytrhing inside the table
- 17:36:55 [TabAtkins]
- fremy: Described for each of them the left/top/width/height.
- 17:37:07 [TabAtkins]
- fremy: I assumed it was obvious this was the bounding box, but that wasn't obvious in the spec.
- 17:37:21 [fantasai]
- tantek, https://www.w3.org/2019/Process-20190301/#correction-classes
- 17:37:37 [TabAtkins]
- fremy: So I've officially defined that this is the dimensions of the box, returned get gBCR().
- 17:38:10 [TabAtkins]
- florian: What's the alternative interpretation of this?
- 17:38:40 [TabAtkins]
- fremy: Like, the tech was only necessarily about visual stuff. Not clear that it affected the .offsetLeft, etc.
- 17:38:41 [tantek]
- fantasai: I agree with those distinctions, glad to see that there are *four* made explicit
- 17:39:10 [fantasai]
- tantek, yeah, the resolution above was only wrt to #1/#2 -- unless exact text for #3/#4 was WG-approved already
- 17:39:13 [TabAtkins]
- fremy: Also clarified what border-spacing means with spanning cells, etc. Obvious in formula, but made it clear in prose.
- 17:39:14 [dbaron]
- q+ to ask about table wrapper versus table
- 17:39:41 [astearns]
- ack dbaron
- 17:39:41 [Zakim]
- dbaron, you wanted to ask about table wrapper versus table
- 17:40:20 [TabAtkins]
- dbaron: In the first bit, I'm a little nervous about "which means they are accessible via..." because of table vs table wrapper box, because only one of those is accessible to the OM
- 17:40:37 [TabAtkins]
- fremy: Which is used for those APIs is already specified.
- 17:40:48 [TabAtkins]
- dbaron: Yes, but then your statement of fact there is slightly wrong.
- 17:41:36 [TabAtkins]
- dbaron: You give bounding rects for both table and table wrapper, but only of those is accessible via the OM, so the statement that the definition "makes them accessible" is technically wrong.
- 17:41:47 [TabAtkins]
- dbaron: Perhaps add a parenthetical about the boxes that aren't OM-accessible.
- 17:43:07 [TabAtkins]
- fremy: Sure
- 17:45:28 [TabAtkins]
- fremy: And the third diff is Elika's editorial changes to the propdef tables, to be consistent with the rest of the CSS specs.
- 17:47:07 [TabAtkins]
- astearns: I'm hearing no objecteions to publication
- 17:47:31 [TabAtkins]
- RESOLVED: Publish new WD of Tables 3 with the reviewed changes.
- 17:48:32 [TabAtkins]
- Topic: font-min/max-size and computed value
- 17:48:36 [fantasai]
- I've updated https://wiki.csswg.org/spec/publish with the blanket publication resolution
- 17:48:40 [fantasai]
- fwiw
- 17:48:41 [astearns]
- github: https://github.com/w3c/csswg-drafts/issues/3739
- 17:48:51 [TabAtkins]
- emilio: Browsers have minimum font-size settings for a11y
- 17:49:08 [TabAtkins]
- emilio: And they work differently in WK-based vs Firefox
- 17:49:17 [TabAtkins]
- emilio: WK-based browsers, it affects the font-relative units.
- 17:49:21 [TabAtkins]
- emilio: In Firefox they do not.
- 17:50:32 [fremy]
- fremy has joined #css
- 17:50:56 [TabAtkins]
- emilio: So I was considering implementing min-font-size, and that affects the computed value of font-size, I would assume
- 17:51:06 [TabAtkins]
- emilio: So first, the a11y setting in Blink can break websites
- 17:51:59 [TabAtkins]
- emilio: I'd also like min-font-size to work the same as the a11y setting.
- 17:52:28 [TabAtkins]
- fantasai: Reason it affects computed and not just used font size is that if you were using ems correctly (for the purpose of making something relative to text size), then everything should scale and match the size of text.
- 17:52:49 [rachelandrew_____]
- rachelandrew_____ has joined #css
- 17:53:29 [TabAtkins]
- AmeliaBR: How much would things break if we declared a different computed value for inheritance vs font-relative units?
- 17:53:47 [TabAtkins]
- dbaron: Which is what I thought Gecko did, and maybe what it did pre-servo
- 17:53:57 [TabAtkins]
- fantasai: That would be fine and would honor the constraint we want
- 17:54:08 [TabAtkins]
- emilio: Would it?
- 17:54:37 [TabAtkins]
- [Amelia re-explains their proposal]
- 17:55:03 [fantasai]
- TabAtkins: So on any given element, 1.2em would still be 120% size of the text
- 17:55:18 [TabAtkins]
- emilio: That would still break websites if we used this to ipmlement the a11y setting
- 17:55:57 [fantasai]
- dbaron: ...
- 17:56:47 [TabAtkins]
- dbaron: I think this is mostly problematic because of people misusing rem to get a custom-sized unit
- 17:56:49 [fantasai]
- s/.../people use the root font size to create a unit that's not really related to the font size, and that breaks if you apply font size minimums to it/
- 17:56:54 [TabAtkins]
- jensimmons: And they want nice math, yeah
- 17:57:00 [dbaron]
- s/mostly/also significantly/
- 17:57:36 [TabAtkins]
- myles_: So it sounds like users are getting min-font-size via the UI settings; could you just keep that separate from min-font-size property?
- 17:57:53 [TabAtkins]
- emilio: Yeah, we could. But it would still mean the minimum font size setting is magical; you couldn't override that in a user stylesheet.
- 17:58:25 [TabAtkins]
- dbaron: Also one of the underlying principles of CSS is that it explians how author and user expectations work with each other. Settings/prefs are usually explained as part of the user stylesheet.
- 17:58:35 [AmeliaBR]
- q+ to talk about author use of min/max-font-size
- 17:59:28 [TabAtkins]
- myles_: Right. There just might be a distinction between an author saying they want to scale up a font size, and the user saying they can't see text smaller than a certain value.
- 17:59:38 [zcorpan]
- zcorpan has joined #css
- 18:00:10 [TabAtkins]
- dbaron: Also, minimum font sizes don't seem to work well in practice anyway, many pages break. So maybe this isn't the most useful anyway.
- 18:00:26 [myles]
- myles has joined #css
- 18:00:52 [TabAtkins]
- fantasai: So if authors do understand the unit and use things correctly, things should still scale correctly.
- 18:01:17 [TabAtkins]
- jensimmons: So to clarify, there's a min/max-font-size, and maybe you set font-size with a calc(vw) or whatever.
- 18:02:06 [TabAtkins]
- jensimmons: So if you hit a min or a max, and we cap it when you hit the limit, should that propagate to the 'em' unit, that's the question, right?
- 18:02:06 [chris]
- yes, exactly
- 18:02:10 [TabAtkins]
- [yes]
- 18:02:21 [TabAtkins]
- jensimmons: It doesn't even make sense to me that it wouldn't transfer over.
- 18:02:26 [florian]
- +1 to jensimmons
- 18:02:29 [astearns]
- ack AmeliaBR
- 18:02:29 [Zakim]
- AmeliaBR, you wanted to talk about author use of min/max-font-size
- 18:02:37 [fantasai]
- /So/CSS provides a variety of units to allow authors to express the why of their sizes through relative measurements, against the font or the screen or the container or the pixels, etc. Authors who understand these units will use font-relative units when they want things to scale with the font, so/
- 18:03:46 [TabAtkins]
- AmeliaBR: So while CSS gives people the tools to use things properly, we have to recognize that some people won't use it correctly.
- 18:04:38 [fantasai]
- jensimmons gives an example of e.g. gmail which doesn't handle the scaling of text correctly, so zooming in creates a suboptimal layout -- but this is a case of the author not choosing to use the correct units ; breaking the connection between ems and font-size would make it impossible to fix
- 18:05:15 [TabAtkins]
- dbaron: I think I agree that making 'em' honor min/max is the only thing that makes sense. It's not clear to me which to go with inheritance, as it depends on use-case
- 18:06:17 [TabAtkins]
- fantasai: There was a comment from Fred Lang, where if min/max clamped the value before inheriting, you'd have a size in the multi-step process that gets messed up and messes up all subsequent sizes.
- 18:06:20 [leaverou]
- Agreed with dbaron. Authors use ems assuming they correspond to actual used font size. If that assumption breaks, a lot of UIs would too.
- 18:07:08 [dbaron]
- s/Lang/Wang/
- 18:07:36 [fantasai]
- fantasai: So I agree with Amelia that the computed / inherited font-size should not be affected by the min/max, but that the min/max should factor into not just the used font size but also the resolution of font-relative units
- 18:07:49 [fantasai]
- fantasai: We would be doing authors a disservice if we did not ensure that the font-size and 1em matched.
- 18:08:03 [astearns]
- ack dbaron
- 18:08:04 [chris]
- I agree with that proposed solution
- 18:08:26 [chris]
- ... otherwise things end up double-applied, growing too much
- 18:08:26 [TabAtkins]
- dbaron: I think this is a reasonable conclusion, I think it doesn't work well for Jen's use-case, but I think what does work well for that is using min()/max() inside of font-size.
- 18:08:39 [chris]
- ... clamping should happen as late as possible
- 18:09:30 [TabAtkins]
- dbaron: Because you want clamping to happen at a particular point, not to be inherited down further into the tree. So you'd use `font-size: clamp(10px, ..., 36px);`
- 18:10:39 [TabAtkins]
- AmeliaBR: Right, and that would be bad for min-font-size, as then a `<small>` child would also get clamped and not get smaller. While clamp() works properly
- 18:11:38 [chris]
- q?
- 18:11:41 [chris]
- q+
- 18:12:01 [heycam]
- q+
- 18:12:14 [astearns]
- ack chris
- 18:12:33 [TabAtkins]
- chris: THis has been interesting. Not sure I could reproduce this aftera few days. I want some examples in the spec of what you should use each with.
- 18:12:41 [AmeliaBR]
- +1 to examples!
- 18:13:29 [heycam]
- q-
- 18:13:30 [fremy]
- (side note for people interested in this and would love examples, Jason Pamental talk at cssconf this year is a great resource)
- 18:13:36 [iank_]
- q+
- 18:14:01 [TabAtkins]
- TabAtkins: I think we're leanign toward the properties being designed purely for the a11y/settings use-case, and if you want to just clamp a value in a range, you should always use the math functions.
- 18:14:08 [astearns]
- ack iank_
- 18:14:36 [TabAtkins]
- iank_: Currently the way we do this in Blink for a11y isn't via a property because the font-size clamping we do applies on a per-region basis.
- 18:14:57 [TabAtkins]
- myles: Ours is also complicated, probably in a different way.
- 18:15:29 [TabAtkins]
- myles: It seems like dbaron was saying the function of CSS was to explain browser features. It sounds like this feature shouldn't be explained in CSS, and it should remain magic.
- 18:15:49 [TabAtkins]
- emilio: It sounds like Ian is talking about the text auto-sizing actually?
- 18:15:58 [TabAtkins]
- myles: Ah, but I wasn't in mine.
- 18:16:06 [TabAtkins]
- myles: We have a lot of systems that interact to produce a text size.
- 18:16:30 [TabAtkins]
- myles: I've spent a long time trying to increase readability, and...
- 18:17:00 [TabAtkins]
- myles: The issue is "I want to use this CSS feature to do a11y, but things break", then we just shouldn't use that feature.
- 18:17:09 [TabAtkins]
- florian: So what are we using these for?
- 18:17:57 [fantasai]
- myles: These were added before my time...
- 18:18:00 [TabAtkins]
- myles: These predate me, there was just a note in the spec and I started implementing
- 18:18:27 [TabAtkins]
- TabAtkins: These predate the math functions; they were meant to implement the "keep vw-based font sizes from getting too big/small"
- 18:18:33 [TabAtkins]
- TabAtkins: So we can just drop the properties, then
- 18:18:52 [TabAtkins]
- chris: I was looking at history; this looks like something that was dropped from Fonts 3, and Myles dropped it into Fonts 4 two years ago.
- 18:18:57 [tantek]
- agreed with TabAtkins
- 18:19:07 [tantek]
- proposal: drop the properties because not implemented anywhere
- 18:20:02 [TabAtkins]
- astearns: So these aren't implemented in a user-facing way anywhere, and we're not convinced they're good for any use-case...
- 18:20:02 [tantek]
- jensimmons: responsive typography is what the use-case is called, you can search for it
- 18:20:13 [fantasai]
- https://lists.w3.org/Archives/Public/www-style/2014Jun/0187.html
- 18:21:24 [AmeliaBR]
- `font-size: clamp(12px, 10vmin, 24px)` vs `font-size: 10vmin; min-font-size: 12px; max-font-size: 24px;`
- 18:21:40 [TabAtkins]
- astearns: So looks like we have consensus to remove these properties, until we have a use-case that min()/max()/clamp() don't serve.
- 18:22:02 [TabAtkins]
- AmeliaBR: And replace the section with an example of how to use clamp()l.
- 18:22:23 [tantek]
- aside: how do we do copy-fitting
- 18:22:31 [TabAtkins]
- RESOLVED: Remove min-font-size and max-font-size from Fonts 4, replace with an example of using clamp() to handle safe responsive typography.
- 18:23:12 [tantek]
- q?
- 18:23:13 [chris]
- q?
- 18:23:19 [rachelandrew______]
- rachelandrew______ has joined #css
- 18:23:55 [TabAtkins]
- heycam: The effect of these properties on the computed value of font-size... still worth resolving on how these browser settings affect things?
- 18:24:47 [fantasai]
- ChrisL: Example of broken is page with <html style="font-size: 1px">. Answer is, don't do that.
- 18:25:10 [fantasai]
- TabAtkins: The way it inherits separately is a problem for designing a font hierarchy relative to a base size, tho
- 18:25:31 [fantasai]
- AmeliaBR: Should we give advice to browsers on whether font-relative units should be affected by browser settings?
- 18:25:35 [fantasai]
- myles: Arguments on both sides
- 18:25:48 [fantasai]
- myles: If we don't expose to authro, they don't know what happened to their page
- 18:25:56 [fantasai]
- myles: I don't think it should be specced
- 18:25:59 [TabAtkins]
- TabAtkins: Note tho that h6 defaults to smaller than standard font size. If min-font-size is set to standard-font-size (both 16px, say), and you defined your hX hierarchy by starting from h6 size and then calc()ing up the higher values, the Chrome behavior would mess things up; starting from h1 and calc()ing down would be fine. So it's not *all* pathological cases.
- 18:26:07 [astearns]
- ack dbaron
- 18:26:15 [TabAtkins]
- dbaron: To respond to myles there's another tradeoffs around a11y
- 18:26:35 [TabAtkins]
- dbaron: Some users that need a11y are concerned about privacy, and are willing to have the feature not work as well to keep secret that they're using it.
- 18:27:03 [TabAtkins]
- TabAtkins: For this feature, no matter how you do it it'll be page-exposed tho
- 18:27:14 [TabAtkins]
- dbaron: Also, the browser minimum isn't *really* a minimum.
- 18:28:07 [TabAtkins]
- dbaron: If you specify a min of 10px to font-size:1px, you get 10px font. But applied to font-size:0px, you get 0px. That's very important. So it's not a strict "minimum" anyway.
- 18:28:46 [fantasai]
- myles: Example is layout with inline-blocks, set font-size: 0px so that the gap below the baseline is zeo.
- 18:28:52 [TabAtkins]
- TabAtkins: Myles, wanna capture that 0px point in the spec? If everyone agrees something is needed for webcompat, it should be captured
- 18:28:55 [TabAtkins]
- myles: In a note, sure
- 18:29:16 [TabAtkins]
- Topic: Clarify how computed font-size is determined for size keyword
- 18:29:18 [astearns]
- github: https://github.com/w3c/csswg-drafts/issues/3906
- 18:29:20 [fantasai]
- ACTION myles Add a note about the font-size: 0px vs min font-size web-compat issue
- 18:29:20 [trackbot]
- Created ACTION-879 - Add a note about the font-size: 0px vs min font-size web-compat issue [on Myles Maxfield - due 2019-06-11].
- 18:30:01 [TabAtkins]
- myles: I don't think we can get rid of the fact that monospace is special, for webcompat
- 18:30:17 [myles_]
- myles_ has joined #css
- 18:30:51 [TabAtkins]
- chris: So this is really about the fact that Courier looks too big.
- 18:31:06 [TabAtkins]
- chris: And browsers also noticed that CJK fonts can look too big at 16px by default
- 18:31:37 [TabAtkins]
- emilio: in gecko we do this based on the generic family specified.
- 18:32:25 [TabAtkins]
- myles: So "a, b, serif" gets a different font size than "a, b, monospace"
- 18:32:36 [TabAtkins]
- dbaron: Yes, because of the assumption that those fonts are probably monospace as well
- 18:32:48 [TabAtkins]
- fremy: As I recall that's not what was implemented by browsers...
- 18:33:05 [TabAtkins]
- myles: In WK, we only adjust if you say *only* "monospace"
- 18:33:27 [TabAtkins]
- myles: So using font-family to dictate font-size is fundamnetally broken, we all agree
- 18:33:29 [TabAtkins]
- [we all agree]
- 18:33:45 [TabAtkins]
- myles: So the question is if we shoudl write down exactly how it's broken. it sounds like everyone does it differently
- 18:34:56 [TabAtkins]
- dbaron: Given there's incompatibility, there's maybe room to improve this
- 18:34:58 [fantasai]
- [emilio describes some details of how this works]
- 18:35:07 [TabAtkins]
- dbaron: AT one point I had part of a plan to replace with with font-size-adjust
- 18:35:18 [TabAtkins]
- dbaron: Probably not web-compatible, but maybe... Would require new values.
- 18:36:00 [TabAtkins]
- fremy: Last I recall Edge didn't do any adjustments, but at some point we got a bug and added new UA rules that only targeted elements that get monospace by default. We don't apply it to the *monospace value* tho.
- 18:36:31 [fantasai]
- TabAtkins: We should capture in the property that extra bit of information captured about whether size was specified as a size
- 18:36:40 [fantasai]
- TabAtkins: because browsers seem to do something special in that case
- 18:36:45 [fantasai]
- AmeliaBR: Keywords are a bit vague anyway
- 18:36:55 [fantasai]
- TabAtkins: No flexibility in that they convert to a <length>
- 18:37:03 [fantasai]
- TabAtkins: You honor a <length> as a <length>
- 18:37:07 [fantasai]
- TabAtkins: But that's not how browsers work
- 18:37:19 [fantasai]
- TabAtkins: We might need to keep it underdefined, but at least that there's some thing special going on
- 18:37:29 [fantasai]
- fremy: We have interop, so let's spec that
- 18:37:34 [fantasai]
- TabAtkins: OK, but let's capture there's something
- 18:37:49 [fantasai]
- emilio: Gecko code... when you have multiple families, we behave like WebKit
- 18:37:53 [fantasai]
- emilio: Yay interop!
- 18:38:06 [fantasai]
- AmeliaBR: so weird behavior, but cross-browser consistent
- 18:38:11 [fantasai]
- chris: So how are we resolving?
- 18:38:21 [TabAtkins]
- dbaron: The thing this was solving is really a use-case for font-size-adjust
- 18:38:22 [fantasai]
- dbaron: Like to say that the thing this was soliving is a use case for font-size-adjust
- 18:38:30 [TabAtkins]
- dbaron: I'd like to encourage the negine that doesn't ipmlement f-s-a to do that.
- 18:38:32 [fantasai]
- dbaron: Would like engine that doesn't implement font-size-adjust that doesn't implement it to fix it
- 18:38:50 [fantasai]
- dbaron: It's ugly because it's designed to be compatible with its non-existence
- 18:39:04 [fantasai]
- dbaron: It's a way of saying "i want to specify font-size in terms of x-height instead of font-size"
- 18:39:13 [chris]
- https://developer.mozilla.org/en-US/docs/Web/CSS/font-size-adjust#Browser_compatibility
- 18:39:43 [TabAtkins]
- astearns: So it sound slike proposal is to acknowledge reality in font-size property that it makes font-sizes strange.
- 18:39:52 [Rossen_]
- Rossen_ has joined #css
- 18:39:52 [TabAtkins]
- astearns: And at minimum capture "it's strange" in the spec.
- 18:39:56 [dbaron]
- oh, actually, font-size-adjust may be behind the experimental web platform features flag in Chrome...
- 18:40:07 [fantasai]
- TabAtkins: Let's capture that keywords come with extra bit of info
- 18:40:14 [fantasai]
- TabAtkins: And also investigate if there's compat, andif so spec that
- 18:40:19 [fantasai]
- myles_: sgtm
- 18:40:27 [TabAtkins]
- astearns: Is there someone volunteering to do the investigation?
- 18:40:32 [TabAtkins]
- fremy: I volunteer.
- 18:40:50 [TabAtkins]
- astearns: proposal: acknowledge reality that font-size keywords have some weirdness with particular generic font families.
- 18:41:18 [TabAtkins]
- RESOLVED: Capture that font-size keywords carry an additional bit of information having some (unspecified) interaction with some font families.
- 18:41:29 [plh]
- plh has joined #css
- 18:41:39 [TabAtkins]
- astearns: Second is to deputize françois to try and capture what the weirdness is
- 18:42:09 [TabAtkins]
- RESOLVED: François does compat research on the effect of font-size keywords and generic font-families, and report back on interop.
- 18:42:15 [TabAtkins]
- Topic: math-script-level and math-style
- 18:42:22 [astearns]
- github: https://github.com/w3c/csswg-drafts/issues/3746
- 18:43:04 [TabAtkins]
- bkardell_: In doing Chromium impl of mathml, and trying to explain the mathml magic in a way that's part of the platform, there are some funky areas
- 18:43:11 [TabAtkins]
- bkardell_: So we want to get that funky added to CSS.
- 18:43:55 [AmeliaBR]
- Explainer link: https://mathml-refresh.github.io/mathml-css-proposals/math-script-level-and-math-style-explainer.html
- 18:43:59 [TabAtkins]
- bkardell_: One is math-style. As part of layout, takes into consideration whether your math equation is happening inline in text or as a block; aligns baselines differently and tries to minimize vertical size in inline, etc.
- 18:44:14 [TabAtkins]
- bkardell_: If we have that, this is one more thing that becomes a UA stylesheet rule.
- 18:44:49 [TabAtkins]
- bkardell_: math-script-level is in my mind a lot like counters. It lets you scale up or down font-size
- 18:45:08 [TabAtkins]
- emilio: So when you nest an element that's a subscript or superscript, or part of a fraction, the font-size shrinks.
- 18:45:21 [TabAtkins]
- emilio: But in CSS it affects the computed font-size, which is annoying.
- 18:45:40 [TabAtkins]
- fantasai: This effects the font-size. Why is it called script-level, and why is separate from font-size?
- 18:46:06 [TabAtkins]
- bkardell_: This is how I think it's similar to counters, it carries info about nesting.
- 18:46:42 [TabAtkins]
- AmeliaBR: So elika's question is why not do this with relative font sizes. I think reason is to give browsers some more flexibility...
- 18:46:56 [TabAtkins]
- fantasai: We can have math-larger and math-smaller...
- 18:47:18 [TabAtkins]
- fremy: If you have a fraction, 1/2. You can nest, 1/(1/2). But third level of nesting, switch to a side-by-side fraction.
- 18:47:46 [TabAtkins]
- bkardell_: Even within that context, you can have sub/superscripts too.
- 18:48:06 [TabAtkins]
- AmeliaBR: There definitely needs to be a new property. Math fonts have a property saying how much you scale down as you go down a script level.
- 18:48:27 [TabAtkins]
- AmeliaBR: Do you need to be able to absolutely set "3 sizes down from normal", or is it always single steps?
- 18:49:08 [TabAtkins]
- bkardell_: These map stragiht from MathML attributes. I know the name isn't great, but
- 18:49:17 [myles_]
- q+
- 18:49:27 [TabAtkins]
- emilio: Figuring out which nodes need to incrmeent or decrement the script level is pretty tricky
- 18:49:28 [AmeliaBR]
- `font-size-math-adjust`???
- 18:49:56 [TabAtkins]
- emilio: It would be good to see if we can decouple the script-level from font-size, because it becomes much easier, add an "auto" value and figure it out doing layout or something
- 18:50:11 [TabAtkins]
- AmeliaBR: Does nesting level have effects other than font-size?
- 18:50:19 [TabAtkins]
- myles_: bkardell said yes
- 18:50:29 [una]
- what about `font-size-math-adjust: <nesting-level>`
- 18:50:37 [TabAtkins]
- fantasai: So then you'd want to *select* based on that level. So then that info must be in the DOM.
- 18:51:01 [TabAtkins]
- fantasai: We've had similar cases in the past of things thought to be in CSS that we pushed back and said "no, this needs to be in the DOM".
- 18:51:16 [TabAtkins]
- fantasai: Like directionality.
- 18:51:25 [myles_]
- s/bkardell said yes/fremy said yes/
- 18:51:29 [astearns]
- ack myles_
- 18:51:41 [astearns]
- q+ myles_
- 18:51:49 [fremy]
- (yep, for the record I agree with fantasai)
- 18:52:06 [TabAtkins]
- dbaron: I think one of the reasons for this is that mathml has attributes that specify both the ratio of font-size for each change in script level, and the min font-size at which you stop changing it.
- 18:52:22 [TabAtkins]
- dbaron: script-size-multiplier and script-min-size
- 18:52:50 [TabAtkins]
- fantasai: Does this mean we're adding font-min-size back?
- 18:53:14 [TabAtkins]
- myles_: There have been a half-dozen or so of these proposals. How do these affect existing elements outside of MathML?
- 18:53:56 [Karen]
- Karen has joined #css
- 18:53:57 [TabAtkins]
- bkardell_: Some people do indeed think that <math> isn't great, and math layout should be a normal part of CSS.
- 18:54:06 [una]
- `font-size-math-adjust: <max-nesting-level> / <min-font-size>`
- 18:54:24 [TabAtkins]
- florian: I think we want the building blocks of math in normal CSS. And I've heard the argument that MathML is bad for math; mathjax people will do that.
- 18:55:00 [TabAtkins]
- florian: So mathjax renders math into HTML or SVG, but they're missing some tools that make it subpar.
- 18:55:31 [TabAtkins]
- myles_: So what's the criteria here: hsould math layout be dumped in whole-hog?
- 18:55:44 [chris]
- https://www.w3.org/TR/MathML3/chapter3.html#presm.mstyle.attrs
- 18:55:45 [TabAtkins]
- bkardell_: We're trying to find the mathml core and eliminate as much as possible.
- 18:55:55 [TabAtkins]
- bkardell_: So far we've been doing good at that.
- 18:56:08 [TabAtkins]
- bkardell_: Reusing CSS stuff well.
- 18:56:11 [chris]
- also https://www.w3.org/TR/MathML3/chapter3.html#presm.scriptlevel
- 18:56:35 [TabAtkins]
- astearns: I hear this as a request from another group, like the timed text people, to get something that they can't currently do in CSS.
- 18:56:59 [tantek]
- q?
- 18:57:07 [fantasai]
- TabAtkins: Is the goal that you can implement math layout with <div>s, or are we still using mathml but ...
- 18:57:16 [TabAtkins]
- dbaron: There are two different groups in w3c working on diff solutions here
- 18:58:03 [TabAtkins]
- s/are we still using mathml but .../are we saying that mathml is a special layout form, like SVG, that can have its own specialized CSS without influencing arbitrary text layout/
- 19:00:06 [myles]
- myles has joined #css
- 19:00:43 [TabAtkins]
- myles_: So if this is a generic layout mechanism, you need to be able to put flexbox inside of it
- 19:01:07 [TabAtkins]
- florian: I don't think we want to be able to take naive markup and get good math out of it.
- 19:01:24 [fantasai]
- TabAtkins: Are we intending that you can make a fraction, and the nuerator is a flexbox?
- 19:01:26 [iank_]
- q+
- 19:01:31 [astearns]
- ack myles_
- 19:01:37 [fantasai]
- TabAtkins: If so, you can nest flexbox into it. If not, then you can't.
- 19:01:46 [fantasai]
- TabAtkins: But need to know which way we're going so we can figure out how to interact with it
- 19:01:52 [fantasai]
- chrisl: ...
- 19:01:57 [fantasai]
- TabAtkins: We'd make a Math layout spec
- 19:02:04 [TabAtkins]
- iank_: So basically mathml is already in this state where you can nest CSS layout inside of it
- 19:02:13 [TabAtkins]
- iank_: And it uses CSS layouts to ahcieve some of its layouts
- 19:02:18 [TabAtkins]
- iank_: so <mtable> uses css tables
- 19:02:29 [TabAtkins]
- iank_: The text inside of mathml is just text layout, it can do floats/etc
- 19:02:38 [tantek]
- q?
- 19:02:43 [TabAtkins]
- iank_: This was the feedback we gave to the group: you need to define how this interacts with all of CSS.
- 19:02:47 [astearns]
- ack iank_
- 19:02:52 [tantek]
- q+
- 19:03:21 [TabAtkins]
- myles_: ARe you saying that philophically that's how this shoudl be designed, or that it's just a quirk of impl.
- 19:03:58 [TabAtkins]
- Rossen: So support rich layout that allows math, and interacts nicely with the rest of css.
- 19:03:58 [fremy]
- q+
- 19:04:33 [astearns]
- ack tantek
- 19:04:39 [TabAtkins]
- astearns: A detail is that some requirements, we may not get to. LIke western typography, some details we never get to.
- 19:04:50 [TabAtkins]
- myles_: So the intention is that we end up with display:math at some point?
- 19:05:13 [TabAtkins]
- AmeliaBR: display:fraction, perhaps, like display:ruby : some specialized focused layouts as necessary
- 19:05:56 [dauwhe]
- this is a w3c strategy funnel issue https://github.com/w3c/strategy/issues/43
- 19:08:01 [myles]
- q+
- 19:08:11 [tantek]
- q-
- 19:08:12 [una]
- una has joined #css
- 19:08:49 [astearns]
- ack fremy
- 19:08:58 [TabAtkins]
- fremy: So math-level.
- 19:09:16 [TabAtkins]
- fremy: If you want a layout that's different depending on the math level, that's fine. We could do that.
- 19:09:29 [dauwhe]
- https://www.w3.org/community/knowledge-domain/
- 19:09:30 [TabAtkins]
- fremy: But the way I see this is that math-level is changing other properties, in some weird interaction.
- 19:09:41 [astearns]
- q+
- 19:09:42 [TabAtkins]
- fremy: So my mental model matches fantasai, this is at the DOM level.
- 19:09:58 [TabAtkins]
- fremy: And if we go the "you should do math using divs", that doesn't work.
- 19:10:32 [TabAtkins]
- fremy: My impression from when I worked on this, is that this is complex to put in a CSS property.
- 19:10:35 [florian]
- q+
- 19:10:42 [TabAtkins]
- fremy: But if our goal is to allow everything in CSS, I don't see how it's a markup thing.
- 19:11:24 [TabAtkins]
- fremy: So question is we need mathml markup, or is there a simplified markup that would provide the grouping/level/etc that we could provide the levels on top of.
- 19:11:35 [astearns]
- ack myles
- 19:11:45 [TabAtkins]
- myles: So let's say we do wanna go on this path where we induct math layout into CSS.
- 19:11:56 [TabAtkins]
- myles: When we write CSS specs we have to describe layout exactly.
- 19:12:16 [TabAtkins]
- myles: Do you envision that this group would make those decisions, or that MathML would do it and deliver them to us and we'd put them into our docs?
- 19:12:24 [TabAtkins]
- bkardell_: Right now they're trying to get that defined.
- 19:12:32 [TabAtkins]
- bkardell_: Huge criticism right now is that it's super underdefined.
- 19:12:55 [TabAtkins]
- iank_: As part of our launch process we require interop-capable specification.
- 19:13:06 [tantek]
- FYI: https://caniuse.com/mathml
- 19:13:06 [TabAtkins]
- iank_: And the two impls currently aren't remotely interoperable, especially layout.
- 19:13:21 [TabAtkins]
- iank_: I spent two or three hours one day and created a list of issues where Firefox and WebKit differ.
- 19:14:14 [florian]
- q?
- 19:14:35 [TabAtkins]
- fantasai: If mathml is going to define a layout model closer to css, they should def interact with us more than what's happening currently.
- 19:14:51 [TabAtkins]
- fantasai: So we can make sure it's compatible with css layout and all the interactions with othe rproeprties.
- 19:14:53 [tantek]
- Is there an opportunity for CSS/MathML joint meeting at TPAC?
- 19:15:00 [TabAtkins]
- fantasai: Just because of where the expertise lies.
- 19:15:08 [AmeliaBR]
- q+
- 19:15:36 [Rossen_]
- q?
- 19:15:47 [TabAtkins]
- astearns: I would really like to see more stuff in the explainer. Righ tnow it looks like a reiteration fo the proposal. It has some markup examples without intended renderings, etc.
- 19:15:58 [Rossen_]
- ack astearns
- 19:16:09 [TabAtkins]
- fantasai: SAme, I don't really understand what it's trying to do currently. So I can't even comment on whether they're doing it right or not.
- 19:16:29 [TabAtkins]
- fantasai: So somebody came up with a solution to a problem, but I don't udnerstand the problem, or why this is the best solution to that problem.
- 19:16:38 [TabAtkins]
- fantasai: Would love to advise them, but can't right now.
- 19:17:03 [astearns]
- ack florian
- 19:18:22 [TabAtkins]
- florian: Back to fremy's point, for those trying to solve math with css, i don't think the goal is markup that resembles mathml and uses display:fraction, display:sqrt, etc. I think it was to start from a mathml-ish markup that is processed into a pile of divs, then rendering fractions with a vertical flexbox, etc. Only a few lacking aspects would need to be added.
- 19:18:41 [TabAtkins]
- fremy: I don't disagree, that's also an option. But if that's the goal then you don't need the math-script-level property.
- 19:19:14 [TabAtkins]
- myles: Agree. We already have SVG then.
- 19:19:31 [astearns]
- ack AmeliaBR
- 19:19:40 [TabAtkins]
- TabAtkins: SVG doesn't quite solve it - we still need a few small things, like baseline control, stretchy characters. Talked about this at last TPAC. But it's pretty minimal.
- 19:20:09 [TabAtkins]
- AmeliaBR: So wrapping up, we have some requests from Brian's team at Igalia about how we want communication to happen, better explainers. larger comprehensive use-cases, rather than one proposal at a time.
- 19:20:27 [TabAtkins]
- AmeliaBR: Would be useful if this group gave feedback about how we'd like to be communicated with.
- 19:20:53 [TabAtkins]
- AmeliaBR: And then there's further concern about where things should live, CSS vs DOM, etc.
- 19:20:58 [astearns]
- ack dbaron
- 19:21:10 [antonp]
- antonp has joined #css
- 19:21:16 [AmeliaBR]
- s/requests from/requests for/
- 19:21:19 [TabAtkins]
- dbaron: elika was asking about the problem to be solved. There is a political disagreement about the problem.
- 19:21:32 [TabAtkins]
- dbaron: In that, there is the question of whether mathml is the way forward.
- 19:21:53 [TabAtkins]
- dbaron: A few years ago when it was in Firefox only and we thought we might remove it, everyone thought MathML wasn't the right way to do it; do it in CSS instead, etc.
- 19:22:00 [TabAtkins]
- dbaron: And add to CSS to improve mathjax output.
- 19:22:14 [TabAtkins]
- dbaron: Now we're somewhat surprisingly getting to a world where mathml is supported across browser engines.
- 19:22:34 [TabAtkins]
- dbaron: So question is whether mathml is, like html, something that needs CSS to reflect on things in it.
- 19:22:49 [TabAtkins]
- dbaron: ARe we concerned with MathML backcompat such that CSS needs to care about its legacy mechanisms.
- 19:23:03 [TabAtkins]
- dbaron: Or do we have substantial flexibility to change things as necessary.
- 19:23:13 [TabAtkins]
- dbaron: So three possibilities:
- 19:23:22 [TabAtkins]
- dbaron: 1. MathML is in browser engines, CSS has to be compatible with that.
- 19:23:41 [TabAtkins]
- dbaron: 2. MathML is in browser engines, but we might make substantial changes in the process and can adjust it to CSS better.
- 19:23:58 [TabAtkins]
- dbaron: 3. MathML isn't the right path forward, and math should be taking this up the path.
- 19:24:27 [TabAtkins]
- dbaron: Path to making this decision right now is very uncoordinated and not based on principles, but rather on lots of small decisions where people might not be aware of the larger path they're supporting.
- 19:24:33 [TabAtkins]
- dbaron: Possible we should be discussing this more epxlicitly.
- 19:24:51 [TabAtkins]
- dbaron: I think before we decide waht we're trying to solve, we might want to have that discussion.
- 19:25:15 [TabAtkins]
- bkardell_: Before I went to Igalia, I spent a lot of time thinking about this.
- 19:25:22 [TabAtkins]
- bkardell_: My own thought were between 2 and 3.
- 19:25:37 [TabAtkins]
- bkardell_: HTML isn't very perfect semantically either, it's focused on text.
- 19:26:06 [TabAtkins]
- bkardell_: So it has no starting point. It's not like SVG, where we all agree what SVG is.
- 19:26:22 [TabAtkins]
- bkardell_: Thirty years the community has been working on something, lots of back and forth.
- 19:26:41 [TabAtkins]
- bkardell_: When we got to HTML5 and mathml was codified into the parser, now it's in a special weird place.
- 19:27:01 [TabAtkins]
- bkardell_: If there's something I'd personally advocate, it's that we need to find a starting point or we can't have this convo.
- 19:27:26 [TabAtkins]
- bkardell_: So back with corp hat on, the core-math group is trying to find the minimal bits that hold things together.
- 19:27:54 [TabAtkins]
- bkardell_: I don't want to personally be like "mathml is the best thing ever", I dunno. I want to be malleable here.
- 19:28:11 [TabAtkins]
- <br dur=20min>
- 19:30:21 [myles_]
- myles_ has joined #css
- 19:39:31 [TabAtkins]
- myles_: Minutes of the Math session during last year's tpac: https://lists.w3.org/Archives/Public/www-style/2018Nov/0008.html
- 19:44:36 [dbaron]
- github-bot, end topic
- 19:44:59 [rachelandrew______]
- rachelandrew______ has joined #css
- 19:45:10 [dbaron]
- https://twitter.com/tpsoperations/status/1135982093631152128
- 20:00:06 [myles]
- myles has joined #css
- 20:00:48 [tantek]
- present+
- 20:07:49 [fremy]
- fremy has joined #css
- 20:07:55 [fremy]
- ScribeNick: fremy
- 20:07:56 [chris]
- present+
- 20:08:42 [jensimmons]
- jensimmons has joined #css
- 20:09:17 [emilio]
- koji: https://bugzilla.mozilla.org/show_bug.cgi?id=1418472
- 20:09:33 [fremy]
- Topic: Remove at-risk marker for percentages in column-gap
- 20:09:40 [astearns]
- github: https://github.com/w3c/csswg-drafts/issues/3988
- 20:09:56 [fremy]
- rachelandrew______: there was a resolution before I joined the group to mark percentages in column-gap at risk
- 20:10:03 [Rossen_]
- Rossen_ has joined #css
- 20:10:07 [una]
- una has joined #css
- 20:10:16 [fremy]
- rachelandrew______: but Firefox implemented it, and now the property applies on grid and flexbox as well
- 20:10:26 [fremy]
- rachelandrew______: so they asked if the at-risk could get removed
- 20:10:37 [fremy]
- astearns: do we have implementation report?
- 20:10:43 [fremy]
- rachelandrew______: yes
- 20:11:01 [fremy]
- astearns: does any other implementation want to get it removed?
- 20:11:11 [fremy]
- astearns: I assume not since we resolved to allow it?
- 20:11:33 [fremy]
- florian: yeah, I'd agree to remove because sometimes implementors are afraid to implement it
- 20:11:46 [fremy]
- AmeliaBR: yeah, at-risk should be redefined to be less scary
- 20:12:00 [fremy]
- florian: yeah, that's just the name though, the description is already encouraging implementation
- 20:12:21 [fremy]
- florian: it would be nice to change the name at the w3c level, but this hasn't happened anymore
- 20:12:28 [tiger]
- tiger has joined #css
- 20:12:31 [fremy]
- s/anymore/yet
- 20:12:40 [fremy]
- AmeliaBR: do we have tests to back this up?
- 20:12:56 [fremy]
- rachelandrew______: yes, and on top of that we have tests for grid as well, where it is implemented
- 20:13:08 [fremy]
- astearns: any objection to remove the at-risk commned?
- 20:13:35 [fremy]
- iank_: there is only one test, and that is a bit low
- 20:13:36 [rego]
- rego has joined #css
- 20:13:44 [fremy]
- iank_: we would need tests for intrinsic sizing etc
- 20:13:52 [fremy]
- iank_: but I'm ok to remove the at-risk
- 20:13:58 [fremy]
- astearns: resolved then
- 20:14:19 [fremy]
- RESOLVED: remove at-risk percentages on column-gap (and add some tests)
- 20:14:33 [fremy]
- Topic: where do we define column-gap
- 20:14:36 [astearns]
- github: https://github.com/w3c/csswg-drafts/issues/3641
- 20:14:48 [fremy]
- rachelandrew______: we define column-gap in multicol and box alignment
- 20:15:09 [fremy]
- rachelandrew______: authors were discussing how confusing that was
- 20:15:29 [fremy]
- rachelandrew______: I'd rather define column-gap in alignment, and just mention the specificities of column-gap for columns in multicol
- 20:16:09 [fremy]
- florian: we kinda did the same thing for break properties, where they usually were defined in multiple places, and now we consolidated in css-break and we added notes to the other places
- 20:16:20 [fremy]
- AmeliaBR: we should consider REC progress though, so we don't get stuck
- 20:16:42 [fremy]
- fantasai: css-align is really close to REC, so I don't think that would be an issue
- 20:16:49 [fantasai]
- s/REC/CR/
- 20:16:51 [fremy]
- fantasai: the only remaining issue is baseline alignment
- 20:16:59 [fremy]
- fantasai: and we could move that to the next level
- 20:17:02 [fantasai]
- s/issue/significant source of issues/
- 20:17:10 [fremy]
- AmeliaBR: then that seems fine
- 20:17:54 [fremy]
- astearns: suggested edit is to add an heading to explain how column-gap works in multicol, but define in box-alignment only
- 20:17:58 [fremy]
- astearns: any objection?
- 20:18:06 [fremy]
- RESOLVED: add an heading to explain how column-gap works in multicol, but define in box-alignment only
- 20:18:15 [fremy]
- (and link between them)
- 20:18:45 [AmeliaBR]
- s/astearns: suggested/rachelandrew______: suggested/
- 20:18:45 [fremy]
- Topic: why was min-content redefined to do nothing on the block axis?
- 20:19:39 [fremy]
- fantasai: since christian raised this issue, it would be good to have him on the line when we discuss this?
- 20:19:46 [fremy]
- fantasai: (this was a question)
- 20:20:00 [fremy]
- astearns: we could move to the next one to see if we can get christian on the line?
- 20:20:05 [fantasai]
- cbiesinger: ping
- 20:20:15 [fremy]
- iank_: (pinging christian on slack)
- 20:22:00 [fremy]
- (cbiesinger dialing in)
- 20:22:23 [fremy]
- <br type="technical" /> ;-)
- 20:25:51 [fremy]
- astearns: cbiesinger can you summarize the issue?
- 20:26:01 [fremy]
- cbiesinger: there was a change in css-sizing spec
- 20:26:09 [fremy]
- cbiesinger: now min-content does the same as the initial value
- 20:26:15 [astearns]
- github: https://github.com/w3c/csswg-drafts/issues/3973
- 20:26:16 [fremy]
- cbiesinger: which is great for height
- 20:26:29 [fremy]
- cbiesinger: but for min-height for instance, this is a change in behavior
- 20:26:49 [fremy]
- cbiesinger: and in flexbox with auto, you can't get a specific effect that you used to get before
- 20:27:03 [fremy]
- cbiesinger: so we should probably redefine it again so that it does a different thing by property
- 20:27:10 [fremy]
- fantasai: makes sense to me
- 20:27:23 [fremy]
- dbaron: the assumption is that it was defined before
- 20:27:34 [fremy]
- dbaron: but before it wasn't clear to me what it was actually supposed to do
- 20:27:42 [fremy]
- dbaron: you have block size that is derived from the content
- 20:27:53 [fremy]
- dbaron: but it doesn't say which inline size is used to get that layout done
- 20:28:13 [fremy]
- dbaron: so in the general case, what would be that inline size?
- 20:28:26 [fremy]
- dbaron: is that a function of something else? how does it get passed in to this?
- 20:28:32 [fremy]
- cbiesinger: yay, that's true
- 20:29:11 [fremy]
- cbiesinger: the definition of the min-content block size still exists in the spec though
- 20:29:25 [fremy]
- cbiesinger: and it has this issue, so we need to fix this no matter what
- 20:29:36 [fremy]
- dbaron: sure, but I'm not sure we should have this in the spec at all
- 20:29:37 [Karen]
- Karen has joined #css
- 20:29:44 [AmeliaBR]
- min-content block size definition: https://drafts.csswg.org/css-sizing-3/#min-content-block-size
- 20:30:10 [fremy]
- cbiesinger: in the common case in a column-flexbox, it defaults to min-height, min-content
- 20:30:18 [myles_]
- myles_ has joined #css
- 20:30:23 [fremy]
- dbaron: and how do you determine what that height is?
- 20:30:34 [fremy]
- cbiesinger: you use the inline size you derive from the sizing properties
- 20:30:52 [fremy]
- dbaron: so it's not really an intrinsic size, it's a specific size that depends on the layout you are in the middle of doing
- 20:31:06 [fremy]
- dbaron: so we don't really need this concept for that case
- 20:31:32 [fremy]
- dbaron: but for othogonal flows, you'd allegedly need the general case?
- 20:31:47 [fremy]
- fantasai: for orthogonal flows, you have to pick a size anyway
- 20:32:02 [fremy]
- dbaron: so, ok, regardless, we need to define very precisely that inline size
- 20:32:19 [fremy]
- iank_: is it true that in our implementation, the value is (...) ?
- 20:32:32 [fremy]
- cbiesinger: yes, the post-layout size is (...)?
- 20:33:13 [fremy]
- iank_: in our implementation, min-content and max-content were the same, and were the post-layout block size of this element, as if no other constraints were applied
- 20:33:22 [fremy]
- ^ clarifying the ... above
- 20:33:30 [fremy]
- iank_: and it works thanks to the clamping
- 20:33:53 [fremy]
- fantasai: I think it's very clear to me that the change was not correct anyway
- 20:34:01 [fremy]
- fantasai: so we should revert this edit anyway
- 20:34:12 [fremy]
- fantasai: but I agree we should also make sure we get things defined explicitly
- 20:34:28 [fremy]
- fantasai: and maybe think whether min-content and max-content should be the same
- 20:34:38 [fremy]
- dbaron: and even if they are the same, we need to define what they are
- 20:34:56 [fremy]
- dbaron: but if we don't have a first-layout pass, sometimes it happens?
- 20:35:11 [fremy]
- iank_: for min-height/max-height you do, because you clamp an existing height
- 20:35:35 [fremy]
- fantasai: so, yeah, using the default value is wrong because sometimes auto is not min-content
- 20:35:57 [fremy]
- fantasai: I can't think of a reason for blocks to want min-content != max-content
- 20:36:16 [fremy]
- fantasai: maybe for grid, we could trigger the different distributions algorithms for them
- 20:36:21 [fremy]
- fantasai: we should think about that
- 20:36:23 [fantasai]
- s/maybe/but/
- 20:36:44 [fantasai]
- It's less clear that they should be different in this case, because there are different space distribution rules for each
- 20:36:46 [fremy]
- astearns: so, I hear that we want to revert, and try to get a definition for this
- 20:36:59 [fremy]
- astearns: even if there is some scepticism we can get a definition that works
- 20:37:17 [fremy]
- dbaron: I would also not want to call them intrinsic if they are not intrinsic anymore
- 20:37:39 [fremy]
- dbaron: it seems to me we are defining something else entirely
- 20:37:56 [fremy]
- dbaron: doing some of these things require major changes in some algorithms, and I'm not sure what the use cases are
- 20:38:06 [fremy]
- cbiesinger: min-height:min-content seems useful
- 20:38:28 [fremy]
- dbaron: it is not impossible that this could take a year for us to implement, and I'm not sure this is worth
- 20:39:04 [fremy]
- dbaron: there are some existing implementations, but did we check that they match, and not are just superficially similar
- 20:39:09 [fremy]
- dbaron: I am not sure
- 20:39:15 [fremy]
- dbaron: so I don't want to take this lightly
- 20:39:24 [fremy]
- dbaron: so I would rather have a full proposal
- 20:39:50 [fremy]
- dbaron: so I can evaluate complexity, and evaluate the cost/benefit ratio
- 20:40:17 [fremy]
- dbaron: there are things that happen in gecko when you specify these things of course, but are we interop? probably not?
- 20:40:31 [fremy]
- emilio: I don't think we have impelemnted to block size that works in the block axis
- 20:40:51 [fremy]
- TabAtkins: (pointing another case that seems wrong in gecko, even in the inline axis)
- 20:41:08 [fremy]
- cbiesinger: agrees that some cases are difficult in the inline cases
- 20:41:38 [fremy]
- TabAtkins: we do use an approximation here, that was better than gecko that assumes a single-column
- 20:41:49 [fremy]
- TabAtkins: Edge had a good implementation
- 20:41:59 [fremy]
- TabAtkins: but regardless, we didn't
- 20:42:12 [fremy]
- TabAtkins: so I tend to agree that intrinsic isn't always as "intrinsic" as the name implies
- 20:42:18 [fremy]
- TabAtkins: it sometimes requires full layout
- 20:43:07 [fremy]
- fantasai: how about changing the spec to say that we want to match the `auto` height
- 20:43:19 [fremy]
- fantasai: but in the sense of `auto` that computes an height
- 20:43:35 [fremy]
- fantasai: not like in grid where `auto` sometimes means `stretch` etc
- 20:43:37 [fantasai]
- s/height/height based on the content size, rather than filling the container etc./
- 20:43:52 [fremy]
- astearns: can we resolve of reverting?
- 20:44:09 [fremy]
- dbaron: I'm uncomfortable going back to undefined
- 20:44:23 [fremy]
- astearns: but other engines don't want that current spec text
- 20:44:32 [fremy]
- dbaron: ok, but this is a can of worms
- 20:44:47 [fremy]
- dbaron: (snarky comments about multiple engines)
- 20:44:59 [fremy]
- cbiesinger: I'm optimistic we could get this interoperable
- 20:45:22 [fremy]
- iank_: for the cases that cbiesinger described, it would be easy to implement the correct behavior for that subset
- 20:45:27 [fremy]
- iank_: and we think it's useful
- 20:45:54 [fremy]
- astearns: as you implement subset, it would be nice to describe things in details, so we could find out if interop is possible
- 20:46:31 [fremy]
- fantasai: technically, the behavior we want should already exist in the engine, it might not just be called in that specific scenario
- 20:46:49 [fremy]
- fantasai: but the keyword would allow to tap in the computations that exist
- 20:47:13 [fremy]
- fantasai: possibly there are cases where you would need much more layout than engines are willing to do
- 20:47:22 [fremy]
- fantasai: but there are a lot of reasonable cases
- 20:47:32 [fremy]
- fantasai: and for those cases we should figure out what should happen and standardize that
- 20:47:38 [fantasai]
- s/to do/to do, e.g. for the width of a multiline column flexbox/
- 20:48:27 [fremy]
- astearns: basically dbaron hesitates due to lack of precise details
- 20:48:45 [fremy]
- cbiesinger: is there a particular case you think would be very hard?
- 20:48:51 [fremy]
- cbiesinger: so we could find out if we could solve that one?
- 20:49:27 [fremy]
- dbaron: intrinsic size depending on the inline, it could depend on layout optimizations
- 20:49:42 [fremy]
- dbaron: and there might be cases where we try to figure out block before inline
- 20:49:53 [fremy]
- dbaron: and all those cases seem intricate
- 20:50:16 [fremy]
- fantasai: yeah, grid has two passes for that reason
- 20:50:47 [fremy]
- fantasai: (explains how these metrics are computed already today, she thinks)
- 20:51:26 [fremy]
- dbaron: I'm worried it uses a value from late in the system, early in the system
- 20:51:53 [fremy]
- dbaron: gladly calc doesn't allow to make computations based on those values usually
- 20:52:05 [fremy]
- dbaron: but there might be cases where we do this accidentally in the algorithm
- 20:52:13 [fremy]
- dbaron: and it might cause instability/ec
- 20:52:34 [fremy]
- cbiesinger: I understand the concerns now
- 20:52:42 [fremy]
- cbiesinger: I'm still inching towards it's sufficiently useful
- 20:52:52 [fremy]
- dbaron: is is sufficiently useful that you would be willing to write a spec?
- 20:53:26 [fremy]
- TabAtkins: (proposed to meet next time he was in new-york to work on it, but cbiesinger is not based in NY)
- 20:53:39 [fremy]
- cbiesinger: I will write something
- 20:53:43 [fremy]
- cbiesinger: I can try writing a spec
- 20:54:12 [fremy]
- astearns: so, first resolution attempt, can we revert what's in the spec now?
- 20:54:43 [fantasai]
- https://github.com/w3c/csswg-drafts/issues/3973#issuecomment-498062046
- 20:54:45 [fremy]
- (can we get a link to the change)
- 20:55:37 [fremy]
- dbaron: do we know why we made the resolution that let to this changeset?
- 20:55:41 [fremy]
- TabAtkins: I don't recall
- 20:57:27 [fremy]
- dbaron: what I don't like is that the revert will trigger chrome to revert
- 20:57:38 [fremy]
- dbaron: and that revert will be unspecced but people will rely on their behavior
- 20:57:55 [fremy]
- florian: we could have an issue in the spec
- 20:58:18 [fremy]
- Rossen: that seems overkill, we have an issue on github seems enough
- 20:58:40 [fremy]
- Rossen: I think it would be better to first get a strawman of the chrome behavior, and we can resolve the revert at that time
- 20:58:43 [fremy]
- cbiesinger: ok, sounds fine
- 20:58:58 [fremy]
- any objection to this way forward?
- 20:59:27 [fremy]
- RESOLVED: cbiesinger will document chrome's behavior and we will revisit
- 21:00:08 [fremy]
- Topic: should outline apply to elements with display:contents
- 21:00:15 [astearns]
- github: https://github.com/w3c/csswg-drafts/issues/3323
- 21:00:17 [myles]
- myles has joined #css
- 21:00:36 [fremy]
- TabAtkins: I don't think it shouldn't
- 21:00:50 [fremy]
- TabAtkins: this property is already weird and magic
- 21:00:58 [innovati]
- innovati has joined #css
- 21:01:12 [fremy]
- florian: there is a trend however towards removing the magic
- 21:01:27 [fremy]
- TabAtkins: it's ok, we will then spec this case
- 21:01:36 [fremy]
- dbaron: we usually had outlines around descendants
- 21:01:36 [argyle]
- argyle has joined #css
- 21:01:42 [fremy]
- dbaron: and that caused issues
- 21:01:54 [fremy]
- iank_: in chrome there is a difference between focus and normal outlines
- 21:02:03 [fremy]
- bkardell_: can you clarify that?
- 21:02:06 [fremy]
- iank_: not correctly
- 21:02:36 [fremy]
- florian: when outline-style is auto, browsers can do even more magic than the other values, which already are permissive
- 21:03:00 [fremy]
- florian: focus outline in chrome is even more special than auto, I think, but it's not clear this is a requirement or historical accident
- 21:03:24 [fremy]
- TabAtkins: what if required to be the bounding box of all descendants
- 21:03:31 [fremy]
- florian: that's too much
- 21:03:44 [fremy]
- florian: we still want fragment outlines
- 21:04:05 [iank_]
- q+
- 21:04:06 [emilio]
- q+
- 21:04:16 [fremy]
- florian: I think it's ok to just say that for that special cases we will support the children
- 21:04:27 [fremy]
- florian: we will spec later
- 21:04:49 [fremy]
- una: but we would still render an outline around the element, right?
- 21:04:59 [fremy]
- TabAtkins: for display:contents there is no box for the element
- 21:05:50 [fremy]
- AmeliaBR: if we define an algorithm that creates a set of polygons based on the descendants, that would be fine, but if we want to use a box, this won't work
- 21:05:51 [bkardell_]
- q+
- 21:06:09 [fremy]
- TabAtkins: sure, but I would want to special case this in this very specific case
- 21:06:22 [fremy]
- AmeliaBR: also for other cases, or just display contents
- 21:06:39 [astearns]
- ack iank_
- 21:06:43 [fremy]
- TabAtkins: obviously people don't like it, so maybe just for display:contenents
- 21:06:59 [fremy]
- iank_: enabling outlines on display:contents is very difficult for our implementation to do
- 21:07:02 [fremy]
- iank_: so I
- 21:07:08 [fremy]
- 'd prefer not to go down that path
- 21:07:23 [fremy]
- iank_: I'm a little bit concerned about the accessibility case
- 21:07:35 [fremy]
- emilio: my comment was in the same direction
- 21:07:49 [fremy]
- emilio: drawing something keyed off that doesn't exist in the tree, is tricky
- 21:08:15 [fremy]
- emilio: focus on these elements is already something that is weird already
- 21:08:24 [fremy]
- emilio: I'm afraid it wouldn't be interoperable
- 21:08:30 [fremy]
- TabAtkins: well we could define this
- 21:08:50 [fremy]
- emilio: for the bikeshed cases, we could add a css rule
- 21:09:01 [fremy]
- like a:focus > * { outline: auto }
- 21:09:25 [fremy]
- TabAtkins: yeah, and if I had subgrid I woudln't need it either way, maybe that's fine
- 21:09:28 [bkardell_]
- q-
- 21:09:41 [fremy]
- emilio: and for the a11y tree, I think we resolved they would be in the tree
- 21:09:48 [fremy]
- fantasai: yes, they are in the tree, we resolved on this
- 21:10:37 [fremy]
- TabAtkins: so for bikeshed, I can add the rule, and use subgrid later, it's fine
- 21:10:47 [fremy]
- TabAtkins: you can already tab to them
- 21:10:57 [fantasai]
- fremy: That's not true yet
- 21:11:28 [fremy]
- dbaron: saying these elements have an outline is like poking a hole in the model
- 21:11:49 [fremy]
- dbaron: it's a bit weird, at what point are we not opening a can of worms?
- 21:11:52 [jensimmons]
- subgrid will lessen the desire to use `display: contents` to make grandchildren into grid items — but the usecase for Flexbox is the same. To make a flexbox grandchildren into flex items
- 21:12:11 [fremy]
- dbaron: like, people might want to ask other stuff like background
- 21:12:25 [fremy]
- TabAtkins: I think this is very specific though
- 21:12:36 [leaverou]
- fwiw, it looks like elements with display: contents elements don't receive focus right now in either Chrome or Gecko (not sure if that's related to the bug mentioned): https://codepen.io/leaverou/pen/oROLQm
- 21:12:53 [fremy]
- TabAtkins: like you can focus or interact with something, and outline is needed to show that, but it's very specific
- 21:13:06 [fremy]
- una: so you use display:contents and still want to interact, what is the use case?
- 21:13:20 [fremy]
- TabAtkins: explains the use case (bikeshed)
- 21:13:36 [fremy]
- una: so, you definitely want outlines here right?
- 21:13:45 [fremy]
- TabAtkins: yes!
- 21:13:55 [fremy]
- TabAtkins: and I believe this is the only hole we want to make
- 21:14:11 [fremy]
- fantasai: can we get bikeshed to stop doing this while it's not fixed everywhere though?
- 21:14:16 [fremy]
- TabAtkins: ok, fine
- 21:14:20 [fantasai]
- s/it's/a11y is/
- 21:14:46 [fremy]
- astearns: so, can we resolve on this?
- 21:15:04 [fremy]
- florian: I think it's fine to let authors have to supply the rule?
- 21:15:16 [fremy]
- emilio: I would like that
- 21:15:24 [fremy]
- TabAtkins: it woudln't work by default though
- 21:15:30 [fremy]
- emilio: yes, I think
- 21:16:25 [fremy]
- (discussion about the fact we might get a few outlines next to each other)
- 21:16:31 [fremy]
- TabAtkins: I think it's fine
- 21:16:49 [fremy]
- florian: And we want a note to make sure authors are aware if we don't do this?
- 21:17:24 [fremy]
- TabAtkins: ok, I'm fine with this, authors can use :focus-visible
- 21:17:38 [fremy]
- TabAtkins: I'll put a note and a remark about subgrid
- 21:17:53 [fremy]
- astearns: so, proposal, is to not change the spec, outlines do not apply, but we add an example to the spec
- 21:18:29 [emilio]
- fremy: I had a proposal for the outlines for the children itself
- 21:18:39 [emilio]
- fremy: that doesn't sound weird
- 21:19:00 [emilio]
- fremy: when you're focusing something you add an outline to it
- 21:19:07 [emilio]
- fremy: not sure if it's complex
- 21:19:11 [emilio]
- florian: I think it's complex
- 21:19:27 [emilio]
- fremy: but I'd set the outline property on the child box
- 21:19:47 [fantasai]
- emilio: At least in Gecko, those outlines are added via CSS
- 21:19:49 [fremy]
- emilio: at least in gecko, those outlines are added via css
- 21:20:00 [fantasai]
- emilio: It's effectively via :focus-visible { outline: 1px dotted }
- 21:20:01 [fremy]
- so we use :focus-visible { outline... }
- 21:20:09 [fantasai]
- emilio: so you cannot speical-case on the value of display
- 21:20:22 [fantasai]
- florian: Was saying it'd be based on used value
- 21:20:34 [fantasai]
- emilio: Focusing an element changes the value of descedant elements?
- 21:20:35 [fremy]
- and we cannot special case because selectors cannot depend on values
- 21:20:44 [fantasai]
- heycam: If it's up to the authors to specify outline on the children ...
- 21:20:47 [fremy]
- fremy: ok, I understand the concern
- 21:20:52 [fantasai]
- heycam: There's no way to do that if only a text node child
- 21:21:09 [fantasai]
- TabAtkins: No real use case for 'display contents' in that case
- 21:21:16 [fantasai]
- dbaron: What about two pieces where some are text
- 21:21:22 [fantasai]
- dbaron: e.g. link with plaintext and a span
- 21:21:30 [fantasai]
- TabAtkins: We need a pseudo-element for naked text then
- 21:21:37 [fantasai]
- florian: If you do that, then yo ucan add another span
- 21:21:42 [fantasai]
- s/florian/fremy/
- 21:21:59 [fantasai]
- heycam: Check if parent is display contents?
- 21:22:03 [fantasai]
- ScribeNick: fantasai
- 21:22:06 [fantasai]
- heycam: flattened tree parent
- 21:22:09 [fantasai]
- emilio: that's awkward
- 21:22:24 [fantasai]
- jensimmons: Any use cases for 'display: contents' besides lack of subgrid or maybe flex?
- 21:22:33 [fantasai]
- TabAtkins: Probably, but subgrid's the only one I've used personally
- 21:22:39 [fantasai]
- jensimmons: Why did we invent display: contents?
- 21:23:02 [fantasai]
- AmeliaBR: To have layout modes depending on parent-child relationships not disturbed by markup
- 21:23:14 [fantasai]
- TabAtkins: Before grid, was for flexbox
- 21:23:21 [fantasai]
- hober: Basically grid or flex
- 21:23:21 [AmeliaBR]
- s/by markup/semantic wrapper markup/
- 21:23:30 [fantasai]
- rachelandrew______: Forms have a ton of markup
- 21:23:38 [fantasai]
- rachelandrew______: so would want to use it there
- 21:23:44 [fantasai]
- rachelandrew______: to get rid of things like box around fieldset, etc.
- 21:23:50 [hober]
- s/Basically grid or flex/weird flex but okay/
- 21:23:50 [fantasai]
- rachelandrew______: once a11y issues are solved
- 21:24:28 [fantasai]
- jensimmons: We've eliminated the box, but the desire wasn't to eliminate the box but to have a flattened layout model with hierarchical markup
- 21:24:36 [fantasai]
- jensimmons: Maybe 'display: contents' was the wrong solution, too general
- 21:24:40 [fantasai]
- jensimmons: what we wanted was subgrid
- 21:24:51 [fantasai]
- jensimmons: now we've eliminated the box, and dealinng with fallout
- 21:25:03 [fantasai]
- jensimmons: but there wasn't a good reason to eliminate the box, except lack of flexbox
- 21:25:15 [fantasai]
- TabAtkins: Well, in flexbox, still want to be able to reorder things
- 21:25:24 [fantasai]
- dbaron: If you want the box back, you have to figure out where the box is
- 21:25:32 [fantasai]
- dbaron: by eliminating box, don't have to define where box is
- 21:25:45 [fantasai]
- dbaron: you make the element disappear so you can deal with the children individually
- 21:25:57 [fantasai]
- dbaron: so layout hasn't assigned a position for it, so can't draw the box if you don't know where it is
- 21:26:25 [fantasai]
- TabAtkins: So if shadow-including parent is 'display: contents' but should have an outline drawn on it, draw on children instead
- 21:26:45 [fantasai]
- AmeliaBR: How does that definition work if you have 'display Contents' inside 'display contents', how do we propagate this?
- 21:26:49 [fantasai]
- emilio: Recursive
- 21:26:52 [fantasai]
- emilio: not a big deal
- 21:26:58 [fantasai]
- emilio: but if should have an outline at paint time, that's vauge
- 21:27:06 [fantasai]
- emilio: has to count for visiblity, bunch of other stuff
- 21:27:11 [fantasai]
- heycam: accounting for visibility is annoying
- 21:27:29 [fantasai]
- heycam: ...
- 21:27:43 [fantasai]
- AmeliaBR: You can have a focusable element with visibility :hidden and some children that are visible
- 21:27:48 [fantasai]
- AmeliaBR: don't see an outline
- 21:27:51 [fantasai]
- ...
- 21:27:58 [fantasai]
- myles: Why don't we apply this logic to other CSS properties?
- 21:28:03 [fantasai]
- myles: I don't think that's a road we wnat to go down
- 21:28:48 [fantasai]
- astearns: When parent has visibility: hidden?
- 21:28:59 [fantasai]
- florian: If you have 'display: contents; visibility: hidden' can you focus it?
- 21:29:10 [fantasai]
- AmeliaBR: Most browsers won't focus such a thing
- 21:29:27 [fantasai]
- fremy: we draw it in Edge...
- 21:29:34 [fantasai]
- astearns: Does sound like model-breaking behavior
- 21:29:45 [fantasai]
- astearns: Defining whether box can be fousable based on CSS properties we should ignore
- 21:29:54 [una]
- Test case to play with (nested display:contents) forked from Rachel's pen: https://codepen.io/una/pen/joRMEL
- 21:29:56 [fantasai]
- fremy: If you're visiblity: hidden, you cannot be focused anyway
- 21:30:08 [fantasai]
- fremy: So this issue isn't relevant
- 21:30:08 [bkardell_]
- display: schrodinger-cat;
- 21:30:10 [myles_]
- myles_ has joined #css
- 21:31:02 [fantasai]
- astearns: Two options I've heard
- 21:31:11 [fantasai]
- astearns: 1) Don't draw an outline. Stylesheet can try to style children or something
- 21:31:23 [fantasai]
- astearns: 2) Have UA figure out something to do with 'display: contents' things that shoudl have an outline
- 21:31:31 [fantasai]
- astearns: We have one possible definition of how that could occur
- 21:31:44 [fantasai]
- astearns: I'm unclear as to whether there's enough motivation to figure out UA magic to get this done
- 21:32:03 [fantasai]
- AmeliaBR: I prefer solution that requires authors to do less a11y-aware work, since lots of authors won't bother
- 21:32:14 [fantasai]
- fremy: Also govt' requirements, so browsers should do it by default
- 21:32:51 [fantasai]
- astearns: Cameron, do we need to evaluate conditions for outlining?
- 21:33:08 [fantasai]
- heycam: I don't know, if you had opacity: 0...
- 21:33:20 [fantasai]
- AmeliaBR: Then you wouldn't see it on the children either
- 21:33:29 [fantasai]
- TabAtkins: Aside from "don't draw this element", won't get focus outline
- 21:33:54 [fantasai]
- dbaron: But if you're display: contents, opacity has no effect
- 21:34:03 [fantasai]
- florian: Painting outlines on elements not in rendering tree
- 21:34:12 [fantasai]
- florian: Usually you don't iterate over tree to paint an element
- 21:34:31 [fantasai]
- florian: This is not the case for focus, you don't have to evaluate the entire tree to find focus
- 21:34:38 [fantasai]
- florian: We know if a focused element is focused
- 21:35:01 [fantasai]
- AmeliaBR: Much more narrow case
- 21:35:26 [fantasai]
- dbaron: There's another option along those lines, which is to say ... maybe you can't do that because selector-property dependency
- 21:35:51 [fantasai]
- dbaron: was going to say was if you're display: contents and you're focused, focus-visible aplies to descendants but cna't do that
- 21:36:04 [fantasai]
- fantasai: I think what heycam said was the simplest solution
- 21:36:08 [fantasai]
- emilio: I still think they're hacks
- 21:36:17 [fantasai]
- emilio: It's not impossible, just feels like a layering violation
- 21:36:54 [fantasai]
- florian: iank_ You were saying it's hard?
- 21:37:08 [fantasai]
- iank_: I believe our focus outlines get painted differently from normal ones
- 21:37:17 [fantasai]
- florian: What would be hard about normal ones
- 21:37:27 [fantasai]
- iank_: Don't have anything to hook up to invalidation logic
- 21:37:33 [fantasai]
- iank_: We'd need to introduce this backing to layout tree
- 21:37:42 [fantasai]
- fremy: The children draw the outline, so children invalidation
- 21:37:55 [fantasai]
- florian: but if you change the property on the parent, you need to know that the children have to be invalidated
- 21:38:02 [fantasai]
- emilio: It's a hack
- 21:38:15 [fantasai]
- heycam: We'd have to propagate a change hint to the children. Not impossble.
- 21:38:19 [fantasai]
- emilio: Nothing is impossible
- 21:38:24 [fantasai]
- heycam: Sure, but also doesn't seem too hard
- 21:38:39 [fantasai]
- astearns: It is slightly better to introduce hack into UA than to expect authors to have the same hack in their CSS
- 21:38:40 [leaverou]
- wouldn't drawing outlines on children be confusing if an element only had one child, which was focusable? Tabbing would produce no visible difference
- 21:39:14 [fantasai]
- fremy: If we have in the platform 'display: contents' then it's our responsibility to provide a11y support, putting it in the tree and providing outlines is part of that
- 21:39:41 [fantasai]
- emilio: Whether propagating outline , and someone mentioned browsers don't focus visibility hidden elements even if you have visibile children
- 21:39:46 [fantasai]
- florian: Because you can't focus them
- 21:40:08 [fantasai]
- emilio: link with 'display: contents' we say has to be focused
- 21:40:16 [fantasai]
- emilio: but link with 'visibility: hidden' we don't focus, and it's OK
- 21:40:21 [fantasai]
- TabAtkins: I consider it a bug. That I don't care about
- 21:40:31 [fantasai]
- florian: ...
- 21:40:42 [fantasai]
- TabAtkins: Nobody has brought up that as a problem in the 20+ yrs
- 21:40:56 [fantasai]
- TabAtkins: whereas within 6 months we had bugs filed against 'display: contents' for not being focusable
- 21:41:19 [fantasai]
- leaverou: If we draw outlines on children, might be confusing if only one child that is also focusable
- 21:41:24 [fantasai]
- leaverou: there would be no visible difference
- 21:41:53 [heycam]
- fantasai: there's already no difference if you have an unstyled box wrapped around a child
- 21:41:58 [heycam]
- ... the outlines will look the same
- 21:42:17 [heycam]
- ... it's not a new problem. whether the box is unstyled with no pbm, or it's display:contents, it makes no difference whether the outline is on the parent or child
- 21:42:27 [heycam]
- AmeliaBR: comes down to a design issue
- 21:42:43 [fantasai]
- florian: Back to earlier point, difficulty in invalidation logic
- 21:42:53 [fantasai]
- florian: you could reduce to focus case
- 21:42:56 [fantasai]
- fantasai: I think that's harder
- 21:43:01 [fantasai]
- emilio: think it's harder for us
- 21:43:30 [fantasai]
- emilio: First one you would implement display: contents with outline changed, go down the tree and invalidate other elements inside it
- 21:43:40 [fantasai]
- emilio: but in the other case would also need to evaluate focus. More special-casy
- 21:43:46 [fantasai]
- iank_: Can't speak with authority for us
- 21:44:05 [fantasai]
- iank_: The thing that scares me is potentially if outline is painted by the children, how do you make sure the outline is contiguous
- 21:44:07 [fantasai]
- florian: You don't
- 21:44:13 [fantasai]
- florian: You just make it on the children and whatever
- 21:44:21 [fantasai]
- fremy: That's the proposal
- 21:44:37 [fantasai]
- florian: If youre existing logic merges outlines, then do that. otherwise don't
- 21:44:41 [fantasai]
- emilio: That's not quite similar
- 21:44:48 [fantasai]
- emilio: You also have to check outline on parent vs child
- 21:45:15 [fantasai]
- emilio: If have different outline properties...
- 21:45:30 [fantasai]
- AmeliaBR: What if say children treated as have 'outline: inherit'
- 21:45:53 [fantasai]
- fremy: Just check if 'outline-style' is 'none', and if parent s 'display: contents' draw parent's outline
- 21:45:59 [fantasai]
- dbaron: Or draw two outlines?
- 21:46:05 [fantasai]
- dbaron: and don't worry about those conditions?
- 21:46:24 [fantasai]
- una: I think it's more confusing to have simultaneous outlines
- 21:46:50 [fantasai]
- una: if you're tabbing into the children ...
- 21:47:13 [heycam]
- fantasai: only draw the outline if it's specified
- 21:47:22 [heycam]
- ... if you happen to specify 3 outlines on the 3 different elements, you'd draw all of them
- 21:47:35 [heycam]
- ... might just be drawing because one is focused, because you've got outline specified, ...
- 21:47:45 [heycam]
- ... not dissimilar to how you handle borders for example, layer them all and paint them
- 21:47:54 [heycam]
- ... if they fall on top of each other, you won't see the ones underneath
- 21:48:05 [fantasai]
- dbaron: In the normal case for focus, if you have a box 'display: contents' with three children
- 21:48:24 [fantasai]
- dbaron: you tab to parent, you see all three outlined, and then each one outlined individually as you tab through them
- 21:48:44 [fantasai]
- florian: Don't see how to do btter than that, the children could be anywhere not necessarily adjacent
- 21:48:50 [fantasai]
- fremy: We're defining a default.
- 21:48:59 [fantasai]
- fremy: Not preventing authors from doing better
- 21:49:06 [fantasai]
- fremy: Just saying by default, we show an outline
- 21:49:08 [AmeliaBR]
- s/btter/better/
- 21:49:22 [fantasai]
- fremy: Not required to be pretty. pretty would be great, but ppl already change outlines on focus all the time
- 21:49:30 [fantasai]
- fremy: to make it prettier
- 21:49:40 [fantasai]
- fremy: But by default we want there to be an outline so it will be accessible
- 21:49:49 [fantasai]
- fremy: doesn't have to be pretty
- 21:49:54 [fantasai]
- emilio: it's still a hack
- 21:50:01 [fantasai]
- fremy: The goal is everybody at least gets an outline to show the focus
- 21:50:05 [fantasai]
- fremy: if someone doesn't like it, you can refine it
- 21:50:13 [fantasai]
- fremy: not prevent that, but at least provide something that works
- 21:50:41 [fantasai]
- florian: if outlines that are drawn for non-focused elements are not drawn, that's OK
- 21:50:45 [fantasai]
- florian: But for focus case should do it
- 21:50:58 [fantasai]
- AmeliaBR: So UA must propagate outline if it was caused by a focus change, but?
- 21:51:17 [fantasai]
- florian: Either do it always, or do it only for focus-triggered outlines, whichever is easier to implement
- 21:51:37 [fantasai]
- fremy: My guess is display: contents is much harder ot implement than what we are discussing now
- 21:51:44 [fantasai]
- fremy: we're just going the last mile to make it great
- 21:52:06 [fantasai]
- AmeliaBR: Can we make a tentative resolution that we will at least support the a11y use case and ask implementers to give feeback on which would be easier to implement: special-case for focus, or any outline?
- 21:52:20 [fantasai]
- emilio: display:contents make sense conceptually, this thing we are discussing makes no sense
- 21:52:23 [fantasai]
- emilio: it's a hack
- 21:52:27 [fantasai]
- emilio: in any browser implementing it's a hack
- 21:52:39 [fantasai]
- fremy: Users > web authors > implementers
- 21:52:47 [fantasai]
- emilio: I won't oppose but I will be very upset to implement this
- 21:52:52 [fantasai]
- TabAtkins: make Cameron do it :)
- 21:53:06 [fantasai]
- astearns: So deciding whether to draw only for focus?
- 21:53:07 [fantasai]
- Rossen: at least
- 21:53:08 [TabAtkins]
- I don't disagree that it's a hack.
- 21:53:13 [TabAtkins]
- It's just a necessary hack for a11y.
- 21:53:28 [fantasai]
- bkardell_: Are we positive you need to be able to set focus on display: contents element?
- 21:53:31 [fantasai]
- TabAtkins: Yes
- 21:53:37 [una]
- When authors use hacks, its our responsibility to make that experience more accessible
- 21:53:42 [rachelandrew______]
- CSS is making people sad again.
- 21:53:43 [fantasai]
- TabAtkins: because there are use cases to display: contents a link, an dyou need to be able to activeate the link if you're a keyboard user
- 21:53:58 [fantasai]
- TabAtkins: And when focusing you need to be able to see that it's focused
- 21:53:59 [AmeliaBR]
- Real world example: `<article class="slide"><a href="..." style="display: contents"><h2>article title</h2><img src="thumbnail"/></a><p>description</p></article>`
- 21:54:09 [fantasai]
- bkardell_: Can we just say you can't display: contents a link?
- 21:54:14 [AmeliaBR]
- (where the slide has flex or grid layout)
- 21:54:17 [fantasai]
- florian: There are use cases for it, though
- 21:54:54 [fantasai]
- AmeliaBR describes her use case
- 21:55:06 [fantasai]
- AmeliaBR: Want to lay out this article as three separate items in your layout
- 21:55:21 [emilio]
- AmeliaBR: why not making the link the flex container?
- 21:55:22 [fantasai]
- AmeliaBR: when someone tabs to that link, wnat to be able to see somehting is focuse
- 21:55:34 [una]
- Amelias example: https://codepen.io/una/pen/ZNZprm
- 21:55:49 [fantasai]
- florian gives a use case for page numbers or something
- 21:56:31 [fantasai]
- iank_: I'll have to check with implementers. I will project their sadness.
- 21:56:48 [Rossen_]
- Rossen_ has joined #css
- 21:56:54 [fantasai]
- astearns: So proposed resoution is we paint outlines on the children of a display: contents element
- 21:57:09 [fantasai]
- florian: ... special-case focus?
- 21:57:21 [fantasai]
- fantasai: I'm pretty sure it's easier to not special-case.
- 21:57:25 [fantasai]
- iank_: unsure
- 21:57:30 [Karen]
- Karen has joined #css
- 21:57:32 [fantasai]
- astearns: OK, but this is the case we want to support for a11y
- 21:57:40 [fantasai]
- TabAtkins: You can come back and say "no, it's really too hard"
- 21:58:01 [fantasai]
- TabAtkins: I don't want us to give up just because it's a little not great so we made it inaccessible
- 21:58:14 [fantasai]
- astearns: So any objection to make this change and get implementer feedback
- 21:59:05 [fantasai]
- RESOLVED: Outline of 'display: contents' is propagated to children for painting (for a11y on focus); implementers should give feedback on it
- 21:59:32 [dbaron]
- github-bot, end topic
- 21:59:46 [fantasai]
- Meeting closed.
- 21:59:51 [dbaron]
- trackbot, end meeting
- 21:59:51 [trackbot]
- Zakim, list attendees
- 21:59:51 [Zakim]
- As of this point the attendees have been leaverou, tantek, chris
- 21:59:59 [trackbot]
- RRSAgent, please draft minutes
- 21:59:59 [RRSAgent]
- I have made the request to generate https://www.w3.org/2019/06/04-css-minutes.html trackbot
- 22:00:00 [trackbot]
- RRSAgent, bye
- 22:00:00 [RRSAgent]
- I see no action items