In reading the documentation for vertical metrics, I am seeing something of a gray zone in regards to CJK versus Latin.
The Latin documentation states:
TypoAscender and hheaAscender are set to height of tallest uppercase glyph with single accent (probably  or Å)
TypoDescender and hheaDescender set to lowest a-z letter (p, j, q)
This makes sense as it is intended to avoid undesirable clipping of the letters under certain conditions.
However, in the Spec it only sets universal vertical metrics requirements:
| Attrib |
Value |
Example using 1000upm font |
| OS/2.sTypoAscender |
0.88 * font upm |
880 |
| OS/2.sTypoDescender |
-0.12 * font upm |
-120 |
| OS/2.sTypoLineGap |
0 |
0 |
| hhea.ascender |
Set to look comfortable (~1.16 * upm) |
1160 |
| hhea.descender |
Set to look comfortable (~0.288 * upm) |
-288 |
| hhea.lineGap |
0 |
0 |
| OS/2.usWinAscent |
Same as hhea.ascent |
1160 |
| OS/2.usWinDescent |
abs(value) of hhea.descent |
288 |
| OS/2.fsSelection bit 7 |
Do not set |
|
So my question is this, if a CJK contains Latin, should the Å and descending lowercase (p, j, q, y) fit within the TypoAscender and TypoDescender as to avoid any risk of clipping? (Or perhaps the WinAscent / WinDescent?)
I observe that Noto CJK extends both above and below the BBox:

In reading the documentation for vertical metrics, I am seeing something of a gray zone in regards to CJK versus Latin.
The Latin documentation states:
This makes sense as it is intended to avoid undesirable clipping of the letters under certain conditions.
However, in the Spec it only sets universal vertical metrics requirements:
So my question is this, if a CJK contains Latin, should the Å and descending lowercase (p, j, q, y) fit within the TypoAscender and TypoDescender as to avoid any risk of clipping? (Or perhaps the WinAscent / WinDescent?)
I observe that Noto CJK extends both above and below the BBox:
