Closed Bug 1918992 Opened 2 months ago Closed 10 days ago

nk2028.shn.hk/tshet-uinh-autoderiver - The line breaks do not render, causing all content within the <rt> tags to appear on a single line

Categories

(Web Compatibility :: Site Reports, defect, P3)

Firefox 132
Desktop
Windows 10

Tracking

(firefox130 affected, firefox131 affected, firefox132 affected)

RESOLVED INVALID
Tracking Status
firefox130 --- affected
firefox131 --- affected
firefox132 --- affected

People

(Reporter: ctanase, Unassigned)

References

()

Details

(Keywords: webcompat:needs-diagnosis, webcompat:site-report, Whiteboard: [webcompat-source:web-bugs])

User Story

platform:windows,mac,linux,android
impact:content-missing
configuration:general
affects:all
branch:release
diagnosis-team:layout

Attachments

(3 files)

Environment:
Operating system: Windows 10
Firefox version: Firefox 131.0/130/132

Steps to reproduce:

  1. Go to https://codepen.io/pen/ or any code editor.
  2. Copy and paste this code into the editor<ruby>盘<rp>(</rp><rt lang="och-Latn-fonipa">ban<span hidden=""> / </span><br>ban<span hidden=""> / </span><br>buan<span hidden=""> / </span><br>buan<span hidden=""> / </span><br>ban</rt><rp>)</rp></ruby>
  3. Render the code.
  4. Observe the results.

Expected Behavior:
The text within the <rt> elements should render each line separated by line breaks, resulting in correctly formatted phonetic annotations.

Actual Behavior:
The line breaks do not render, causing all content within the <rt> tags to appear on a single line

Notes:

  • Reproduces regardless of the status of ETP
  • Reproduces in Firefox Nightly, and Firefox Release
  • Does not reproduce in Chrome

Created from https://github.com/webcompat/web-bugs/issues/141607

Summary: https://nk2028.shn.hk/tshet-uinh-autoderiver/ - The line breaks do not render, causing all content within the <rt> tags to appear on a single line → nk2028.shn.hk/tshet-uinh-autoderiver - The line breaks do not render, causing all content within the <rt> tags to appear on a single line
Version: unspecified → Firefox 132
Attached image image.png
Severity: -- → S2
User Story: (updated)
Priority: -- → P3
Attached file testcase 1

For convenience, here's a simple HTML testcase with the content from comment 0 (which reproduces the behavior-difference just fine -- no need for codepen etc.)

In Firefox, there's no space between "a b" -- the br gets ignored, basically. In Chrome, there is a space there (the br gets morphed into a space for some reason). In WebKit, there's an actual linebreak.

The spec text here says:

Suppress line breaks: Convert all forced line breaks inside ruby annotations (regardless of white-space value) as defined for collapsible segment breaks in CSS Text Level 3 § 4.1.2.

https://drafts.csswg.org/css-ruby/#anon-gen-unbreak

That links to https://www.w3.org/TR/css-text-3/#line-break-transform which basically says browsers can do whatever they want:

First, any collapsible segment break immediately following another collapsible segment break is removed.

(For our purposes here, that means <br><br><br> is collapsed down to <br>.)

Then any remaining segment break is either transformed into a space (U+0020) or removed depending on the context before and after the break.
The rules for this operation are UA-defined in this level.

This leaves room for possibly converting to a space or entirely removing it, in a UA-defined way (i.e. up to the browser), "depending on the context".

So: what Chrome is doing and what we're doing are both allowed by the spec. I'm not familiar enough with ruby to know what contextual clues might make removal vs. converting-to-a-space a better outcome.

:xidorn, do you happen to know/recall whether there's any reason to favor preserving vs. collapsing the linebreak in the ruby annotation here?

Flags: needinfo?(xidorn+moz)

(In reply to Daniel Holbert [:dholbert] from comment #5)

:xidorn, do you happen to know/recall whether there's any reason to favor preserving vs. collapsing the linebreak in the ruby annotation here?

Not sure exactly what your question is.

As noted in the spec text, the main reason to suppress line breaks is to avoid define how to make multi-line annotation work, as it can be tricky to define and implement. And also with multi-level annotation supported with <rtc>, there is no real use case for multi-line annotation.

If you are talking about whether to transform them into space, I think the context it depends on is mainly whether there are CJ characters before or after. You can see the EXAMPLE immediately after that section to understand the intention there. Based on that intention, I believe we should convert it to space. The reason we don't currently do so is likely just because I overlooked this part and just do the basic suppression rather than any proper conversion.

Flags: needinfo?(xidorn+moz)

(In reply to Xidorn Quan [:xidorn] UTC+10 from comment #6)

If you are talking about whether to transform them into space, I think the context it depends on is mainly whether there are CJ characters before or after. You can see the EXAMPLE immediately after that section to understand the intention there. Based on that intention, I believe we should convert it to space. The reason we don't currently do so is likely just because I overlooked this part and just do the basic suppression rather than any proper conversion.

Thanks! That answers my question. (I was mostly wondering whether collapsing-linebreaks-away entirely (rather than transforming-to-space-characters) was an intentional/preferred outcome vs. just-how-things-worked-out).

I'll file a platform bug on considering matching Chrome on this. Thanks again!

Having said that: looking a bit closer at comment 0 and github and the chromium version of this bug report: it looks like the reporter wasn't asking for the linebreaks to render as spaces, but rather was asking them to render as linebreaks.

From that perspective, this is INVALID; the spec clearly says that linebreaks in ruby annotations should be suppressed (and Chrome/Firefox both do suppress them).

Hence, closing; but I will still spin off a followup to consider converting those linebreaks to spaces.

Status: NEW → RESOLVED
Closed: 10 days ago
Resolution: --- → INVALID
See Also: → 1928428

(filed bug 1928428 on potentially converting linebreaks to spaces)

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: