[CSSWG] Minutes Telecon 2025-09-03 [css-text-decor][css-grid][masonry][css-overflow]

=========================================
  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 Text Decor
--------------

  - RESOLVED: Change the definition to 'must do nothing'. and make the
              computed value remain (Issue #12015: What to do with
              `blink` value in `text-decoration`?)

CSS Grid 3/Masonry
------------------

  - RESOLVED: Change initial value of item-tolerance to 'normal' (Issue
              #12111: Make `item-tolerance` initial value `normal`)

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

  - The group discussed the options in github for issue #12176 (Giving
      ::scroll-marker-group a name (and optionally text))
      - There was disagreement about if this type of labeling is the
          scope of CSS or the scope of HTML. :before and :after allow
          the labeling so there is a precedent, however a11y guidance
          is away from that use case so it's unclear if it's a path
          that should be followed.
      - General questions about scroll markers being in CSS were also
          discussed with this as another example of how this property
          blurs the lines between CSS and HTML.
      - Discussion will return to github with examples added to
          hopefully make the issue less abstract.
  - RESOLVED: line-clamp: <integer> with a height constraint clamps by
              height or by lines, depending on what comes earlier,
              pending compat issues (Issue #12041: Can you line-clamp
              by both a number of lines and a height at the same time?)

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

Agenda: https://lists.w3.org/Archives/Public/www-style/2025Sep/0000.html

Present:
  Jake Archibald
  Tab Atkins-Bittner
  Andreu Botella
  Oriol Brufau
  Keith Cirkel
  Emilio Cobos Álvarez
  Elika Etemad
  Robert Flack
  Diego Gonzalez
  Hoch Hochkeppel
  Daniel Holbert
  Jonathan Kew
  Chris Lilley
  Alison Maher
  Romain Menke
  Eric Meyer
  Tim Nguyen
  Florian Rivoal
  Alan Stearns
  Miriam Suzanne
  Josh Tumath
  Sebastian Zartner

Regrets:
  Rachel Andrew
  Kevin Babbitt
  Yehonatan Daniv
  Noam Rosenthal
  Lea Verou

Scribe: JoshT

CSS Text Decor
==============

What to do with `blink` value in `text-decoration`?
---------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/12015

  florian: title is a bit misleading. blink value no longer blinks. but
           for compat needs to stay
  florian: do we want to switch def from saying it may do nothing to
           say it must do nothing?
  florian: and how does computed value behave?
  florian: firefox doesn't do anything special. or safari and chrome
           where computed value drops blink value
  florian: I hear safari and chrome going to match firefox
  florian: so we probably want to switch to how it has no effect and
           how there is no simplification of the computed value
  ntim: for second issue, no strong opinion.
  ntim: on the side of dropping it because since it does nothing, it's
        reasonable to make it compute to none
  ntim: but no strong opinion. deprecated. who cares. :D
  astearns: and engines seem to be converging
  PROPOSED: change the definition to 'must do nothing'. and make the
      computed value remain.

  RESOLVED: change the definition to 'must do nothing'. and make the
            computed value remain.

CSS Grid 3/Masonry
==================

Make `item-tolerance` initial value `normal`
--------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/12111

  <alisonmaher> https://github.com/w3c/csswg-drafts/issues/10882
  alisonmaher: two issues related to the issue
  alisonmaher: proposal to use 0 instead of 1em for initial value
  alisonmaher: may be less confusing for authors to see jumps
  alisonmaher: argument against 0 is that it's not as accessible. less
               than 1px causes jumps in dom order
  alisonmaher: so proposed to keep 1em and see author feedback
  alisonmaher: column-gap has the same default
  alisonmaher: leave as 1em for now and use normal as initial value and
               compute to 1em

  oriol: agree that if we go for 0 for masonry, computed value should
         be normal
  oriol: 1em for masonry and otherwise 0
  oriol: preference still defaulting to 0 for masonry.
  oriol: I agree 1em makes more sense. but preference is it may cause
         confusion
  oriol: no one of the values in masonry libraries does this
  oriol: providing a value that is small but not 0 may fail the
         expectations of authors
  oriol: not sure if 1em will work well in general. something other
         than 0 may be good. 1em may be a random choice
  oriol: have preference for 0 but not objecting to 1em. if we go for
         0, may not need normal value

  astearns: with the other issue about whether the default is 1em or
            1lh, we can discuss separately for masonry. but making the
            default value 'normal' allows us to have that discussion
            for other layout modes that may need a different value
  oriol: masonry is strange if we say that the normal behaviour will be
         0 because it will always be 0. but we can work out how to
         resolve this later

  fantasai: I agree with oriol that it would be weird
  fantasai: but if we have a none 0 value, it should be normal.
  <TabAtkins> +1
  fantasai: me and TabAtkins agree initial value should be 1em, to
            match row-gap
  astearns: putting aside what it computes to, can we resolve that the
            initial value is 'normal' for now?

  RESOLVED: change initial value of item-tolerance to 'normal'

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

Giving ::scroll-marker-group a name (and optionally text)
---------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/12176

  flackr: when using CSS scroll markers, we implicitly create a
          ::scroll-marker-group
  flackr: for presentation and a11y tree, the element doesn't have a
          name to say what type of thing it's containing. maybe slides
          or pages or items
  flackr: it's good practice and visually desirable to have a label
  flackr: I wanted to get some consensus on what path we should follow
          here
  flackr: I listed possible options.
  flackr: without major syntactic changes, we could add the content
          before the pseudo on the scroll-marker-group
  flackr: but wanted to get group's thoughts

  fantasai: when you're at the point where you need labels, you should
            probably use HTML
  <astearns> +1 fantasai
  fantasai: when this was just a decorative thing, that seemed like it
            could be in css.
  fantasai: once it has content, it seems like it needs to be in the
            content

  TabAtkins: I disagree with fantasai
  TabAtkins: we already have the alt property to add alt text ::before
             and ::after
  TabAtkins: we encourage adding content in the dom
  TabAtkins: but this labeling serves the same purpose
  TabAtkins: this might only apply in certain media queries and
             therefore be stylistic
  TabAtkins: I think simply labeling things is appropriate

  astearns: while I agree with the alt text comparison, I wonder if
            it's just that sort of thing. is there anywhere else in CSS
            where we apply an aria-label
  flackr: this is wherever the content property applies
  astearns: is it a label or more like a role?
  astearns: do we need ways of setting roles for a11y affordances?

  PaulG: the examples of tabs would be a tab list and not just a group
  PaulG: so there are different roles for different collections of items
  PaulG: content is also problematic for accessibility, like with
         translations
  PaulG: so we tell people to avoid it
  PaulG: there are multiple issues. could we see examples with the role?
  PaulG: I suspect it will get complicated without a lot more hinting
  flackr: this is not about setting the role. aria has examples of
          using a tablist role with a label
  flackr: this is just a label that is a friendly name for the user to
          explain it. we are exploring changing tablist roles with a
          different property in a different issue
  flackr: this would be similar to the aria-label property

  JoshT: haven't read the issue yet, but TAG recently got back to you
         about this
  JoshT: anything they mentioned that is relevant to this?
  flackr: this specifically, not sure. tabs-or-links resolution from
          the other issue (about changing the role and interaction
          behavior) was directly in relation to some of the TAG feedback
  flackr: I think this might have come up a bit as well. I'm trying to
          align the things that you should do to make your site a11y
          aligned, as easy as possible
  flackr: so being able to give a more contextually meaningful label
          seemed like a nice thing for devs to be easy to do

  florian: This is a passing thought. whether this should be done in
           CSS or HTML...
  florian: this seems like another case for cascading attributes
  TabAtkins: I don't think that's the case here. these are CSS
             generated and that would only work if you have the markup
  <fantasai> +1 to cascading attribute sheets being useful for many of
             these kinds of cases, and also probably not relevant to
             this case
  florian: so it's adjacent but not quite right

  keithamus: Concerned about the recurring theme with scroll markers.
             The question of why it isn't in HTML.
  keithamus: this is the case again. If you supply a label with CSS for
             scroll makers, why not every element?
  keithamus: does the aria spec need to be updated to mention stuff
             about CSS?
  keithamus: does the a11y tree get more complex as a result?
  flackr: you can already set a content value
  keithamus: that's limited in scope
  keithamus: one property on pseudo-elements. this isn't a suggestion
             to allow content in a pseudo-element
  flackr: this is
  astearns: well in three of your four options
  flackr: yes. we have a pseudo-element and we want to give it
          pseudo-content
  <PaulG> CSS pseudo element content, either :before or :after, must
          only be used for decorative purposes. If you insert
          meaningful content using a :before or :after pseudo element,
          it is in violation of success criteria 1.3.1.
  <PaulG> arguing that this is the same thing, is going to cause issues
  astearns: as PaulG mentioned, the a11y folks don't like us doing that

  astearns: I wonder, should we take the issue back to consider whether
            the use case should be addressed in HTML?
  TabAtkins: I think your question is, 'should we be doing scroll
             markers in css at all?'
  TabAtkins: I don't know what is the more specific use case you might
             be targeting?
  TabAtkins: how could we do that in markup without the whole thing
             being in markup
  PaulG: you could point to an element with content in it

  ntim: Keith's question is legit
  ntim: we had discussions about adding event listeners onto the
        elements, and now labels
  ntim: will we end up needing slotting inside pseudo-elements?
  ntim: I think a boundary makes sense. we need to find a boundary
  <fantasai> +1 to figuring out where the boundary is

  kizu: someone mentioned on one of the threads about whether we can
        connect a HTML template to a pseudo-element
  kizu: let's say we have a pseudo-element that provides something as
        content
  kizu: then define the template in HTML which can be translated
  kizu: one common case is adding icons. or adding more complex content
  kizu: something we never did before but could be explored
  kizu: and could be dynamic

  florian: on the HTML vs CSS discussion, it feels CSSy still. this is
           the presentation, not the content of the document
  florian: so having the whole thing or a chunk in CSS does make sense
  florian: if we have building blocks on both sides, that may work too.
           this is not pure content
  florian: I'm kind of sorry I pushed the discussion in that direction
  florian: are we going into abstract theoretical purity things
  florian: but if this helps us find a better path, maybe that's right
  <TabAtkins> +1

  keithamus: I don't think it's too abstract. I would have also
             raised it
  keithamus: there are common problems here with solutions today in HTML
  keithamus: the scroll-marker-group, is there more than one?
  flackr: no
  keithamus: so this could be a slotted element
  keithamus: it could be supplied to you if you want it fully
             decorated. but if you want to change the role or whatever,
             you could add a new HTML element into your container and
             that acts as the element that is slotted in
  keithamus: it would be just like ::detail-summary. that would point
             to the detailed content of the summary
  keithamus: I think scroll markers could also fit that pattern
  keithamus: I think it solves the general problems that this design is
             pointing towards
  <ntim> (::details-summary does not exist anymore, ::details-content
         does though)

  florian: I am unsure. yes somewhat, but it bakes into the markup
           assumptions about how we will present the whole thing which
           is a smell as well
  keithamus: I guess I'm curious what presentation assumptions having
             an element in the dom makes
  florian: maybe I misunderstood what you meant, but depending on when
           you use scroll-marker or -group at all, you might not need
           that element
  florian: you may have completely different presentation of the
           content that doesn't need these things at all
  florian: but if you do need them and they're not baked into the
           markup, you can't
  florian: or otherwise you have it and you need to adjust your markup
  TabAtkins: this is related to how most UI frameworks have a container
             type.
  TabAtkins: in CSS, it is purely presentational and you can turn it off
  TabAtkins: that's the idea here too, where a styling choice can
             affect whether you have scroll markers
  TabAtkins: it is theoretically possible to have a pattern in HTML
             that has scroll markers
  TabAtkins: if it is something that can optionally generate scroll
             makers, then the presence/absence of it is CSS dependent
  TabAtkins: most of the questions like architectural decisions are
             the same
  TabAtkins: we're trying to avoid the situation where if we were to
             add markup for scroll markers, that would automatically do
             scroll makery stuff and you can't meaningfully turn it off
  keithamus: we can have different semantics here. we could make it
             conditional even based on UA styling
  keithamus: and that will make it affect the a11y tree
  keithamus: I'm concerned that we're extending this concept in ways
             that will create more burdens when we could just have an
             element on the page and influence the a11y tree normally
  keithamus: if someone wants to change any property for it, the
             solution already exists
  fantasai: there are a number of scroll markery things we don't expect
            to generate in CSS. like a ToC where the content of the
            heading is the link. that would need to be done in the HTML
  fantasai: there is a set of use cases for scroll markers that we've
            already decided belong in HTML
  fantasai: I think going back to ntim's question, where do we draw the
            line for what use cases are in HTML?

  florian: there is a tension here about what is a natural fit for the
           capabilities of the language
  florian: what is an appropriate decoupling of content and CSS?
  florian: they are overlapping
  florian: I maybe lean towards decoupling with presentational things
           being in CSS more often than not
  florian: it's presentationy and you may want to turn them off or on
  fantasai: to the extent that the more something is coupled with the
            content, the more it belongs in HTML
  fantasai: also, would be useful if this issue had more concrete
            examples of what we mean by a tablist. they're normally
            labelled with something
  fantasai: that would be useful.

  fantasai: and we don't seem to have a consensus here. we should
            probably move on
  flackr: I think that's fine to wrap up.
  <flackr> https://github.com/w3c/csswg-drafts/issues/8892
  flackr: I want to point out there's a similar issue for selecting
          content from pseudo-elements
  flackr: I think part of this is dev ergonomics
  flackr: I can try to distill this down. I don't know if we're getting
          anywhere but can bring back to issue
  flackr: it's basically just a label for your scroll markers. I can
          put examples in the issue
  florian: it may help focus

Can you line-clamp by both a number of lines and a height at the
    same time?
----------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/12041

  andreubotella: [shares slides]
  andreubotella: when we looked at line-clamp, this was not the
                 approach we would take in other browsers
  andreubotella: you can have a fragment. the first fragment has a
                 forced breakup. if you move the height so it breaks
                 before the line where it breaks, the content moves
                 into the second fragment
  andreubotella: but does the line clamp still apply?
  andreubotella: when I was prototyping this, we understood it to be
                 clamping by lines or height but not both at the same
                 time
  andreubotella: I didn't realize that this was not the agreed approach
                 until in April F2F
  andreubotella: I implemented this recently and have no problem with
                 it being in the spec
  PROPOSED: line-clamp: <integer> with a height constraint clamps by
      height or by lines, depending on what comes earlier
  andreubotella: height constraint means height, max-height, etc.
  andreubotella: could be a constraint through the intrinsic layout
  andreubotella: we accidentally shipped this behaviour in Chrome 140
                 and it was reported as a regression by two devs
  andreubotella: we reverted the change and have added use counters for
                 line-clamp with height constraints
  andreubotella: we hope to have useful data in December
  andreubotella: I asked those devs what their use cases were
  andreubotella: for one, their use case would not be affected by this
                 change
  andreubotella: it is possible we might need to not do this for the
                 -webkit-line-clamp. we will know in December

  florian: In general, I support proposal
  florian: if you have ten lines, you ask for four, you cut off at
           three, I think this is better
  florian: if we are constrained by compat, I would be sad but OK
           having a difference between -webkit- and non-prefixed
  florian: if the breakage is bad, we can do a difference in behaviour

  <Kurt> https://issues.chromium.org/issues/436345865#comment23

  fantasai: I agree with florian. I had some questions
  fantasai: if only one line fits, we should make that line doesn't get
            clamped
  fantasai: it seemed like in one case, they had a line height of 1em
            and a line clamp of 3 lines and a max-height of 3
  fantasai: in theory, there should be no conflicts between these two
            unless you have substantial content
  fantasai: there are often small difference in line height which can
            create a small amount of overflow not visible to the author
  fantasai: so we might need some slack when working out whether to
            push over a line to the next fragment
  andreubotella: do you expect a difference between just line-clamp or
                 with height as well when calculating slack
  fantasai: not sure. maybe we do that. if it's something that's weird
            that we have to do for web compat, maybe we do have the
            difference for the -webkit- prefixed version
  fantasai: it might end up being something reasonable

  florian: I can't see how we make it work. there is not clamp by
           height.
  florian: the height you set is with regular height properties or the
           layout system
  florian: so I don't think we can give slack to the actual height
  florian: you could let content overflow just a little bit
  florian: I was wondering if instead of clamping or sizing, could this
           be about what we have in the css inline layout spec
  fantasai: yes could be related. we will have to see
  fantasai: if we get a lot of cases where this is an actual problem
            and the maths doesn't work out
  PROPOSED: line-clamp: <integer> with a height constraint clamps by
      height or by lines, depending on what comes earlier

  RESOLVED: line-clamp: <integer> with a height constraint clamps by
            height or by lines, depending on what comes earlier,
            pending compat issues

Received on Friday, 5 September 2025 10:54:10 UTC