[CSSWG] Minutes Telecon 2025-03-05 [css-fonts][css-values][css-overflow][css-display]

=========================================
  These are the official CSSWG minutes.
  Unless you're correcting the minutes,
 please respond by starting a new thread
   with an appropriate subject line.
=========================================


CSS Fonts & Fingerprinting
--------------------------

  - A few folks expressed interest in helping to address issue #11775
      (Index of local font issues: fingerprinting, I18n, privacy) but
      had limited capacity. They will reach out to team members to see
      if they can find folks with capacity to assist. Additionally,
      ChrisL and astearns will work on addressing suggestions sent
      privately and furthering discussion on the issue.

CSS Values
----------

  - RESOLVED: Rename string keyword to raw-string (Issue #11645:
              Distinction between `attr(foo type(<string>))` and `attr(
              foo string)` is too subtle)

CSS Overflow
------------

  - RESOLVED: Default styling for scroll markers will match default
              styling for links. Default styling for scroll buttons
              will match default styling for buttons (and appearance
              will apply accordingly). (Issue #10935: Default UA styles
              for scroll markers and scroll buttons)

CSS Display
-----------

  - RESOLVED: Add a source-order value to reading-flow (Issue #11208:
              reading-flow and mix of auto-flow and explicit items)
  - RESOLVED: reading-flow: source-order works on block containers.
              reading-order applies to block-level boxes, and not to
              inline-level boxes (Issue #11208)

===== FULL MEETING MINUTES ======

Agenda: https://lists.w3.org/Archives/Public/www-style/2025Mar/0001.html

Present:
  Kevin Babbitt
  Stephen Chenney
  Emilio Cobos Álvarez
  Yehonatan Daniv
  Elika Etemad
  Robert Flack
  Simon Fraser
  Chris Harrelson
  Daniel Holbert
  Brian Kardell
  Jonathan Kew
  Ian Kilpatrick
  Roman Komarov
  Vladimir Levin
  Chris Lilley
  Alison Maher
  Tess O'Connor
  Noam Rosenthal
  Jen Simmons
  Gaurav Singh Faujdar
  Alan Stearns
  Miriam Suzanne
  Joshua Tumath
  Bramus Van Damme
  Samuel Weinig
  Sebastian Zartner

Regrets:
  Oriol Brufau
  Lea Verou

Scribe: fantasai
Scribe's scribe: kbabbitt

Administrivia
=============

  astearns: Looks like we can skip item 2

  bramus: US is switching to summer time, but Europe is lagging.
  bramus: so next three weeks Europe will have CSSWG meetings at a
          different time
  bramus: since out of sync with US
  astearns: Good luck everyone with figuring out international meetings

  astearns: Another change is Pete Snyder was supposed to make this
            meeting, but couldn't due to a conflict.

  fantasai: ntim published first draft of css-forms-1, looking for
            feedback
  <fantasai> https://lists.w3.org/Archives/Public/www-style/2025Mar/0004.html
  astearns: We have an openui meeting tomorrow
  astearns: should put it on the agenda for review
  fantasai: Hoping to publish FPWD soon, since the draft is fairly
            complete now (even though lots of issues)
  <smfr> https://drafts.csswg.org/css-forms/

Fonts & Fingerprinting
======================

Index of local font issues: fingerprinting, I18n, privacy
---------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/11775

  ChrisL: I created this meta-issue ... to organize the discussion
  ChrisL: Sometimes we solve certain aspects and close an issue, so
          this is why closed issues are included
  ChrisL: Want to show where we are, what we've solved / not
          solved, etc.
  ChrisL: Some recent discussions around treating local fonts like
          webfonts
  ChrisL: But we need to solve this in some way, and we need to not
          break the Web, and to not disadvantage users who use
          languages other than English
  ChrisL: For example Chinese often relies on local fonts
  ChrisL: Another use case was a word processor type application, where
          users expect the browser to access all the local fonts
  ChrisL: Point of agenda item is to ask, who is interested in this
          topic? Who plans to work on it? If we come up with solutions,
          who will prototype them?

  astearns: Looking for volunteers to look at the possible solutions,
            try to make progress up to and including prototyping, to
            see what we can do to make this a better situation across
            all browsers.
  noamr: I'm personally interested in it, but don't have the bandwidth
         at the moment. I can try to find people in Google internally,
         but that's the most I can commit to.
  ChrisL: That's still helpful, thanks!
  <emilio> (not with a mic r/n), but I'm interested, and there's people
           at Moz that also are, but whether but whether we're the
           right people to prototype depends on what solutions we're
           talking about :)

  astearns: As we work on solutions and get closer to something that
            seems viable, it may be a little easier to convince others
            to take the time to prototype things.
  astearns: I will say that I got 5 private responses to my query that
            was meant to prompt public reply-all of people interested
            in this issue.
  astearns: People expressed their opinions on what most likely
            possibilities were on the issue, but just private replies
            and not sure what people are comfortable with me making
            public.
  ChrisL: I sent a private reply. First I had increased time in CSSWG
          by 10% and plh was ok with it.
  ChrisL: I also commented on what I thought were the most practical
          directions, but as the editor I want to be neutral.
  ChrisL: so that's why private reply
  astearns: I will commit more time to looking through these issues and
            replying with problems that I see, or avenues that seem
            promising.
  astearns: I may not be quite the level of ChrisL, might be more 5%
            increase. :)

  astearns: [reads emilio's comment]
  jfkthame: I'm in a fairly similar position to noamr, I'm interested,
            but I have very little bandwidth atm
  jfkthame: At the same time, if/when we coalesce around ideas worth
            prototyping, I'm happy to advocate for them and try to find
            resources to work on it

  kbabbitt: Encourage incubating ideas
  kbabbitt: Since I brought up word processing idea, I can discuss with
            those stakeholders
  kbabbitt: Will try to produce data necessary

  astearns: So maybe we take this back to the issues and get some more
            work done, unless anyone else wants to add to the
            conversation?
  astearns: OK, done for now. Expect these issues to return!

CSS Values
==========

Distinction between `attr(foo type(<string>))` and `attr(foo string)`
   is too subtle
---------------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/11645

  TabAtkins: attr() has the ability to say how to parse the attribute
  TabAtkins: default behavior is to take the value and use it directly
             as a string
  TabAtkins: we also have the ability to parse it as CSS value
  TabAtkins: In particular, can parse it as a string. This is weird,
             because you would need to include the quotes.
  TabAtkins: But it would also be weird to exclude that, so we're
             allowing it.
  TabAtkins: But it's confusing because to get the first behavior you
             write 'string' and for the second behavior you write
             'type(<string>)'
  TabAtkins: These are super close to each other, and probably
             confusing for authors.
  TabAtkins: Some discussion about other keywords.
  TabAtkins: unparsed-string, raw-string ...
  TabAtkins: Unless anyone has other ideas, propose to rename to
             raw-string
  <bkardell> sgtm
  TabAtkins: this is one of the keywords that do special behaviors
  <TabAtkins> attr(href raw-string)

  fantasai: This is equivalent to attr(href)
  astearns: If it's equivalent to syntax without keyword, can we just
            remove the keyword?
  TabAtkins: We can't. For one thing, I prefer having explicit
             keywords. But more importantly, legacy behavior requires
             us to fall back to an empty string if the attribute is
             missing
  TabAtkins: whereas the new behavior is falling back to Invalid At
             Computed Time behavior.
  TabAtkins: It would be weird if you couldn't do that for the most
             common case
  TabAtkins: so omitting falls back to empty string, including keyword
             falls back to IACT
  fantasai: That is a subtle difference that is not going to be obvious
            at all
  fantasai: if that's actually a behavioral difference I think it would
            be good to make it clearer
  TabAtkins: Don't know how to bake IACVT into a keyword
  fantasai: Me either
  TabAtkins: Right now if you specify a type at all you get IACVT as a
             fallback
  TabAtkins: not tied to string vs ??, a little more for people to learn
  TabAtkins: Agree it's not great but need to work around legacy
             behavior
  fantasai: Something for us to think about, if we can make it clearer.

  astearns: So for now, proposal is to rename to raw-string
  TabAtkins: Should do asap, since we're shipping already.
  <bkardell> 1+
  astearns: Any objections to changing string to raw-string?

  RESOLVED: Rename string keyword to raw-string

CSS Overflow
============

Default UA styles for scroll markers and scroll buttons
-------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/10935

  flackr: We want to have a reasonable default styling for scroll
          markers and buttons, so they're visible
  flackr: Our suggestion is to make scroll buttons to render like
          buttons, including handling 'appearance'.
  flackr: and scroll markers would look like links
  flackr: since they're interactive etc.

  TabAtkins: You did bring up question of appearance?
  flackr: I implemented it, think it should
  TabAtkins: Agree

  fantasai: The interesting question is whether the scroll markers
            match the ? pseudo class
  <TabAtkins> :visited/:link
  fantasai: Technically they can't because :link by itself selects
            elements but not pseudos
  fantasai: Wondering what we want to do about that
  TabAtkins: So if page author changes their :link style, wouldn't
             change scroll markers?
  fantasai: Right
  flackr: Agree that would be nice... open to suggestions?

  astearns: If we don't find a way of having link styling apply to
            scroll marker, then what we're doing is requiring authors
            to add the ::scroll-marker selector to their link styling
            block
  fantasai: Which they're not going to remember to do
  <chrishtr> it seems unlikely to me that developers won't notice that
             these Pseudos have the wrong colors, and then go fix it
  <chrishtr> the colors being wrong will make their scroll markers look
             invisible or totally wrong in prominent site ui

  JoshT: Why are they being styled as links rather than buttons?
  flackr: They scroll to content, just like regular links do
  JoshT: In the past, authors probably would have implemented as
         buttons; but I see the logic
  TabAtkins: It depends what you're doing. Carousel dots, more like
             buttons; but for ToC, more like a link.
  JoshT: What is the aria role?
  flackr: They're tabs, with scroll marker group being the tablist

  astearns: Should we resolve on this, and then try to figure out link
            styling? Or is this a fundamental question we need to solve?
  fantasai: The goal of default styling is to make it visible... if not
            visible, not a good thing?
  TabAtkins: As chrishtr points out, authors will almost always tweak
             them anyway
  TabAtkins: so they're going to notice if looks bad on the page.
  TabAtkins: same as if they put a blue background; will notice links
             are invisible
  TabAtkins: so probably fine
  astearns: Whether or not fine, could resolve today on default styling
            for scroll markers matching link styling, and scroll
            buttons taking button styling
  <chrishtr> +1 to this proposed resolution
  astearns: anything about appearance?
  TabAtkins: appearance applies to scroll buttons same as regular
             buttons

  PROPOSED: Default styling for scroll markers will match default
      styling for links. Default styling for scroll buttons will match
      default styling for buttons (and appearance will apply
      accordingly).

  RESOLVED: Default styling for scroll markers will match default
            styling for links. Default styling for scroll buttons will
            match default styling for buttons (and appearance will
            apply accordingly).

  flackr: I'll open a separate issue for the :link-matching

CSS Display
===========
  scribe: kbabbitt

reading-flow and mix of auto-flow and explicit items
----------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/11208

  TabAtkins: last time we discussed there was a question about whether
             reading order is the one that explicitly sets an element
             to a particular spot
  TabAtkins: rather than relying on visual stuff
  TabAtkins: should work without opting into one of the other explicit
             reading flow values
  TabAtkins: whether it should be explicit or implicit etc
  TabAtkins: authors had opinions in thread
  TabAtkins: the idea of having a reading-flow value that does no
             reordering by default but just gives side effects
  TabAtkins: sounds perfectly reasonable
  TabAtkins: we didn't do this before because just tab-index was the
             side effect
  TabAtkins: but with reading order in display now it makes sense to
             have a reading-flow value that does no implicit reordering
  TabAtkins: just reordering that author asked for
  TabAtkins: we do however feel strongly that it needs to be a new
             keyword
  TabAtkins: rather than a default behavior that can trigger anytime an
             element has reading order

  TabAtkins: fantasai was suggesting that if any element has reading
             order it automatically makes parent into a reading flow
             container
  TabAtkins: emilio disagreed on performance implications
  TabAtkins: can't tell if something is a reading-flow container just
             from element itself
  TabAtkins: grid with a whole bunch of autoflow children can be an
             expensive operation
  TabAtkins: I think becoming a reading flow container has side effects
  TabAtkins: having a child with reading order would implicitly apply
             side effects to siblings
  TabAtkins: this would happen if you have the same markup several
             times on a page or across multiple pages
  TabAtkins: only some have a reading order child or have a reading
             order child that is hideable
  TabAtkins: will change whether side effects apply to everything else
  TabAtkins: seems not great, just as hard for authors to predict as
             stated concern
  TabAtkins: that authors would not be able to predict whether reading
             flow works by default
  TabAtkins: so we are pretty strongly against reading flow working by
             default for these reasons
  TabAtkins: should instead opt into reading order

  TabAtkins: fantasai's third point in response was forward
             compatibility
  TabAtkins: if reading order automatically turns on reading flow
             containers, that only works if everything can be a reading
             order container
  TabAtkins: or if we fix the set of block types that can ever be
             reading order containers
  TabAtkins: otherwise others could set reading order on a block which
             would do nothing today
  TabAtkins: we could define it in the future and it would turn on
             suddenly causing side effects that they don't expect
  TabAtkins: fantasai suggested we could go ahead and define
             block-level reading flow right now in trivial case of no
             reordering
  TabAtkins: we're not super comfortable with that
  TabAtkins: display:block order is going to be complicated anyway

  fantasai: I don't think so, we're not proposing to add new visual
            order
  fantasai: just saying you can have normal flow order and also apply
            reading order different from source order
  fantasai: you have an order that's the source order, you don't have a
            magic order, just saying reading order should apply to
            source order like in a flexbox
  fantasai: don't think floats etc. introduce any more complexity
  fantasai: just as simple as a flexbox that doesn't have any order
            properties
  chrishtr: almost a no-op?
  fantasai: no because if you set reading order on... e.g. I have a
            section with a heading and a couple of paragraphs
  fantasai: if I set reading order -1 on the heading it would pull up
            the heading above the paragraphs
  fantasai: no magic about floats, because that would require a new
            value for reading-flow
  fantasai: which would be magic block reordering something
  fantasai: we're not suggesting that
  TabAtkins: it does sound like a potentially doable behavior for block
             but our opinion is still towards not triggering by default
  TabAtkins: our ideal conclusion would be to add a no-op value that
             just makes something a reading flow container
  TabAtkins: and doesn't do anything else special
  TabAtkins: define that it works for everything
  TabAtkins: not everything because we still want tables to be
             handleable in a different way
  TabAtkins: so define it for blocks and call it a day
  fantasai: this gets into another issue about initial value of
            reading-flow
  fantasai: next issue
  fantasai: having initial value being smarter than sort order
  fantasai: adding new value that is strict source order
  fantasai: with those two, the strict source order could be the value
            we use here

  emilio: agree with TabAtkins
  emilio: did we decide whether reading order affects a11y tree as well?
  fantasai: yes
  emilio: I don't know exact order of abspos and floats right now
  emilio: but presumably that would get more tricky
  emilio: e.g. does the float get order... in source order?
  <iank> I think this property only applies to in-flow elements?
  fantasai: if we apply to blocks, when floats come out of flow that's
            a visual effect
  fantasai: does not affect reading order
  fantasai: would be there as if not floated
  emilio: ok that seems fine
  emilio: I would expect containing block to ? the order
  fantasai: in the future maybe we want to do something fancy with
            floats

  astearns: in the proposal where reading order works without reading
            flow, is it the case that if you set reading order on an
            element that will make the nearest block-level parent a
            reading flow container?
  TabAtkins: yes
  fantasai: yes
  astearns: very limited utility with markup I'm used to working with
            where things can get wrapper elements
  astearns: caption goes above picture until someone decides caption
            needs a wrapper element
  astearns: then it stops working as intended
  fantasai: don't think you can introduce a ? that hoists things out of
            the tree
  astearns: yes. I think this is an argument for TabAtkins' position
  fantasai: don't think that would change situation in your case
  fantasai: if reading order ?? it's still not going to move
  fantasai: you still have to set it on the direct child that you're
            trying to reorder
  fantasai: if reading order is not set on the elements you want to
            reorder that are siblings
  fantasai: nothing is going to happen
  fantasai: question is whether or not you need something on the
            container, not going to make a difference here
  fantasai: reason TabAtkins wants it is to make sure author is opted
            into the tabindex side effects
  TabAtkins: that's the big part, also if we go with your suggestion we
             could never introduce a more complex behavior
  TabAtkins: might be something we never need but I feel like if we
             explore block cases more we might want to do something
             like that
  TabAtkins: uncomfortable with shutting off that possibility
  fantasai: if you were going to reshuffle the tree...
  fantasai: order property doesn't work like that
  TabAtkins: but order property only works with flex and grid which are
             explicit about container child relationship
  TabAtkins: uncomfortable shutting off possibility of better block
             reordering strategy
  fantasai: how would that work? extract element outside container?
  TabAtkins: don't know
  TabAtkins: there's some meat on that bone though
  TabAtkins: because as astearns said, it's common to have wrapper
             elements
  fantasai: if you introduce wrapper elements the reading order
            property will be on outermost wrapper
  fantasai: a number of properties that you want to set on outermost
            wrapper, reading order is one of them

  TabAtkins: discussion got mixed with next issue
  fantasai: swap issues or stay on this one?
  TabAtkins: we can get some resolutions on this one
  TabAtkins: can resolve on a no-op container ? value, a source order
             value or something
  fantasai: need that for both issues
  chrishtr: not to choose a name, say there is a value
  TabAtkins: happy to resolve on that
  astearns: Proposed resolution is to add a source order value to
            reading-flow property
  PROPOSED: Add a source-order value to reading-flow.

  RESOLVED: Add a source-order value to reading-flow

  fantasai: Proposed: reading-order applies to block-level elements,
            does not apply to inline-level elements
  TabAtkins: such that source-order value points to it?
  fantasai: that's the third question
  TabAtkins: not yet whether it applies by default or not
  <fantasai> PROPOSAL: reading-order applies to block-level boxes, and
             not to inline-level boxes. (Note this will work under
             source-order, and not e.g. flex-*/grid-*)
  <TabAtkins> reading-flow:source-order works on block containers.
              reading-order works on block children of those block
              containers that are opted in to reading-flow
  <fantasai> PROPOSAL: reading-flow: source-order works on block
             containers. reading-order applies to block-level boxes,
             and not to inline-level boxes
  astearns: objections?

  RESOLVED: reading-flow: source-order works on block containers.
            reading-order applies to block-level boxes, and not to
            inline-level boxes

  astearns: Anything more we can resolve on?
  chrishtr: that it has to be explicit?
  astearns: that is the sticking point
  TabAtkins: resolution as it stands says implicit stuff doesn't work
  TabAtkins: right now only explicit works
  fantasai: we can take that back to the issue
  chrishtr: come back to this issue next week for 3rd point

Received on Thursday, 6 March 2025 00:06:55 UTC