- From: Dael Jackson <daelcss@gmail.com>
- Date: Thu, 27 Jun 2024 19:20:51 -0400
- To: www-style@w3.org, public-open-ui@w3.org, pastithas@google.com
=========================================
These are the official CSSWG minutes.
Unless you're correcting the minutes,
Please respond by starting a new thread
with an appropriate subject line.
=========================================
OpenUI-WHATWG/HTML-CSSWG meeting
================================
CSS UI
------
- RESOLVED: <select> internals can be represented with shadow DOM
(but shadow DOM support is not required as long as the
behavior is the same) (CSS Issue #10380: DOM/Box
structure for appearance:base-select)
- RESOLVED: Accept shadow dom structure as proposed initial comment
in the issue, except for the svg part and naming of
pseudo elements. Issues to be opened for those (CSS Issue
#10380)
- RESOLVED: User agent styles can depend on appearance:base. Aim for
eventual interoperability across all values of the
property (CSS Issue #10028: Changing UA styles based on
the computed value of the appearance property)
Anchor Positioning
------------------
- RESOLVED: popovertarget creates an implicit anchor element
reference (WHATWG PR #9144: Add anchor attribute)
- RESOLVED: Develop HTML markup to represent semantic anchoring
relationships (and which also set the implicit anchor
element) for non-popover use cases (WHATWG PR #9144)
- RESOLVED: It would be a good idea to add an imperative way to set
invoker relationships between popovers (WHATWG PR #9144)
===== FULL MEETING MINUTES ======
Agenda: https://github.com/whatwg/html/issues/10401#issuecomment-2187251320
Present:
Joey Arhar
David Baron
Tantek Çelik
Keith Cirkel
Daniel Clark
Emilio Cobos Álvarez
Elika Etemad
Mason Freed
Chris Harrelson
Brian Kardell
Aditya Keerthi
Sanket Joshi
Olli Pettay
Anne van Kesteren
Luke Warlow
Greg Whitworth
Chair: gregwhitworth
Scribe: emilio
Scribe's scribe: gregwhitworth
OpenUI-WHATWG/HTML-CSSWG meeting
++++++++++++++++++++++++++++++++
CSS UI
======
DOM/Box structure for appearance:base-select
--------------------------------------------
github: https://github.com/w3c/csswg-drafts/issues/10380
chrishtr: We can mark as needs edit and once that's done that'd get
review and get closed
annevk: Sounds good
<dbaron> (above was about the previous item on the agenda)
jarhar: That's a proposal for base-select behavior and DOM structure
jarhar: higher level questions would be whether it'd be ok to use
shadow dom for this
jarhar: the other thing would be that in chromium elements inside the
shadow root for the base and auto appearance
jarhar: and switch based on the computed value
jarhar: wonder if that's acceptable
annevk: I think shadow roots are fine for this, we have the precedent
of <details>
annevk: in theory an implementation could not use shadow root
<fantasai> +1 to avoiding a true dependency on the shadow DOM
jarhar: That sounds promising
jarhar: it sounds like we can define this as a shadow root
masonf: Are we doing resolutions?
<fantasai> PROPOSED: <select> internals can be represented with
shadow DOM
<masonf> +1
<dandclark> +1
<keithamus> present+
emilio: I wanted to clarify fantasai point, I think she's fine
defining in terms of shadow DOM but in theory you can
implement it with something else
fantasai: Yeah, that's exactly right we should define it using shadow
but it's ok if the implementation does not use shadow DOM
emilio: Sounds good
chrishtr: They need to end up with the same interoperable result
chrishtr: It's not observable that there's a shadow root right?
jarhar: I think that's correct
chrishtr: We can put a non-normative note in the spec about it being
possibly implemented with other technology
<fantasai> PROPOSED: <select> internals can be represented with
shadow DOM (but shadow DOM support is not required as long
as the behavior is the same)
gregwhitworth: so fine to go with Elika's resolution?
<masonf> +1
<keithamus> +1
RESOLVED: <select> internals can be represented with shadow DOM (but
shadow DOM support is not required as long as the behavior
is the same)
jarhar: I want to also go through the slots and so on
gregwhitworth: Should we resolve that in this issue or move that to a
different one?
annevk: The one concern from our side is about the `multiple`
attribute
annevk: without that we can agree to this
annevk: but with `multiple` one of the slots ends up not being there
or rendered
jarhar: We can change the shadow DOM for the `multiple` attribute
jarhar: so that there's a shadow DOM but can be completely different
fantasai: Currently in HTML we combine two things, if you can select
one it's a popup and otherwise it's an embedded control
fantasai: I think we can split that into multiple axes
fantasai: so that we can make a popup where you can select multiple
attributes, and you can have an embedded thing where you
can select just one
<masonf> that's the multiple and size attributes, respectively.
<annevk> (modulo iOS where it's a little different from that even)
<lwarlow> (and android)
chrishtr: All those things can be figured out but can we leave those
not defined yet?
chrishtr: and define just the non-multiple case for now?
fantasai: I think we might need to come back and change things once
we tackle the others
chrishtr: We can take an action item to dig into that to make sure
that changes might not be needed
masonf: There's `multiple` and `size` which theoretically create
those two axes
masonf: behavior is a bit different in mobile vs. not, I think there
are a lot of issues with `multiple` without that
masonf: so I think we need feature detection but I'd like not to
block on that
fantasai: I think that'd be surprising, I'd like multiple to be
defined for styleable select
fantasai: I think you can't just ignore the semantics of `multiple`
masonf: I was thinking of just forcing `auto` rather than ignoring
`multiple`
fantasai: I think I worry about site issues once we start making
changes there, I think it's solvable and we should fix it
chrishtr: Agree on solvable, I don't think it blocks resolving on
jarhar's proposal for the single case
fantasai: I think the structure makes sense except the svg
fantasai: because it doesn't respect writing-mode
fantasai: In respect on the names of pseudos we want to be consistent
with other stuff we expect to do elsewhere, so probably
should discuss separately
fantasai: but over-all structure makes sense otherwise
<chrishtr> proposed: "accept shadow dom structure as proposed initial
comment in the issue, except for svg part"
<chrishtr> "pseudo element names to be decided later"
jarhar: For pseudo names I agree they're not great
jarhar: There's another issue for that
jarhar: As for the SVG I agree, there's a similar discussion for
checkmarks
jarhar: We moved to a unicode character
jarhar: there's a down arrow thing
jarhar: Do you think using it would be reasonable
fantasai: If you use the disclosure-open counter style then it takes
care of those issues
chrishtr: Suggestion is to make some forward progress on this. We can
discuss checkmarks / svg / names later
gregwhitworth: I agree, follow-up issues for glyph and
pseudo-elements makes sense
<chrishtr> "accept shadow dom structure as proposed initial comment
in the issue, except for svg part and naming of pseudo
elements. issues to be opened for those"
fantasai: Should probably be one issue for the pseudos and such, we
should decide them together
<jarhar> I already created an issue for pseudo elements here:
https://github.com/w3c/csswg-drafts/issues/10462
<masonf> +1
<chrishtr> "accept shadow dom structure as proposed in the initial
comment in the issue, except for svg part and naming of
pseudo elements. issues to be opened for those"
fantasai: Inside the button one of the elements is a `<span>` and
another a `<div>`, why?
RESOLVED: Accept shadow dom structure as proposed initial comment in
the issue, except for the svg part and naming of pseudo
elements. Issues to be opened for those
Anchor Positioning
==================
Add anchor attribute #9144
--------------------------
github: https://github.com/whatwg/html/pull/9144
masonf: It's related to anchor position and popover more than select
masonf: Proposal is to add an `anchor` attribute which does a few
thing
masonf: One is that it adds an element as implicit anchor
masonf: when you're doing that with popovers is also affect the
nesting rules so that when you anchor a popover to another
popover the outer doesn't close
masonf: The other one is about accessibility, and is that it'd be
good to have an HTML link to control focus fixup and
accessibility
masonf: There's been some pushback
fantasai: First question is why can't popover not create an implicit
anchor relationship?
masonf: How would it be automatic?
fantasai: Doesn't it know the relationship between the button and the
popover?
masonf: If you use invokers for it then yes
masonf: but if there's no button in the first popover or you open it
via JS then that would be the attribute
annevk: Those use cases wouldn't be using the declarative markup
correctly right? Shouldn't this be an API feature?
masonf: Like, connecting the elements on the JS call, via an
argument? That's already a proposal
masonf: If the proposal is to make the declarative popovertarget
connection and also a new setting in the JS API to make this
connection then that might meet the usecase?
<fantasai> https://github.com/whatwg/html/pull/9144#issuecomment-2189481315
lwarlow: Is there a use case for non-popover anchored things? If so
then that wouldn't work right?
lwarlow: worth keeping in mind
fantasai: For things that are not popovers we need to do something
fantasai: but there are three use cases for anchored:
semantic+presentationally anchored, presentation-only (like
the 'new' example I linked above), and semantic only (like
a footnote that pops up at the bottom of the screen, it's
not visually anchored to its anchor)
fantasai: so HTML needs an anchoring markup but it's not going to be
only about anchor positioning in the CSS
fantasai: if we add something to HTML we need to make it about the
semantics
fantasai: as proposed right now it's just presentational
fantasai: This proposal doesn't go far enough to provide what HTML
actually needs in terms of anchoring semantics
masonf: What would you propose to be added
masonf: a multi-valued anchor or somesuch?
fantasai: There's a11y and aria bindings, there's focus and tabbing
order (there are use cases for before and after), and the
other one is whether it's easy enough that they'll reach
for that and not just use CSS to get the right position
fantasai: The other thing is does this have an appropriate
description that we can point authors to?
masonf: I think a few things belong to aam and so but others would
belong to HTML
gregwhitworth: Would the explicit JS API allow to solve some of these
use cases?
masonf: There are a few things... would allow an explicit invoker
relationship, but we should also connect that to anchor
positioning as an implicit anchor
masonf: would be interesting to resolve to look into that direction
fantasai: I'd say to add markup to represent anchoring relationships
(i.e. not specific to anchor positioning)
<tantek> +1 fantasai markup for indicating anchoring relationships
annevk: Do we know what the a11y mapping would be or so?
annevk: seems too vague
chrishtr: The idea is to agree something is needed
annevk: The way I interpreted fantasai is "this what I'd expect of a
semantic attribute", not exactly what that might look like
fantasai: I agree, but "something is needed" is true
<tantek> FYI, per fantasai's list of use-cases for anchoring /
anchoring relationships / anchoring presentation and
combinations thereof, here is an example of semantic
anchoring without presentational anchoring, the footnote
link (and backlink) here:
https://tantek.com/2024/131/t1/mozilla-origin-trials
emilio: If we resolve on the invoker stuff to setup the anchor
relationship then doesn't that mean
emilio: don't we want that to work with non-popovers and we can
explore that
emilio: the other thing is whether we do an explicit JS API or some
other thing?
masonf: Yes, invoker relationships creates one of those and some
attribute or set of attributes will create an implicit anchor
relationship
emilio: That's a bit confusing to me
masonf: There is also the invoker/command attribute that will do this
for other things
chrishtr: If we could find a way for one thing to do both; then the
better
annevk: By invoker you mean popovertarget?
masonf: I mean command/commandfor
annevk: But we should do it for popovertarget too right?
masonf: Yeah
<masonf> Proposed: popovertarget creates an implicit anchor element
reference.
<lwarlow> +1
<keithamus> +1
RESOLVED: popovertarget creates an implicit anchor element reference
<fantasai> PROPOSED: Develop HTML markup to represent semantic
anchoring relationships (and which also set the implicit
anchor element) to address non-popover use cases
<tantek> +1
<lwarlow> +2
<masonf> +3
<keithamus> +4
<tantek> +1 emilio, including non-popover use-cases
<gregwhitworth> PROPOSED: Develop HTML markup to represent semantic
anchoring relationships (and which also set the
implicit anchor element) for popover or non-popover
use cases.
<tantek> +1
<masonf> thank you
<keithamus> +1
fantasai: I'd expect popover to work automatically as much as possible
masonf: I think the point is that even if it's a popover it'd work
annevk: I think we're too early in the process, doesn't really matter
at this point
lwarlow: Should we resolve on the imperative showPopover?
RESOLVED: Develop HTML markup to represent semantic anchoring
relationships (and which also set the implicit anchor
element) for non-popover use cases.
chrishtr: We should check on the API
chrishtr: Does anyone have concerns about the imperative API to
establish that link?
lwarlow: I think it'd be necessary to solve the web components use
case where you can't use the declarative API
<masonf> Proposed: it would be a good idea to add an imperative way
to set invoker relationships between popovers.
<lwarlow> +1
<keithamus> +1
RESOLVED: It would be a good idea to add an imperative way to set
invoker relationships between popovers.
CSS UI Con't
============
Changing UA styles based on the computed value of the appearance
property
----------------------------------------------------------------
github: https://github.com/w3c/csswg-drafts/issues/10028
jarhar: For appearance: base one of the things is that chrome and
webkit have different border property and we want to make
this interoperable
jarhar: For html-based solution this was not a problem
jarhar: so I thought it'd be not possible to solve, but lilles
suggested something like light-dark
jarhar: That took multiple values, one for auto/none and one for base
jarhar: I implemented it for border and so on
jarhar: not sure if you need details
<chrishtr> +1
emilio: This seems fine, it makes me sad that we can't get
interoperable UA stylesheets
emilio: Now we can not use regular CSS to represent the HTML styles
is unfortunate
emilio: Either we define this entirely and we can use this from HTML
then we have to say "if appearance is base" you need to do
this
emilio: It makes me a bit sad that it would spec fiction but maybe
it's fine
emilio: I think we should look into interoperable UA stylesheet.
Appearance: none is not interoperable at this point
<tantek> +1 emilio, it is surprising that appearance:none is not
interoperable across engines
masonf: First I think this doesn't mean that we shouldn't work on
making appearance: none interoperable, but decouples it
masonf: so that we don't have to worry about that for now
masonf: The other thing is that maybe there should be an
author-visible way to do this
<chrishtr> PROPOSED: user agent styles can depend on appearance:base
jarhar: I agree we can work on make appearance: none more interop,
but decoupling them is easier
jarhar: re author visibility, I had to implement it for each prop, so
I'm reluctant to do that
emilio: Can we resolve on the issue with the goal of making things
interoperable and this function would go away
emilio: once we make appearance: none consistent this would go away
<chrishtr> PROPOSED: user agent styles can depend on appearance:base.
Aim for eventual interoperability across all values of the
property.
<tantek> +1 emilio
jarhar: sounds good to me
<masonf> +1
<dandclark> +1
<emilio> +1
RESOLVED: user agent styles can depend on appearance:base. Aim for
eventual interoperability across all values of the property
Received on Thursday, 27 June 2024 23:21:25 UTC