I am pleased to announce that the new CSS Orientation Test OpenType Fonts open source project was launched on Adobe’s open-source portal, Open@Adobe, today. This open source project consists of two OpenType/CFF fonts that were developed at the request of Koji Ishii (石井宏治), the editor of Unicode’s forthcoming UTR #50 (Unicode Vertical Text Layout). The purpose of these fonts is for developers to be able to more easily test whether glyph orientation in their implementation is correct or not.
Like other special-purpose OpenType fonts that I have built, these fonts were built by leveraging the special-purpose Adobe-Identity-0 ROS.
Both fonts include 2,050 glyphs, specifically CIDs 0 through 2049. CID+0, of course, serves as the mandatory .notdef glyph. CIDs 1 through 2048 in each font represent the horizontal glyphs, and all share the same glyph shape. 2,048 identical horizontal glyphs are included because doing so results in more efficient (smaller) ‘cmap‘ and ‘CFF’ tables when mapping from over one-million code points. CID+2049 represents a single vertical glyph, and the ‘vert‘ (Vertical Alternates) GSUB feature substitutes all 2,048 horizontal glyphs with this single glyph. As stated in the About page: within each OpenType font the vertical advance of the vertical glyph is one-half that of the horizontal advance of the horizontal glyphs, whose purpose is so that testing-automation scripts can more easily detect the glyph orientation and thus whether the ‘vert’ GSUB was applied correctly by measuring the metrics of the rendered text.
One font is named CSS Half-Width Orientation Test (CSSHWOrientationTest.otf), which includes half-width horizontal glyphs and a quarter-width vertical glyph. The other font is named CSS Full-Width Orientation Test (CSSFWOrientationTest.otf), which includes full-width horizontal glyphs and a half-width vertical glyph. The images below show the glyphs and horizontal/vertical metrics of the two functional glyphs in each font:
Of course, and as stated earlier in this article, the glyph shown for CID+1 is repeated for CIDs 2 through 2048.
As usual, any and all feedback is encouraged and welcome.