GrapheneOS is great and the detailed technical documentation is highly reassuring. But there is one thing I can't figure out...
How can I find a list of system fonts and the supported Unicode range, i.e supplied glyphs, for each one?
For card games, the (black) suit symbols are very important, notably ♣ (U+2663), ◆ (U+25C6), ♥ (U+2665), and ♠ (U+2660) with the white (hollow) versions (U+2667, U+25C7, U+2661, U+2664) being useful as well but not quite as important. But some, perhaps even most, of the GrapheneOS system fonts do not seem to supply glyphs for the suit symbol code points.
Generally for the main text of an e-book, it's a poor idea to force a font on the reader as this is something they should be allowed to choose. However, one might choose serif or sans-serif for technical presentation reasons. For example, a hand (see example below) looks best sans-serif.
♠AQ84 ♥K974 ◆952 ♣A9
And one might use CSS like this to achieve it:
.hand {
font-family: sans-serif;
}
This works fine just about everywhere in PocketBook Reader, including ancient versions of stock Android and 5+ years old Amazon Fire tablets. It works fine in the iBook reader on iPhones. It works fine on Calibre or SumatraPDF on Windows. But it fails on GrapheneOS under PocketBook using PocketBook's default font, leaving blank space where the suit symbol glyph should appear. (It's not clear what PocketBooks' default font is or what it falls back to on GrapheneOS.)
Setting PocketBooks to explicitly use Roboto fails. It seems Roboto only supplies 1037 glyphs and those don't include the suit symbols. Indeed most of PocketBook's fonts fail, including Myriad Pro and Minion Pro. Courier supports the suit glyphs but looks like crap from the 1970. Ryo Gothic PlusN supplies the suit glyphs but doesn't look great.
E-books can force the issue by explicitly supplying a font that contains the suit symbol glyphs and then using that font for the suit symbols. However, size-wise this may not mesh well with the font used for the rest of the text.
BTW, for anyone else going down this road, many renderers will choose the cutesy emoji versions of the suit symbols. These almost always look poor for technical writing. You should supply the U+FE0E text presentation selector immediately after a suit symbol to make your intention clear. (Note: U+FE0F is the corresponding emoji presentation selector).