Why is Qt5 not displaying Braille?

Posted on March 23, 2015
Tags: Braille, Qt, Unicode

While evaluating the cross-platform accessibility of Qt5, I stumbled across this deficiency:

#include <QApplication>
#include <QTextEdit>

int main(int argv, char **args)
{
  QApplication app(argv, args);

  QTextEdit textEdit;
  textEdit.setText(u8"\u28FF");
  textEdit.show();

  return app.exec();
}

(compile with -std=c++11).

On my system, this “application” does not show the correct glyph always. Sometimes, it renders a a white square with black border, i.e., the symbol for unknown glyph. However, if I invoke the same executable several times, sometimes, it renders the glyph correctly.

In other words: The glyph choosing mechansim is apparently non-deterministic!!!

UPDATE: Sune Vuorela figured out that I need to set QT_HARFBUZZ=old in the environment for this bug to go away. Apparently, harfbuzz-ng from Qt 5.3 is buggy.