Re: Zero-width joiner won't join

From: Asmus Freytag <>
Date: Mon, 05 Mar 2012 14:49:06 -0800

On 3/5/2012 10:25 AM, Andreas Prilop wrote:
> I think the zero-width joiner (ZWJ, U+200D) should join
> regardless of typeface. But Internet Explorer 8 won't join
> if the ZWJ is taken from another font than surrounding text.

Normally, there's a bit of a rationale for limiting the action of the
ZWJ to the same font run, because the result of applying the joiner is a
glyph-level change.

Now you've found what looks like the perfect "edge case":

> In MS Windows, the font Mangal contains the zero-width joiner
> but not Arabic letters. When I specify "font-family: Mangal"
> then Internet Explorer 8 takes the ZWJ from Mangal but
> Arabic letters from another font and the result is non-joining.

In this case, the results would clearly be better if the font assignment
for the format character (ZWJ) were to be ignored. If that was done, the
two font runs surrounding it could have been merged.

However, the problem is made worse by the fact that the style run and
the font run do not actually align. This is because fo the invisible
substitution of fonts when the style run specifies a font not containing
the glyphs needed to show the characters.

In this case, when determining runs for font substitution, a "greedy"
algorithm would have helped, but normally, the minute the font specified
in the style run can handle any character you do want to stop the

My question would be this: do you know of any browser that can handle
your test case?

If not, I'd be inclined to say "tough luck", because font substitution
is something that's done on a "best effort". You simply can't expect
everything to work out as perfectly as if you had provided correct font
bindings explicitly.

If every other browser substitutes the fonts and gets the ZWJ to act
correctly, then it's perhaps something that should be considered "best
practice" and could be noted in the Standard.

In any case, it might be worth filing as a bug with your favorite vendor...

Received on Mon Mar 05 2012 - 16:51:32 CST

This archive was generated by hypermail 2.2.0 : Mon Mar 05 2012 - 16:51:33 CST