5 ms·
The real problem is that people get used to how their operating system renders fonts, and different operating systems render fonts very differently. The differe
by rossy 9y ago
The real problem is that people get used to how their operating system renders fonts, and different operating systems render fonts very differently. The difference between how macOS and Windows render fonts is almost philosophical. macOS does not hint fonts at all in an attempt to preserve a font's character at small sizes, but Windows applies aggressive hinting (and no anti-aliasing) in the Y-direction to make fonts sharper and more readable, even if it totally changes the shape of the letters.
On Windows, at least, fonts can also differ between monitors (even on the same computer.) The built-in ClearType tuner tool lets the user adjust the font rendering gamma for each monitor individually. It would be a shame if this didn't have an effect in the browser, where users probably do most of their reading these days.
If you made your own simple from-scratch font rendering library that rasterized glyphs to the same array of pixels on every operating system, regardless of user settings, I guarantee your users would be upset. When you render a lowercase 'e' to a 6x6 pixel grid, any slight difference in rendering makes a huge difference to the character of the letter, and it's the sort of thing that contributes to the "uncanny-valley" feeling that non-native apps have. This is why Pango and Firefox go through so much effort to use the native renderers on each platform and why they may seem complicated to an outsider.
- jonnycomputer 9y agoI think most people don't really care that much how their fonts are rendered, or would even notice a change. (And no, I don't have data to back that up) edit: The emphasis here is on "most". In a world where an OS will have many millions of users, at least more than a few are going to care a lot about things like the differences between font renderers; programmers and graphic designers are no doubt among them. But the typical user? Without real data to back it up, count me as skeptical.
- rossy 9y agoFor an example of how much people care, look up all the outrage that happened when Chrome switched between two very similar Windows font renderers (GDI and DirectWrite.) Example: https://www.change.org/p/google-inc-bring-sharp-fonts-back-in-google-chrome-disable-directwrite https://www.change.org/p/google-inc-bring-sharp-fonts-back-i... If anecdotal evidence counts, I've heard lots complaints about font rendering, even from people in real life and non-technical people. (I like the fonts on X. Why does Y look so bad? Why can't it just look like it does in Word on Windows?) It turns out that if people spend most of their lives/jobs looking at text that appears a certain way, they will get accustomed to it. If these people are using LoDPI monitors where they can perceive each individual pixel, you'd better hope your custom font renderer replicates your users' favourite renderer down to the exact pixel layout of each glyph.
- pcwalton 9y agoI don't think you need to be accurate to the pixel level, unless you're targeting bilevel (black and white) rendering. (This is empirical: nobody who I've tested my custom font renderer with has been able to tell the difference between it and the OS renderer, once the same features are enabled.) But you do need to do everything that the OS does: gamma correction, TrueType hinting, subpixel AA, autohinting, stem darkening…
- rossy 9y agoYeah, that's fair. I think there's a "Windows XP" preset for Infinality-patched FreeType and it gets pretty close to what Windows does. Its rendering of 9pt Segoe UI is near identical to Windows', except for slightly softer font smoothing, but this doesn't seem to be annoying for Windows users (it's probably less than the difference between GDI and DirectWrite.) I heard of this because a friend switched from Windows to GNOME 3 a little while ago and told me about the Infinality preset. He seemed to be very happy with it.
- lucideer 9y agoYou're getting a lot of downvotes, but while I think you're mistaken (I do believe most people care), it's an easy fact to miss because most people don't know or notice font rendering. Which is where caring comes in - people tend to care about change (and not particularly like it). Nobody cares about how things are done as long as they're consistent, but once it changes in a way that's visibly perceptible to most mainstream users (and it actually is, you might be surprised), then they do care, and they tend not to like change.
- rkangel 9y agoAt University I used to do lighting design for theatre (still do occasionally). I put lighting design in the same category as good typography, and the difference between 100ms and 300ms page load time. After most shows, 90% of the audience couldn't tell you anything about the lighting, but good lighting absolutely lends to the overall experience. The right use of colours and angles in a scene can really add to both the immersion (in the sense that you believe in the setting) and the mood (in the sense that it adds to the tone of the scene). We have data on fast page load times - we know that it makes people more likely to use certain kinds of site. They won't know why though. I am pretty sure that the same is true with font rendering, kerning etc.. Done right it makes for a pleasant reading experience, done wrong (or inconsistently) an unpleasant one, and most people wouldn't be able to say why.
- jonnycomputer 9y agoI find it odd that I would be down-voted so many times, merely for expressing skepticism about the proposition that the typical user is sensitive to the differences in font rendering between platforms, so much so that they would complain loudly and in mass if it were to change. Obviously some people care about it. But most? Show me the data.
- pcwalton 9y agomacOS does have an autohinter, but it only makes very slight changes. More important is the stem darkening (which Apple calls font dilation), which distorts outlines to make fonts bolder at small sizes. Windows actually has two font rasterizers: GDI, which lived in the kernel prior to Windows 10, and DirectWrite. GDI does no vertical antialiasing, but DirectWrite does. Both do vertical hinting, but only GDI does horizontal hinting. (With ClearType on, GDI applies a hacky subset of horizontal hints--Beat Stamm has documentation on it on his Web site.) FreeType, naturally, can do all of the above (except the GDI hacks), depending on how you configure it.