W3C home > Mailing lists > Public > www-style@w3.org > April 2016

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

From: Tab Atkins Jr. <jackalmage@gmail.com>
Date: Mon, 25 Apr 2016 07:50:39 -0700
Message-ID: <CAAWBYDDx5U2z7QtvTppHcUOPwg94bsB981nTbvZBVGeeogwErA@mail.gmail.com>
To: Ting-Yu Lin <tlin@mozilla.com>
Cc: www-style list <www-style@w3.org>
On Mon, Apr 25, 2016 at 12:04 AM, Ting-Yu Lin <tlin@mozilla.com> wrote:
> Do we want to redefine other counter styles keyword like 'disc' other than
> disclosure-open/closed to be a 'content' keyword?

I don't see any particular reason to.  I only added the
disclosure-open/closed keywords to list-style-type because I
anticipated <summary> using display:list-item when I wrote the Counter
Styles spec.

> If we remove
> disclosure-open/closed from being a keyword of 'list-style-type', won't this
> cause a backward compatibility issue?

With who?

> I'm a implementer for Firefox, so this is from the implementation point of
> view.
> Tab's proposal is cleaner, but I'm worrying about the implementation
> complexity
> for defining ::marker to be another universal pseudo like ::before for
> solving
> the issue for summary implementation.

I'm curious what the impl complexity is - you already have code to
handle creating ::marker for display:list-item, and you have code to
handle ::before/after pseudo-elements on all elements.  Are the two
too hacky to simplify reasonably?

> We do want the summary marker to be
> stylable. However, from the current details and summary usage I saw, authors
> are
> either satisfied with the built-in rendering of the triangle, or they're
> hiding
> the built-in one, and replace it by stuff in summary::before. Needless to
> say that if they want the marker position to be at the end of summary
> they'll still need to hide the triangle, and provide ones in summary::after
> like this page.

Why so? That page
can just use "summary { display: flex; } summary::marker { order: 1;

> And using summary::before is also the practical way for a
> decent
> web page to work across browsers with or without details and summary
> implementation.
> Even though summary being a list-item is hacky, it did provide a clean way
> to hide
> the triangle by summary { list-item-type: none }.

Same under my proposal, you just do "summary::marker { content: none;
}" (or display:none, whichever feels most natural).

> I can live with hacks in browser implementation as long as we provide a
> cleaner way for the authors to style the triangle, and a not-too-difficult
> way for
> vendors to start implement or adopt the standardized details and summary
> feature.
>> 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.
> I feel changing list-style-* properties to *only* apply to the ::marker
> could be
> another source for compatibility issues. Other implementers who are familiar
> with counter styles might want to comment this.

I don't see how it can cause any compatibility issue at all, in any
scenario.  The list-style-* properties today only apply to list items,
they inherit, and ::marker is always a child of a list item, so all
code that today uses them to style a list item would, under this
proposal, style the marker instead, and no page can accidentally pick
up marker styling if it wasn't already styling the list item.

Received on Monday, 25 April 2016 14:51:26 UTC

This archive was generated by hypermail 2.4.0 : Friday, 25 March 2022 10:09:02 UTC