davidhurka added a comment.
After reading some Wikipedia, I can say: - Checkmarks use luma (NTSC) - Your approach uses luma (sRGB) - QColor::lightness() uses lightness (HSL-bi-hexcone) QColor::lightness() would not solve the problem, it would put white #ffffff text on yellow #00ffff background. Qt had to compute luma, but luma() would need to know the color space of the output device. I can imagine that Qt developers decided to use value() as a better tradeoff than assuming sRGB or using the primary display’s color space. REPOSITORY R223 Okular REVISION DETAIL https://phabricator.kde.org/D19542 To: yurchor, #okular Cc: davidhurka, aacid, okular-devel, tfella, ngraham, darcyshen