W3C

– DRAFT –
Cascading Style Sheets (CSS) Working Group Teleconference

24 February 2021

Attendees

Present
alisonmaher, cbiesinger, chrishtr, dael, dholbert, dlibby, emilio, faceless, faceless2, fantasai, fremy, GameMaker, jfkthame, leaverou, miriam, Morgan, myles, plinss, rachelandrew, sanketj, smfr, vmpstr
Regrets
tantek
Chair
-
Scribe
dael

Meeting minutes

astearns: We'll wait another minute or so

astearns: We should get started

astearns: Does anyone have any changes to the agenda?

[mediaqueries-5] duplication of `forced-colors: active` and `prefers-contrast: forced`

Github: https://github.com/w3c/csswg-drafts/issues/5433

alisonmaher: For a bit of context chromium has impl of prefers-contrast behind flag. Pretty sure FF does as well

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

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

alisonmaher: p-c:f is duplication of forced-colors MQ. Previously agreed to keep for compat. Do we want to keep p-c:f or not? Strong arguments on both. jcraig summarized them well ^

alisonmaher: In favor is it shortens the MQ needed to match any combo of users and reduces likelyhoold that authors overlook users with a different color sceme than less or more

alisonmaher: against it doesn't add any additional benefit and removing provides more clarity to authors on which to use and how it works

alisonmaher: I tend toward remove b/c simplifies and matches more to prefers color scheme approach which jsut matches to dark or light.

alisonmaher: Perhaps a middle ground where we remove but still capture the users, but not sure what that would look like.

jcraig: Thanks alisonmaher for the summary

jcraig: One piece not mentioned is there's an assumption that all forced-color users reglardless of match less or more want reduced complexity. I don't believe it's true. Don't have evidence, but don't think evidence exists. My hunch is these people customize and don't have a preference on complexity. Seems coorilation vs causation

jcraig: Suggestion alisonmaher mentioned about a way to match both, I don't think it's desirable b/c I don't know of need. Looked like dlibby commented along the same lines

florian: Thanks to alisonmaher and jcraig.

florian: I disagree with jcraig this is people tweaking colors b/c forced-colors changes the colors of your webpage and since you don't have full range of colors available a number of htings will break like gradients. force-color pallate is reduced

<TabAtkins> florian is saying exactly what i was going to

florian: b/c of that I thinkw e fall into needing reduced complexity

<fremy> I agree with florian

<jcraig> dlibby's comment: https://github.com/w3c/csswg-drafts/issues/5433#issuecomment-780191074

florian: Otherwise, I think priority of consistency applies. For authors separation is nicer. Slightly shorter syntax is probably not worth it. Users, though, nice for the small set of users not to be forgotten

astearns: Any other comments?

[silence]

astearns: Proposal is remove the forced value for prefers-contrast and de-link the two media queries

florian: I think we've made progress about where there's an issue. Not sure we agree on the solution

jcraig: On mac and iOS the underlying archetecture allows us to use increased contrast and other settings and would allow a really high contrast forced-colors in the future. Similar to MS. Issue we've seen in the past is b/c MS is only impl of forced-colors we don't know end result will match that exactly

jcraig: We don't have direct plans to do that, but I'd like to see it.

jcraig: Leaving the forced-colors media feature open and extensible would allow us to better match varients across impl. Shoehorning into prefers-contrast limits that in the future. I think it would be good to leave extensible

Rossen_: Quick point, chrome is almost done so won't be only one I presume

jcraig: I'm talking platform, not browser

Rossen_: My bad. I thought you were talking about browser

Morgan: I have a follow up. FF has its own version of forced-colors that we allow on any platform. It's another impl same as MS one. There is another sort of platform impl there.

TabAtkins: In jcraig earlier comment you seemed to say you should leave forced-colors more open. Do you think there's anything we could query for about forced colors beyond on or not? From our designs there wasn't anything you can conclude beyond on or not

fantasai: And forced-color limits the pallate. You could have forced-color that's similar to increased contrast which keeps hue but turns the constrast way up, but that would be a different feature

TabAtkins: I don't think that's consistent with idea of forced-colors as we have

fantasai: yeah, forced-contrast mode

jcraig: Speculating on that question. Closest thing I'm aware of is closed captions have default colors and forced colors. Similar to user styles vs overwritten user styles where you can say if media doesn't spec the font then I want it to be in monospace. If it does spec leave as spec. And you can override author

jcraig: Closest thing to speculate on is this mixed force-ness where you may say for caption blocks I want forced, but don't care about others. mixing of DOM and elements. All speculation

florian: I think today I'm the only one who explicitly was in favor of retaining it. I would like a sense of if I'm alone

TabAtkins: In IRC both fantasai and I said we think the same as you

fremy: And I did

astearns: My take is we have two separate opinions and neither side has conviced the other. My bias is remove until people can be all convinced it should be there

fantasai: Would create compat problems. prefers-contrast is triggering...I guess can try, but if triggering on some cases but not other and we change it. Would be a minority of cases, I guess

Rossen_: Do you have data?

florian: My part it's logic but not data. I suspect MS is only party with data. We would want to look at the particular color schemes used by those with forced-colors which are neither high or low contrast

Rossen_: What about data of use removing it and looking for compat risk?

florian: That's future compat. If we do it one way and switch there are problems. If we remove it a small minority of users would have things worse if you follow my logic.

dlibby: Wanted to note we can gather data as we ship to understand impact. On compat point seems main motivation is for user and not web author. If seeing harm for users I think that's more of a concern than compat since those are the users who want these rules. But data of shipping without value could be useful

jcraig: I would agree if there's evidence. but florian said it was based on logic, sounded like speculative logic.

jcraig: Quoting dlibby from the issue, florian said MS would be one to know. dliby says [reads]

jcraig: It's about author and user benefit

jcraig: And if this is larger problem in practice we can add, but removing is more difficult. It sounds like that comment is in favor or removing now. Fair dlibby ?

dlibby: Yes

<fantasai> agree with jcraig's last assessment

<fantasai> (and also the point TabAtkins is making now)

TabAtkins: Not to belabor too much. Idea about unclear author guidance, the point is there is explicit author guidance. ANyone with contrast preference you should reduce visual complexity.

<jcraig> dlibby from the issue: "We didn't get to this in the F2F last week, but I agree with the core of @cookiecrook's argument - I don't think there is strong evidence for the boolean form of prefers-contrast being used to reduce visual complexity, and would probably be difficult for authors to reason about (enhancement in service of respecting a user preference is much different from adjusting in response to forced changes to a page's appearance)."

TabAtkins: Concern with add later is by then benefit of hey this is a new feature user guidance is lessened. Would be nice to have consistent story to say most of the time use prefers-contrast in bool and you can listen to more or less or system pallet, but for overall design bool works great

<jcraig> ..."As anecdata, I also ran across this blog post that expresses some of the same sentiments:

<jcraig> https://kilianvalkhof.com/2021/css-html/prefers-contrast-forced-is-a-mistake/ "

TabAtkins: If we decide we don't want it's not more problematic then adding in the future. Worst case we say it never matches. Not great, but we've had it before and cna shove in an appendix

florian: I did feel strongly against removing while we hadn't reached understanding about the question b/c felt bad to users was inappropriate. We do understand the disagreement now. Still feel strongly, but less bad about being overruled.

astearns: Can we get a resolution to remove the value and unlink the features and if there's user data in the future we can revisit

fremy: Removing the value, we also mean if people enable the high contrast but set at middle contrast they won't match the MQ. That makes the feature useless. On windows I would jsut use MQ for forced-colors. Or I would have to dup the code. I'm not sure if value is nes but it makes sense.

fremy: Even if you treat the contrast as peole from Apple said, you want to remove complexity. You want same behavior when using forced colors

<jcraig> @media (prefers-contrast) or (forced-colors)

emilio: Can't you just use or?

fremy: True, but thing is devs won't test special case. They will assume prefers-contrast works. nobody will catch this tiny use case. That's the key of the issue

astearns: From my PoV, your particular case where someone used forced-colors to select with no contrast, I would prefer it did not match rpefers-constrast b/c there is no constrast. I think it's an argument to delink

fremy: Then maybe name is misleading. We want to use feature to reduce complexity, maybe name is wrong. Seems it would be unfortunate

<Zakim> jcraig, you wanted to mention these are different features

jcraig: Was going to say same. This is core of disagreement. Half the people think there's an association between people using forced colors in the window where it doesn't match but they still want less complexity

<TabAtkins> Alternate proposal: we drop (prefers-contrast) entirely for right now while we study the problem more and see if there's better things to do in the visual complexity sphere

<jcraig> "In my opinion, if CSS needs a media feature for prefers-reduced-complexity or prefers-improved-legibility, the working group should consider those separately."

jcraig: I get it, but I don't agree it's a match. I also suggested similar to your suggested fremy ^

jcraig: The contrast features should ONLY be about contrast and forced-colors should ONLY be about forcing colors. I don't agree with a 100% corrilation

<myles> +1 to what james just said

fremy: What you said makes sense

astearns: jcraig suggestion in IRC I think we should consider separately

astearns: Prop: Removed the forced value

<jensimmons> I agree with what James just said — the 100% association between the two isn't best.

<jcraig> s/should be about constrast and forced-color should be about colors/should ONLY be about contrast and forced-colors should ONLY be about forcing colors/

<fantasai> jcraig, the reduction in complexity isn't because that's specifically requested. It's because in a reduced palette, you don't have the option to use intermediary colors and you *have to* make changes accordingly

<leaverou2> +1 to what TabAtkins suggested

TabAtkins: That was jcraig suggestion and I was [missed]. Just aminutes correction

astearns: Will anyone object to removing it?

florian: Can we get a promise to collect data about the cases where it would be different?

fantasai: What data do you want?

florian: Color schemes people use that would be neither high nor low and therefore would no longer match. So we can look and see if we made thigns better or worse

fantasai: Won't know unless you look at a page

TabAtkins: Since we have requirement that forced-color sheme opts into more or less, assuming there's a middle ground collecting data about it is would be valuble

<aja> planning on keeping (prefers-contrast: no-preference), i hope

<fantasai> of course

Morgan: Adding probes in FF which should detect browser and platform

astearns: Objections?

Resolution: Removed the forced value from prefers-contrast MQ

<florian> thanks Morgan

astearns: TabAtkins proposal to drop prefers-constrast all together. Would get in way of collecting data

florian: Not necessarily. Collecting data about user settings, not sites

TabAtkins: Yeah, data isn't about if MQ is used, how categorization would work

astearns: I thought it would be useful to have to get set of people that have choosen a color scheme and have the MQ but missing out

jcraig: Sounds like a windows argument. If we drop prefers-contrast can't impl apple contrast settings. They indecate a preference for more contrast. We have a beta impl for prefers-constrast:more in WK

TabAtkins: The prop is we drop temp while we think about problem space of constrast and visual complexity. We can bring right back when decide separate or don't need to think about visual complexity. It would be worse if we ship and then decide should be different.

jcraig: I don't think we've done this quickly. Has taken years to standardize prefers-constrast values. Just agreed less and more instead of high and low. Taken years b/c difference between Windows, and MacOS, and Android.

<aja> might want to consider a way to SET prefers-contrast in user stylesheet

jcraig: Reduced complexity has higher association to prefers-reduced-transparency. I don't know we want to mix streams, but if you're associating should be reduced-transparency. Would object to removing prefers-contrast

TabAtkins: they're all reasonably linked, sure. Concerned we have large set of prefers options and authors need 6 MQs to target when there's a potential most people can be well served by broader MQs. Let the specific ones exist, but I don't want 10 prefers queries that subtilly interact in ways that are confusing.

TabAtkins: Worried if we don't guard against it. Has taken a while, but it's because people talk slowly. WE can move quickly if we want

<aja> might want to consider a way to SET prefers-contrast in user stylesheet

astearns: [reads IRC comment]

fantasai: Can't really set in user stylesheet. Can in user preferences. We're not going to introduce cycle between MQ and properties

astearns: And users know how to set browser preferences much more

fantasai: When you have a reduced palette which happens when you have increased or reduced constrast or forced colors you have to make changes. yOu don't have intermediary colors. You have to remove things that require drawing these colors.

fantasai: Applies with forced-color or change in constrat. Argument for prefers-constrast triggering isn't that they want to reduce visual clutter, it's that you have less colors and need to adapt. You can't use a subtile drop shadow. You need a solid border or nothing

fantasai: If someone wants a reduced visual complexity category, that's broder and separate.

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

fantasai: Regards to prefers-constrast, if we want to try without forced value at first we could. But I agree with TabAtkins it means we can't teach it when forced-colors is on and you can loop it into same MQ. Authors won't get benefit of trigger on both. Forward compat issue won't be that huge b/c most people will fall under prefers-constrast.

fantasai: The people that do fall in will have a problem or won't and we can handle it later. But you don't get author benefit to teaching the grouping

astearns: I'd like to close the discssion for this meeting. TabAtkins if you want to continue the idea can you open a new issue on GH?

TabAtkins: Sure

[css-images-3] image-rendering:pixelated should not force "nearest neighbor" (or similar) when the scale factor is far from an integer (e.g. 150%)

github: https://github.com/w3c/csswg-drafts/issues/5837

TabAtkins: image rendering prop controls how browses render when scalling. Smooth or pixelated. pixelated uses nearest neighbor. Great so long as scaling up by int multiple of size. 2.5 times as big it's terrible

TabAtkins: You don't get consistent line weight. Something could be 2 or 3 px depending on precise details.

TabAtkins: At least 2 people in this issue brought up the problem. Want to remain pixel-ness but don't want it to look bad. Minor smoothing okay.

TabAtkins: Prop is a value that does nearest neigbor scaling and use smooth scaling to close gap.

<florian> Proposal makes sense to me.

TabAtkins: Use cases seemed reasonable. Canvas-based using pixel art and you don't want jaggies but you don't want to force canvas. You want to scale as you can

TabAtkins: Reasonable to me. Happy to add if reasonable to others

fantasai: Overall makes sense. I think we should allow overshoot and scale down. If you're 2.8px might make sense

TabAtkins: Right. Should test, but we should scale to nearest multiple and then go up or down smooth

smfr: Does image-render pixelated apply to canvas

TabAtkins: It's supposed to. It's an image source

smfr: With houdini? That's only way to get it in

TabAtkins: canvas element is an image element. It's a replaced element with a raster display of content. Intended to be effected by image rendering

smfr: For a UA to impl it means painting image would be 2 step. pixelated and then nearest neighbor to desitnation. Has cost. Fine feature request, but additional cost

TabAtkins: I think you're right. Obj or a note about don't use too much

smfr: Note in spec about perf is good

vmpstr: Suggesting to mandate an algo or allow a different?

TabAtkins: Pixelated madates nearest neigbor. This mandates to nearest int and use whatever smoothing

vmpstr: Yeah. This would add cost

<fantasai> generally people don't use pixelated unless they really want it, it's not the default

dholbert: I think we have this behavior in spec for scale of less than 1. You do default image scaling. nice to harmonize.

dholbert: Also, not clear. Is this prop for new value or change to pixelated

TabAtkins: Asked in thread. Authors thought different value. I proposed merge into default. I could go either

dholbert: If we did keep pure nearest neighbor, might be nice to remove <1 special case and have pixelated scaling separate. You can see as you spec

jfkthame: My understanding of last comment in issue is the suggestion is this should be what pixelated does and true nearest neighbor would be new. That makes sense to me. This would be true pixelated and acutal nearest neighbor would be special

<fantasai> +1 jfkthame

astearns: Then you make current use of pixelated take the harder path

jfkthame: True, but I think it's the better result. Arguable

fantasai: I imagine it's not that common unless you want that effect

TabAtkins: You want for int. If you use it inbetween is variable.

TabAtkins: dholbert where are you seeing scale down? I'm looking at spec and there is no such difference between up and down

<fantasai> Comment jfkthame was referring to: “Personally, I agree with baking this into pixelated. Yes, pixelated should mean pixelated, but I don't think nearest neighbor interpolation with 150% scaling ratio looks pixelated: Squares that vary in size from 1*1 to 2*2 do not look like pixels. I think it would be better to add a new keyword nearest-neighbor, which means nearest neighbor.”

<fantasai> https://github.com/w3c/csswg-drafts/issues/5837#issuecomment-776951044

dholbert: I haven't looked at spec for a couple years. It was there a few years ago. If it's been removed, that's great

TabAtkins: I'll research. not in current ED

astearns: Do you want resolution?

TabAtkins: Add this with caveats discussed in chat

fantasai: New value or adding into pixelated and nearest as new? I personally agree with jfkthame

TabAtkins: Also agree with jfkthame. If vmpstr and smfr don't think it would be problematic I would like to do that

astearns: Smoothing only nec for non-int values?

TabAtkins: Yea

astearns: Prop: Bake the smoothing into non-int changes in current pixelated value. add a new value for nearest neighbor jaggedness

myles: Flip the names?

fantasai: I don't think so. Last commentor pointed out having a variety of squares and rectangles representing source pixels doesn't look pixelated. You want each pixel same size. I think naming is better where pixelated is same size

astearns: Is that okay myles?

myles: No comment

astearns: Objections?

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

[css-align-3] What is supposed to happen to abspos in an end-aligned scroll container?

??

fantasai: Scrollsnap republish CR?

<fantasai> https://lists.w3.org/Archives/Public/www-style/2021Feb/0013.html

fantasai: Some issues. Here's a status summary ^

fantasai: If someone wants to insist on a test existing and will volunteer to write, happy to hold off.

florian: CR-snapshot?

fantasai: Yes. Long time so should do one

astearns: Objections to republish CR-snapshot of scrollsnap?

Resolution: republish CR-snapshot of scrollsnap

CSS Scroll Snap??

astearns: not hearing suggestions

<fantasai> https://github.com/w3c/csswg-drafts/issues/5971

[css-ruby] alternating sides for ruby-position

github: https://github.com/w3c/csswg-drafts/issues/5971

florian: 3 values, focus on over and under. Default is over

florian: If you have 1 layer it goes over. If 2 they both over and stack.If want one over one under need selector

florian: People sometimes want to stack, but majority is when you have 2 layers (3 almost not done) people want one on each side

florian: Separate selectors is annoying, esp given markup has anon boxes

florian: Prop is default value is auto or alternate which is over iwth 1, over and then under with 2, and continue alternating with more

myles: Didn't realize prop changing initial value. I think we have ruby in books which is scary.

myles: Separating changing initial value from the new propery is good

fantasai: Don't think you support multi-level

myles: Doesn't effect nested. Multi level ruby in same lement only?

fantasai: Yes.

myles: Then, now that I understand, if you tried to give this to use we would have longer ruby text on top

fantasai: Not sure, haven't loaded it. It's a separate issue from if you display on top or bottom

myles: General compat concern

fantasai: Yeah. If you don't support multi-level in same ruby structure

florian: Problem is same no matter if value

myles: If we impl multi level without this we would turn 1 level to 2. With this we would turn it into 1 level above and one below

florian: If I remember your current impl, yes

astearns: myles resolve or investigate?

myles: Okay resolve. If things explose come back

astearns: Add an alternate value which is the initial value

Resolution: Add an alternate value which is the initial value

end

<fantasai> ^_^/

<dholbert> TabAtkins, looks like https://github.com/w3c/csswg-drafts/commit/c49faa3c0827aa2464e62a4215ac6a868e821411 is where the special downscaling behavior was removed for pixelated

<dholbert> TabAtkins, (I'm curious what the backstory was there - do you know where that change came from?)

<dholbert> TabAtkins, it looks like that commit was the day *before* the csswg resolution about downscaling allowing better behavior. I think that downscaling special-case just never made it into the spec, perhaps?

<dholbert> i.e. we went from "downscaling must use 'auto'", to "downscaling and upscaling must both use nearest-neighbor", to a CSSWG resolution that downscaling is *allowed* to do something better (but I don't think that last change made it into the spec)

<dholbert> (and that last resolution was in https://lists.w3.org/Archives/Public/www-style/2014Sep/0384.html , linked in an earlier /me above)

Summary of resolutions

  1. Removed the forced value from prefers-contrast MQ
  2. Bake the smoothing into non-int changes in current pixelated value. Add a new value for nearest neighbor jaggedness
  3. republish CR-snapshot of scrollsnap
  4. Add an alternate value which is the initial value
Minutes manually created (not a transcript), formatted by scribe.perl version 127 (Wed Dec 30 17:39:58 2020 UTC).

Diagnostics

Succeeded: s/prefers-contrast/prefers-contrast and de-link the two media queries/

Succeeded: s/way up/way up, but that would be a different feature/

Succeeded: s/not//

Succeeded: s/should be about constrast and forced-color should be about colors/should ONLY be about contrast and forced-colors should ONLY be about forcing colors

Failed: s/should be about constrast and forced-color should be about colors/should ONLY be about contrast and forced-colors should ONLY be about forcing colors/

Succeeded: s/TabAtkins suggestion/jcraig suggestion/

Succeeded: s/Would object to removing/Would object to removing prefers-contrast/

Succeeded: s/pallate/palette

Succeeded: s/is new/as new? I personally agree with jfkthame /

Succeeded: s/squares/squares and rectangles representing source pixels/

Succeeded: s/about/above

Succeeded: s/Topic: ??/Topic: CSS Scroll Snap/

Maybe present: astearns, florian, jcraig, Rossen_, TabAtkins