[CSSWG] OpenUI-WHATWG/HTML-CSSWG Meeting 2024-06-27

=========================================
  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:28 UTC