Closed Bug 1325807 Opened 7 years ago Closed 5 months ago

Ideographic space (U+3000) should provide a soft wrap opportunity even with "word-break: keep-all"

Categories

(Core :: Layout: Text and Fonts, defect, P3)

defect

Tracking

()

RESOLVED DUPLICATE of bug 1719535
Tracking Status
firefox53 --- affected

People

(Reporter: xidorn, Unassigned)

References

Details

Attachments

(4 files)

Attached file testcase
In the attached testcase, ideographic space (U+3000) is used to separate words, and "word-break: keep-all" is applied.

In this case, there should be a soft wrap opportunity after each ideographic space here.

In Blink, the text is broken after ideographic spaces, while WebKit behaves the same as Gecko. But I think it should provide wrap opportunity here, since it is a whitespace anyway.

I guess this behavior was changed by bug 765166.
It seems Blink doesn't break line between ideographic space. So basically Blink reverts the WebKit's behavior to what Gecko had before bug 765166 :/
Attached file testcase 2
Oh, Blink also provide soft wrap opportunity for punctunations, which also makes sense to me...
Attached image Screenshot of Edge
Edge behaves very odd...
Hmm, they test keep-all with punctuation. So, it must be *their* expected behavior.

Issue: https://bugs.chromium.org/p/chromium/issues/detail?id=141792
Review: https://codereview.chromium.org/1094863007

According to the patch and comment 11, they ban some break opportunities. Ishii-san said "what the spec[1] says is not that complicated; just disable soft wrap opportunities between "typographic letter units" (which is L*/N* grapheme clusters)".

Example 6 of the spec is what this case is?
https://www.w3.org/TR/css-text-3/#word-break
(In reply to Xidorn Quan [:xidorn] (UTC+10) from comment #1)
> It seems Blink doesn't break line between ideographic space. So basically
> Blink reverts the WebKit's behavior to what Gecko had before bug 765166 :/

Ah, I mean, *WebKit* doesn't break line between ideographic space. Blink does so.
(In reply to Masayuki Nakano [:masayuki] (Mozilla Japan) from comment #4)
> Created attachment 8821840 [details]
> Screenshot of Chromium's testcase
> 
> Hmm, they test keep-all with punctuation. So, it must be *their* expected
> behavior.

I think their expected behavior makes sense, although I have one concern that some punctuation in languages like English may not be a word separator, e.g. "e.g.", or "U.S.A". So I guess half-width punctuations probably should not provide break opportunity.

> According to the patch and comment 11, they ban some break opportunities.
> Ishii-san said "what the spec[1] says is not that complicated; just disable
> soft wrap opportunities between "typographic letter units" (which is L*/N*
> grapheme clusters)".

The spec is quite loose on this. It forces several rules, and impls are free to do whatever they want otherwise.
(In reply to Xidorn Quan [:xidorn] (UTC+10) from comment #6)
> although I have one concern
> that some punctuation in languages like English may not be a word separator,
> e.g. "e.g.", or "U.S.A". So I guess half-width punctuations probably should
> not provide break opportunity.

That's what I was troubled when I worked on breaking lines in URL. (E.g., smilies too)

At that time, we took CONSERVATIVE_BREAK_RANGE approach:
https://dxr.mozilla.org/mozilla-central/rev/1156db49e976173fc3cf90d2126456fd1e2bae4b/intl/lwbrk/nsJISx4051LineBreaker.cpp#624-632
Priority: -- → P3
Severity: normal → S3

Legacy line segmenter breaks before and after U+0x3000 now. But ICU4X segmenter is expected behavior.

If I am wrong, please reopen this.

Status: NEW → RESOLVED
Closed: 5 months ago
Duplicate of bug: 1719535
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: