Skip to content

[css-pseudo][css-writing-modes] text-orientation and ::marker #9788

Closed

Description

@frivoal

text-orientation should have an effect on ::marker, so that, for instance, you can have upright numerals in a numbered list's markers, and otherwise mixed orientation text.

ol {
  writing-mode: vertical-rl;
  text-orientation: mixed; /*the default*/
}
ol li::marker {
  text-orientation: upright;
}

Here's a test case: http://software.hixie.ch/utilities/js/live-dom-viewer/?saved=12266

Currently, all browsers fail it. I think that's a browser bug, as even though text-orientation isn't part of the set of properties that apply directly to the ::marker pseudo, it should inherit into the text inside the marker and apply there. Do we agree, or is there something somewhere in the spec that actually makes it the expected behavior?

Activity

  1. Loirooriol commented on Jan 13, 2024

    @Loirooriol
    Contributor

    it should inherit into the text inside the marker and apply there

    text-orientation is defined to apply to "all elements except table row groups, rows, column groups, and columns". Not to text.

    Maybe that should change, but with the current specs, browsers seem compliant here.

  2. frivoal commented on Jan 14, 2024

    @frivoal
    CollaboratorAuthor

    Fair point.

    I guess text-orientation has two (families of) effects:

    • change how text is laid out
    • change text-related units

    It seems logical for the second one to be anchored on actual elements. The first one would make more sense to me to apply to text, so a possible fix for this issue would be to change the Applies To line from "all elements except[…]" to "text, and all elements except […]".

    From a compat point of view, that ought to be largely OK:

    • on ::marker their may be sites where starting to apply it would be a change, but most likely it would be a desired change (people wouldn't specifically style markers if they didn't want an effect on markers).
    • the on content of tables, it won't make a difference, because while table row groups, rows, column groups, and columns are excluded, table cells are not, and so we're already inheriting and applying it there, so there would not be a difference in behavior.

    If we don't want to do that, I would argue that would ought to include it in the properties explicitly allowed on ::marker.

  3. Loirooriol commented on Jan 14, 2024

    @Loirooriol
    Contributor

    This is upright on Gecko, Blink and WebKit:

    <div style="writing-mode: vertical-rl">
      <div style="display: contents; text-orientation: upright">AB</div>
    </div>

    So I guess it's implemented as applying to text indeed.

  4. Loirooriol commented on Jan 15, 2024

    @Loirooriol
    Contributor

    In fact since inline elements/boxes are not excluded, and it's inherited, then it needs to apply to text as per #5303 (comment).

  5. frivoal commented on Jan 22, 2024

    @frivoal
    CollaboratorAuthor

    So, it would seem that this needs no normative spec correction. We'll need at least some tests, but should we add an informative statement? Maybe include one more bullet point in example 4 highlighting the conclusion reached in #5303 (comment) that “inheritable properties that apply to inlines also apply to text”.

  6. self-assigned this
    on Jan 22, 2024
  7. Loirooriol commented on Jan 22, 2024

    @Loirooriol
    Contributor

    I think #5761 missed text-orientation and it needs to be changed to also apply to text to obey the resolution from #5303.

  8. Theshrink commented on Mar 4, 2024

    @Theshrink
  9. fantasai commented on Mar 24, 2025

    @fantasai
    Collaborator

    Edits made. @Loirooriol Please confirm that the issue is resolved, and close the issue if so. :) Thanks~

  10. 5 remaining items

  11. frivoal commented on Mar 25, 2025

    @frivoal
    CollaboratorAuthor

    Spec-wise, looks good to me. Tests added by web-platform-tests/wpt#51571

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions