Re: [css-lists][html] <summary> and ::marker

> On 21Apr, 2016, at 14:24, Tab Atkins Jr. <jackalmage@gmail.com> wrote:
> 
> I propose a simple solution: rather than having "display:list-item"
> cause the ::marker to be generated, as is specced today, we make
> ::marker *always* exist, identical to ::before.  For normal elements
> you have to explicitly give it a 'content' value, just like ::before.
> "display:list-item" then just makes the ::marker pay attention to the
> list-style-* properties.
> 
> This would let us swap the <summary> UA style back to just:
> 
> summary {
>  display: block;
> }
> summary::marker {
>  content: disclosure-closed;
> }
> details[open] > summary::marker {
>  content: disclosure-open;
> }
> 
> (We'd also redefine disclosure-open/closed from being counter styles
> to just being 'content' keywords with the same effect.)

Love this! Much cleaner than hijacking display: list-item, and avoids all the other problems. Not sure if implementors will think it's feasible, but I'm pretty sure that authors will love it. And it pushes toward more ::marker implementations as a side effect, which is great.

> fantasai offers an alternate proposal: leave <summary> as is, leave
> the hack for the first problem, but make the list-style-* properties
> actually only apply to the ::marker pseudo, rather than to list items.
> Inheritance ensures that we maintain today's behavior, but HTML can
> then set list-style-position:inside directly on the summary::marker,
> and avoid the second problem entirely.
> 
> Thoughts?

Why? Your proposal above is fantastic, why go down this hacky path again?

~Lea

Received on Wednesday, 4 May 2016 20:02:36 UTC