Calibri ligatures are incorrect in RTL

Won’t fix Issue #14573046


Raimo M.
Nov 8, 2017
This issue is public.
Found in
  • Microsoft Edge
  • Internet Explorer
Reported by 1 person

Sign in to watch or report this issue.

Steps to reproduce

When I use unicode-bidi:bidi-override and direction:rtl in my CSS style (to hide email from spammers) with font-family:Calibri, Edge (and IE) turns i and t the other way around. When I write "ti", it should show “it” in the browser, but it shows "ti". It does this only with Calibri font.


0 attachments

    Comments and activity

    • Microsoft Edge Team

      Changed Assigned To to “James M.”

      Changed Assigned To to “”

      Changed Assigned To to “travil”

      Changed Assigned To from “travil” to “Francois R.”

      Changed Status to “Confirmed”

      Changed Title from “Inter Explorer and Edge bug with Calibri font” to “Calibri ligatures are incorrect in RTL”

      Changed Status from “Confirmed”

      Changed Assigned To to “Worachai C.”

      Changed Assigned To from “Worachai C.” to “Dwayne R.”

      Changed Status to “Confirmed”

      Changed Status from “Confirmed” to “Won’t fix”

    • This also happens in simple Notepad using the bidi formatting character U+202E RIGHT-TO-LEFT OVERRIDE [RLO], which means it’s really the behavior of the lower level glyph shaping in Uniscribe and DirectWrite rather than Edge. What you see is due to the “ti” ligature in the Calibri font’s glyph substitution, which is an atomic glyph that cannot be mirrored (combining glyphs 410 + 349 -> 415
      ). Some other fonts also have this less common “ti” ligature too, but many more fonts have an “fi” ligature. The problem is that ligatures do not contain information about which reading direction they are supposed to be applied, as they assume that the glyphs are in backing-store logical order, consistent with the expected directionality of that script. Latin is LTR, and coercing it to RTL is unnatural. There are some heuristics that could be applied depending on the input script (which Harfbuzz appears to do), but they would be incomplete, as the heuristics wouldn’t handle neutral characters which can be found amidst any script, such as kerning between opening/closing parentheses and periods. Ultimately the best approach is to add the needed information into a future version of the OpenType specification so that lookups can state their intended direction. Meanwhile, ligatures can be disabled by just adding CSS: font-feature-settings:’liga’ off.

    You need to sign in to your Microsoft account to add a comment.

    Sign in