My findings on what makes a good subtitling font, posted mostly so that Google’s search results have a chance of turning up something more useful on the subject:
- A font with consistent stroke thickness and no small serifs. This usually points to a sans serif font, but there are some humanist sans serif fonts with modulated strokes that should be avoided, as well as slab serifs that could be considered. The reasons for this are that small details tend to disappear against a busy, moving background, and that by far the most common and space-efficient form of contrast for subtitles is the black outline, which tends to appear unattractively globbed up around thinner elements.
- A font with open apertures, like some of those humanist fonts linked above. Big openings on the lowercase E and A are easier to see. This also plays into Arabic and other scripts.
- A generic, unassuming font. Not necessarily something in the Helvetica family, but certainly something leaning in that direction, like Myriad. The point is to watch the film, not to admire or even excessively notice your text. This rules out a lot of your classic slab serifs, which are about as subtle as a drunk guy yelling in an alley, but modern slab serifs can be quite usable.
- A font where letters that can be similar-looking are easy to distinguish. Capital “I” and lowercase “L” (which usually involves adornments in violation of Rule 1, but oh well), and even a lowercase “A” that doesn’t look like a lowercase “O”.
- A weight somewhere between medium and bold, and no more condensed than semicondensed.
Other considerations are:
- Contrast method. I prefer the common black outline with drop shadow. I’ve seen people use just the outline or just a shadow and that can work well too. No contrast at all is a bold and probably bad choice, or more likely the result of simply not knowing any better. A semitransparent block-style background dramatically improves readability, but at the expense of annoyingly obscuring the underlying image. As such, I have reserved its use exclusively for SDH subtitles, but I’ve seen it recommended for CJK subtitles as well.
- Subtitle color. My opinion is that, unless you’re doing per-speaker color cues, subtitles should always be white. While yellow could very well provide more contrast, it falls far afoul of the “generic, unassuming” rule IMO. There are other ways to provide adequate contrast. However, pure 0xFFFFFF white against pure black is so much contrast that it can be hard to read. Consider a very bright gray that’s more-or-less indistinguishable from white – I find it easier on the eyes in dark scenes.
So anyway, that’s my brain dump, with for me the additional requirement that the font needs to be consistent between scripts in many, many languages, and that landed me on Noto Sans. Also, I’m the guy who kept using Arial for something like five years, so don’t take my word as gospel for any of this. There are lots of things I still don’t know about design and typefaces – I just feel a little less ignorant than I was a few months ago and wanted to share my findings.
Were there compromises? Absolutely. Noto’s capital “J” drops low, which is a little idiosyncratic for my taste. The italic forms of both the lowercase “A” and lowercase “F” seem less than ideal, but might grow on me. I had to go with a calligraphic style for Arabic and Thai, just because those languages traditionally don’t use sans serif for subtitles. And I had to devise a fairly complicated font fallback logic so that we wouldn’t see these lovely inconsistencies in Noto*. But, by and large, after some time and effort, it works really well. Certainly better than what we’re currently using IMO.
* I should add that Google is very much aware of these inconsistencies and provides guidelines for how to use Noto on their website which effectively resolves the issue. The problem is that these guidelines are geared toward CSS/web solutions, and I needed to script the fallback logic for Pango markup.