- From: CSS Meeting Bot via GitHub <sysbot+gh@w3.org>
- Date: Tue, 01 Apr 2025 18:56:45 +0000
- To: public-css-archive@w3.org
The CSS Working Group just discussed `[css-forms-1] continue to refine principles for appearance:base controls`, and agreed to the following: * `RESOLVED: Say "approximate order" for the principles` * `RESOLVED: Specify that 'base' styles can't lean on the "UA Styles" exception in WCAG criteria, they're treated as author styles for this purpose` <details><summary>The full IRC log of that discussion</summary> <TabAtkins> dbaron: i want to talk thru a single reasonable small example of one case where a bunch of these principles interact with each other<br> <TabAtkins> dbaron: i didn't quite agree with what the principles were telling me to do<br> <TabAtkins> dbaron: i expect others might have the same feeling, but want to check<br> <TabAtkins> dbaron: i also think the example is interesting on its own. Ian pointed it out to me.<br> <TabAtkins> dbaron: the current spec has this list of design principles for base appearance<br> <TabAtkins> dbaron: I think Jen made them?<br> <TabAtkins> jensimmons: we collaborated inside Apple<br> <TabAtkins> dbaron: one realtively simple example is a button element<br> <TabAtkins> dbaron: here's three pieces of markup. if there's no styles on the button, you get these appearances<br> <TabAtkins> dbaron: principle 3 says they shoudl pass 100% of wcag criteria<br> <TabAtkins> dbaron: looking at wcag, they say the size of a pointer input is at least 24x24 pixels<br> <TabAtkins> dbaron: these buttons are not all that size<br> <TabAtkins> dbaron: so that's a problem<br> <TabAtkins> dbaron: i propose a small change on this - the wcag text has an explicit exception for if the control came from the UA<br> <TabAtkins> dbaron: i think principle 3 should not allow us to use these UA exceptions<br> <TabAtkins> dbaron: in other words, we should be meeting the WCAG criteria as if we were author styles<br> <TabAtkins> dbaron: so what if we give the button some min sizes<br> <TabAtkins> dbaron: this is what's in the stylesheet today<br> <TabAtkins> dbaron: can get a min size in both axises<br> <TabAtkins> dbaron: this seems to fix our wcag problem<br> <TabAtkins> dbaron: back to the principles<br> <TabAtkins> dbaron: we're now doing some things specific to certain controls and not others, so that's not great consistency<br> <TabAtkins> dbaron: another princpile is resilient to being placed in other contexts, like put into a grid/flex<br> <TabAtkins> dbaron: so say we have a flex container, with a button child and some other bigger stuff<br> <TabAtkins> dbaron: we have thise min-size styles....<br> <TabAtkins> dbaron: before we added the min-size styles this did more or less what we wanted<br> <TabAtkins> dbaron: but now that we have min-size we get overlap. it overrides min-size:auto<br> <TabAtkins> dbaron: but we didn't really want to do that, it's important for flex/grid<br> <TabAtkins> dbaron: a fundamental issue, and i think it'll come up multiple times, is we want to build a thing where it gets an intrinsic size from several sources<br> <TabAtkins> dbaron: we want it at least this big, and also at least this big, and also at least this big, and one of those is the intrinsic size<br> <TabAtkins> dbaron: can we do better?<br> <TabAtkins> dbaron: we can do terrible things<br> <TabAtkins> dbaron: [hacky grid description]<br> <TabAtkins> dbaron: but that's a complete disaster per the principles<br> <TabAtkins> dbaron: hugely complicated, devs would have to understand it all to override it<br> <TabAtkins> dbaron: i think we can do better<br> <TabAtkins> dbaron: slightly better solution to fix this problem is to use calc-size()<br> <TabAtkins> min-block-size: calc-size(auto, max(24px, 1lh, size))<br> <TabAtkins> dbaron: a bit better, it works in flex, it satisfies wcag, it's a single declaration that can be easily overridden<br> <TabAtkins> dbaron: but it's still not great, pretty complicated expression in this default stylesheet<br> <TabAtkins> dbaron: if the dev wants to replace a piece they have to look it up and figure out how to tweak it<br> <TabAtkins> dbaron: so i think this is *better* for the principles, not *great* on easy to override but better than hacky grid solution<br> <TabAtkins> dbaron: does this count as consistent across controls? maybe, depends on what we do for other controls<br> <TabAtkins> dbaron: my feeling is this is the least bad thing so far<br> <astearns> q+<br> <jensimmons> q+<br> <TabAtkins> dbaron: other than the thing i said earlier about the wcag rule, one other thing i felt about applying these rules to this case, rule 5.4 was more important than many other options. list implies it's less important to 4.2, which bothers me. the other parts of 4 and 5 are probably fine, but these two particular rules bother me.<br> <TabAtkins> astearns: yeah, this is exactly waht the princpiles are for, to encourage this analysis<br> <TabAtkins> astearns: whether we adjust the ordering, this is cool, thank you<br> <TabAtkins> astearns: probably are gonna be some exceptions, justification for something moving up in some cases but not necessarily for all<br> <TabAtkins> astearns: that said i'm not against reordering<br> <astearns> ack astearns<br> <astearns> ack jensimmons<br> <TabAtkins> jensimmons: i agree<br> <TabAtkins> jensimmons: interesting that the title of the issue is "continue to refine", makes me think the question at hand is change the principles. but i think this is the whole point of the principles, they're not marching orders, they're a framework to have discussions quickly<br> <TabAtkins> jensimmons: and i think you're right, they do contradict sometimes, and i want to have a godo discussion about buttons, and other things<br> <TabAtkins> jensimmons: i didn't write these myself, we've discussed with tim, elika, anne, the dto, etc<br> <TabAtkins> jensimmons: we did not keep the convo in the oven to continue to bake to the point where the default ua styles are at all done<br> <TabAtkins> jensimmons: we pulled those out as early as we felt like we could<br> <TabAtkins> jensimmons: i think they're deceptively simple, like "oh we just need to decide on rounded corner, colors" and it's easy<br> <TabAtkins> jensimmons: but yeah, it's not<br> <TabAtkins> jensimmons: one advantage of appearance:auto form controls is that, regardless fo brwoser, if the page does nothing for them, the controls work.<br> <TabAtkins> jensimmons: and the default appearance:base controls don't work<br> <TabAtkins> jensimmons: so i agree there's a lot of room to grow<br> <ntim> q+<br> <astearns> ack fantasai<br> <TabAtkins> fantasai: i think we maybe want to add the word "approximate" as in "approximate order of descending imporantace". this isn't meant to be strict 3 always wins over 4. like usual, balancing act about how much you're violating one vs the other, etc<br> <TabAtkins> fantasai: i don't midn too much if we flip 4 vs 5, don't think there a strong ordering between those two<br> <astearns> ack ntim<br> <jensimmons> I should also say I don't think bikeshedding the design principles for a long time is a good use of time. We should work on the styles, and hold the design principles loosely.<br> <TabAtkins> +1<br> <fantasai> +1<br> <jensimmons> q+<br> <TabAtkins> ntim: the ua styles defined in the spec very much need refining<br> <iank_> q+<br> <TabAtkins> ntim: about the specific examples, min-size, i think that came from a PR from Joey that was applied to select<br> <TabAtkins> ntim: so I just took it and applied it to the spec<br> <fantasai> s/the spec/butotn<br> <fantasai> s/butotn/button/<br> <TabAtkins> ntim: so yeah, i'm curious to have more discussion about styles<br> <astearns> ack jensimmons<br> <TabAtkins> jensimmons: [saying what she typed in IRC]<br> <TabAtkins> jensimmons: we're all busy, we can probably largely skip over this and just work ont he controls, and change the principles later<br> <TabAtkins> jensimmons: as long as they're not blocking us<br> <TabAtkins> dbaron: i think that idea is fine. particularly if we take elika's suggested edit for "approximate order"<br> <astearns> ack iank_<br> <TabAtkins> dbaron: and i do intend to give more feedback on the stylesheet, that'll happen over time<br> <TabAtkins> iank_: one high-level thing, in this stylesheet we shoudl be very careful when changing the size proeprties to a fixed size<br> <TabAtkins> iank_: even a radio or checkbox with width:1ch, that has sublte effects in grid/flexbox related to stretching<br> <TabAtkins> iank_: so keep auto as much as possible<br> <ntim> q+<br> <TabAtkins> iank_: I think the calc-size() solution is pretty good<br> <astearns> ack ntim<br> <TabAtkins> ntim: so it sounds like next steps is to start prototyping the ua styles, and to add the word approximate<br> <dbaron> Proposed resolution #1: spec that order of principles is approximate<br> <TabAtkins> astearns: so suggesting no particular resolution just yet? or is there something in this analysis you'd like to adopt currently?<br> <dbaron> Proposed resolution #2: say that principle about WCAG AA standards can't use "UA styles" exceptions<br> <TabAtkins> ntim: i think we shoudl adopt "approximate" to the princple wording<br> <TabAtkins> astearns: david gives some proposed reoslutions<br> <TabAtkins> astearns: proposed resolution 1, objections?<br> <dbaron> Proposed resolution #3 (maybe more controversial): Adopt the calc-size() expression for the stylesheet.<br> <TabAtkins> RESOLVED: Say "approximate order" for the principles<br> <TabAtkins> astearns: proposed resolution 2, objections?<br> <TabAtkins> RESOLVED: Specify that 'base' styles can't lean on the "UA Styles" exception in WCAG criteria, they're treated as author styles for this purpose<br> <fantasai> Edited first resolution in https://github.com/w3c/csswg-drafts/commit/455c7774eb357f4e5a942ec22559a02f8798edc5<br> <TabAtkins> ntim: for proposal 3, i think we need to prototype and get some feedback first<br> <TabAtkins> ntim: not against it, just want to try it out first<br> <astearns> ack fantasai<br> <TabAtkins> fantasai: i just want to reraise Ian's point that it might make sense to just lean on 'auto' as much as possible, because it give sus the best default sizing behavior in a variety of contexts<br> <TabAtkins> fantasai: it might not always be the most ideal for every case, but it'll often get us good results in common cases<br> <fantasai> fantasai: and it won't break things<br> <TabAtkins> TabAtkins: tho use of calc-size() gives us the auto behavior *and* lets us still tweak things<br> <TabAtkins> dbaron: one brief example of something it might break<br> <TabAtkins> dbaron: this style in the UA sheet is for select and button<br> <TabAtkins> dbaron: if you have an empty option in select, which might not be uncommon in select as the default option<br> <TabAtkins> dbaron: but right now, without those minimums, the empty option will shrink the width *and* the height, and that's kinda weird<br> <TabAtkins> ntim: so you want to apply this to select as well? we could resolve it now if needed<br> <TabAtkins> dbaron: i think the calc-size() would be an improvement on the current design, yes. but we don't need to resolve on it right yet.<br> <TabAtkins> astearns: for time, we won't resolve on this right now. we need to break<br> <TabAtkins> ntim: could dbaron file an issue for fixing the select behavior?<br> <TabAtkins> dbaron: yes<br> </details> -- GitHub Notification of comment by css-meeting-bot Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/12019#issuecomment-2770409866 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Tuesday, 1 April 2025 18:56:46 UTC