list ::marker should accept content, and several writing-mode related properties
https://bugs.webkit.org/show_bug.cgi?id=204163
Summary list ::marker should accept content, and several writing-mode related properties
Miriam Suzanne
Reported 2019-11-13 10:35:10 PST
Safari seems to support the `::marker` selector, but only for styling `color` and `font` properties. According to the specification (https://drafts.csswg.org/css-pseudo-4/#marker-pseudo - fully implemented in Firefox), support should also include: - `content` - `direction` - `text-combine-upright` - `unicode-bidi` I'm not qualified to comment on the last two, but neither `content` nor `direction` is supported at this point. See my example on codepen: https://codepen.io/mirisuzanne/pen/bGGmdpm
Attachments
Radar WebKit Bug Importer
Comment 1 2019-11-16 15:45:50 PST
Oriol Brufau
Comment 2 2019-11-18 10:57:47 PST
Also the font-kerning property. Once I finish the implementation of ::marker in Chromium, I can try to port patches into WebKit.
Mihai Parparita
Comment 3 2020-10-21 16:35:20 PDT
Daniel: it looks like you added support for ::marker (with https://trac.webkit.org/changeset/22020) -- is this an expected limitation?
Daniel Bates
Comment 4 2020-10-21 18:17:26 PDT
I added ::marker support. What is the question?
Mihai Parparita
Comment 5 2020-10-22 10:07:45 PDT
(In reply to Daniel Bates from comment #4) > I added ::marker support. What is the question? The lack of support for some the properties listed at https://www.w3.org/TR/css-lists-3/#marker-properties, especially `content`.
Daniel Bates
Comment 6 2020-10-22 23:31:51 PDT
(In reply to Mihai Parparita from comment #5) > (In reply to Daniel Bates from comment #4) > > I added ::marker support. What is the question? > > The lack of support for some the properties listed at > https://www.w3.org/TR/css-lists-3/#marker-properties, especially `content`. Simple answer: they weren't in the draft at the time I implement it. I implemented Editor's Draft, 24 July 2017.
Daniel Bates
Comment 7 2020-10-22 23:39:34 PDT
Ted Whitehead
Comment 8 2021-01-05 14:11:08 PST
Hi there, was just wondering if there are plans to implement `content` in a future release. FWIW, none of these sites mention `content` as not being supported in Safari (which obviously isn’t your fault, but added to my confusion until I found this ticket). - https://caniuse.com/css-marker-pseudo - https://developer.mozilla.org/en-US/docs/Web/CSS/::marker#Browser_compatibility - https://web.dev/css-marker-pseudo-element/#browser-compatibilty Thanks!
Ted Whitehead
Comment 9 2021-01-05 15:27:49 PST
FYI, for anyone who stumbles across this in the future, one of the reasons why `content` is so helpful is because the old technique of setting `list-style: none` and using `:before` causes issues with VoiceOver on Safari (see https://www.scottohara.me/blog/2019/01/12/lists-and-safari.html).
rv1971
Comment 10 2021-03-17 09:49:54 PDT
Hi, is there any hope that `content` will be implemented this year? I find it extremely useful for custom numbering of list items and I don't see a good workaround.
Oriol Brufau
Comment 11 2021-03-18 06:29:57 PDT
Implementing 'content' is not trivial, because RenderListMarker can't have children. I don't plan to do it, but I guess the same approach that I used for Chromium legacy would work. I explained the implementation details in https://blogs.igalia.com/obrufau/2020/12/21/css-marker-pseudo-element-in-chromium.html
r12a
Comment 12 2021-11-18 06:27:33 PST
Please consider implementing `text-combine-upright` support for ::marker. Most vertically-set lists with counters need this in Chinese, Japanese, Korean, and Mongolian. It is supported already by Blink and Gecko. See https://www.w3.org/TR/jpan-gap/#issue170_vertical_text
Oriol Brufau
Comment 13 2021-11-19 04:52:57 PST
(In reply to r12a from comment #12) > Please consider implementing `text-combine-upright` support for ::marker. First, it seems WebKit doesn't support `text-combine-upright` at all, only `-webkit-text-combine`. And then, even after turning ::marker into a full-fledged pseudo-element like ::before and ::after, `text-combine-upright`/`-webkit-text-combine` would need bug 208842 in order to work on ::marker.
r12a
Comment 14 2021-11-19 05:43:43 PST
Indeed. All this needs to be made to work. The functionality of text-combine-upright is found everywhere in vertically-set type, and is supported by Blink and Gecko browsers. See also https://bugs.webkit.org/show_bug.cgi?id=150821
Ahmad Saleem
Comment 15 2022-06-14 16:59:21 PDT
I think based on this commit: https://github.com/WebKit/WebKit/commit/59ae7be745ac297f8b0a3048bf0f2983cbdeb233#diff-ccec2155f5f9f46d273b68bd0e54ef4fbb453fb181324847f58bc04874ad3f9f Now many of these properties are supported. For any missing, can we have separate bug? Thanks!
r12a
Comment 16 2022-06-15 03:27:51 PDT
Am i right in thinking that text-combine-upright has not yet been fixed, and that there are no tests for that feature either, or did i miss something?
Ahmad Saleem
Comment 17 2022-06-15 09:16:24 PDT
(In reply to r12a from comment #16) > Am i right in thinking that text-combine-upright has not yet been fixed, and > that there are no tests for that feature either, or did i miss something? Hi r12a, I haven't seen "text-combine-upright" in the commit linked but I can see in following commit from 2021: https://github.com/WebKit/WebKit/commit/5332afa8b4c60b8c7f2a086ecd7ccf3629a8d7ef#diff-ccec2155f5f9f46d273b68bd0e54ef4fbb453fb181324847f58bc04874ad3f9f So I think it is now supported as well. Thanks!
Oriol Brufau
Comment 18 2022-06-16 01:24:38 PDT
(In reply to Ahmad Saleem from comment #15) > I think based on this commit: > > https://github.com/WebKit/WebKit/commit/ > 59ae7be745ac297f8b0a3048bf0f2983cbdeb233#diff- > ccec2155f5f9f46d273b68bd0e54ef4fbb453fb181324847f58bc04874ad3f9f > > Now many of these properties are supported. For any missing, can we have separate bug? Thanks! That's wrong. The commit didn't add real support for these properties, it just stopped ignoring them in the computed style. But they still have no effect. Note that the test passes are in marker-supported-properties.html and marker-supported-properties-in-animation.html, which only check getComputedStyle(). Relevant tests still failing: marker-text-shadow.html, marker-line-height.html, marker-letter-spacing.html, ... Creating separate bugs is pointless, because the underlying problem is the same: RenderListMarker has no actual children. IMO the solution is splitting RenderListMarker into: - RenderOutsideListMarker, which would be an actual block container - RenderInsideListMarker, which would be an actual inline box
Sommer Panage
Comment 19 2022-11-16 13:34:01 PST
At Quip/Slack we're running into an accessibility impact with this bug as well. Namely, when we cannot use ::marker to customize the content of an <li>, then we lose the ability for the screen reader to read the marker out as it reads the item.
Myles C. Maxfield
Comment 20 2023-07-19 09:13:18 PDT
r12a
Comment 21 2023-07-21 06:06:47 PDT
It's also important for Chinese, Japanese, and Mongolian. See https://www.w3.org/TR/clreq-gap/#issue249_vertical_text
Andrew Gioia
Comment 22 2024-03-09 05:24:46 PST
Hi all, is there any update on fully implementing the `::marker` pseudo-element? Specifically adding support for the `content` property? Firefox and Chrome both fully support this. I'd like to +1 content in particular for all the reasons here as well as the fact that it would create a third pseudo-element to accept content for some advanced CSS designs.
Karl Dubost
Comment 23 2024-06-12 21:35:09 PDT
A report has been added to Webcompat about this for the content property. https://github.com/webcompat/web-bugs/issues/137820 ``` .c-link-list-item[data-v-a43016dc]::marker { content: "\2726"; } ``` This is supported by Firefox and Chrome.
Woody Lee
Comment 25 2024-09-12 01:08:01 PDT
Tim Nguyen (:ntim)
Comment 26 2024-09-19 10:44:54 PDT
`isValidMarkerStyleProperty` is the right place for this
Oriol Brufau
Comment 27 2024-09-20 02:42:28 PDT
Just enabling the properties in isValidMarkerStyleProperty won't do anything, see comment 18. Not a good first bug.
Note You need to log in before you can comment on or make changes to this bug.