Bug 249144

Summary: REGRESSION (Safari 16): Hyphens in Ligatures prevent them from being rendered (zero width)
Product: WebKit Reporter: anneangersbach
Component: TextAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: mmaxfield, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Safari 16   
Hardware: All   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=247285
https://bugs.webkit.org/show_bug.cgi?id=201214
https://bugs.webkit.org/show_bug.cgi?id=181883
Attachments:
Description Flags
Ligature Demo with and without hyphens. none

Description anneangersbach 2022-12-12 06:23:08 PST
Created attachment 464011 [details]
Ligature Demo with and without hyphens.

In our webfont we have ligatures with hyphens, and without. In Safari 16.1 through 16.4. (nightly build) there are issues displaying these icons.
When used directly as string inside content they get rendered in 16.4.

However, using them through a data attribute (data-icon="arrow-down", content: attr(data-icon)) does not work in 16.1+

This was tested on local Safaris, nightly webkit with playwright on windows and Browserstack.
Safari 15.6. does not have this issue.

We reproduced with our own font, as well as using the free icomoon icons.

Quick but very weird fixes include the following two options:
a) giving the element in question an invisible outline
b) appending a space at the end of the content string

When looking at the outline in 16.4 nightly build, the ligatures that use hyphens clearly have a width of zero, even though a width property is set on them.

The attachment includes an icomoon font download with demo that was updated to include a very basic setup of using data attributes for icons, both with and without hyphens.
Each Icon should be visible three times, with the 2nd and 3rd item displaying a pink outline.
Comment 1 Radar WebKit Bug Importer 2022-12-16 15:01:38 PST
<rdar://problem/103461736>