As the author states, sizing of fonts and line spacing is currently inconsistent across OS's, inconsistent across fonts, and inconsistent with other UI elements.
It's madness. There's no good reason for any of it except inertia and lack of forethought.
The author's proposal to specify cap height is really the only reasonable solution I think there is, though I'd modify it slightly:
- When defining cap height, be clear what the logical obvious equivalent in other scripts, e.g. Chinese logogram height
- Specify cap height in whatever unit other UI elements are specified in (the author refers to pixels, but that's arbitrary)
- Then line height can also be controlled predictably and exactly in whatever unit UI elements are specified in
End result: zero inconsistencies. Text shows up exactly where it's meant to no matter what.
How do we get there? Browsers should adopt it first, with something like a CSS "font-cap-size" property that can be used instead of (and override) "font-size", as well as something like "cap-line-height" overriding "line-height". (And for units, recommend using "px", or "rem" ultimately based on a root "px", and never touching "pt".)
Then OSes can migrate similarly with new function calls/parameters based on cap height, and also try to phase out "pt" sizing in preference of the logical "px" sizing used in the rest of interfaces.
I really think this is the way. I really hope browsers and the W3C can consider something like this. It's decades overdue.