OpenType 1.8.4 Beta

A minor version update of the OpenType spec has been prepared, OpenType 1.8.4, responding to numerous issues reported for version 1.8.3. The draft content for version 1.8.4 is available for public review for a three-week “beta” period, ending November 4, 2020.

Feedback is invited on proposed changes for version 1.8.4. Feedback should be submitted using the feedback mechanism, with a feedback link at the bottom of each page. All feedback will appear as issues in the MicrosoftDocs/typography-issues GitHub repository, and can be discussed there.

The content for the beta review includes all pages of the spec that have proposed changes. Two variants for each page are provided: one that shows changes in detail (with deletions and insertions formatted separately), and one that shows the final result of those changes.

This update does not introduce any significant new capabilities. Most changes are non-technical in nature. Some technical changes have been made clarifying details in the existing technical specification. A small number of limited technical changes have been made to accommodate anticipated future innovations. These are summarized below.

Overview of changes

The following are technical changes introduced in version 1.8.4:

  • COLR table: In version 1.8.3, it was required that a font implement glyph ID 1 as the .null glyph. This is changed to a note regarding compatibility for earlier Windows versions.

  • DSIG table: Steps for signing or validating a signature have been revised to correctly match long-standing implementations.

  • STAT table:

    • Relaxed the constraint on name IDs used for AxisRecord.axisNameID.
    • Revised constraints and recommendations regarding separate axis value tables having the same information.
  • OpenType Layout tag registry:

    • Features: The 'chws', 'vchw' are added; the 'opbd' feature is deprecated.
    • Language system tags added: 'AKB ', 'BTD ', 'BTK ', 'BTM ', 'BTX ', 'BTZ ', ZHTM
    • Script tags added: Added script tags for new scripts in Unicode 12 and Unicode 13.
  • OpenType Font Variations Common Table Formats:

    • Defined a special meaning of delta-set outer- and inner-level indices 0xFFFF/0xFFFF as an indication of no variation data.
    • Added a constraint on VariationRegionList.regionCount to be less than 32,768 (high bit reserved).

Various structure or field names have been revised to follow general naming conventions used throughout the spec. See the change log (links provided below) for details.

Certain structural changes have been made, removing pages that had no significant content of their own but simply provided a link to other content. If the removed page did contain any relevant content, it has been incorporated into another related page.

Also, the pages for the Windows Glyph List 4.0, that were included as an appendix to the spec, have been removed. These are not directly relevant to a specification of the OpenType file format, and the content has been moved elsewhere on the Microsoft Typography site.

For a complete summary of all changes, see the change log (links provided below).

Index to changed pages

The “delta” pages include change highlighting (deletions, insertions); the “final” pages show the net result of changes (no change highlighting).

General pages (intro, overviews, etc.)

Chapter Delta page Final page Related issues
OpenType® Specification index index 219, 561, 627
OpenType Overview overview overview 219, 406, 485, 486, 487, 488, 489, 490, 491, 492, 561
OpenType Layout Overview ttochap1 ttochap1 462, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 506
OT Font Variations Overview otvaroverview otvaroverview 313, 517, 572
OTL Common Table Formats chapter2 chapter2 171, 184, 379, 380, 406, 407, 439, 442, 480, 519, 520, 550, 562, 640
OT Font Variations Common Table Formats otvarcommonformats otvarcommonformats 449, 481, 560, 569, 637
OpenType Font File otff otff 77, 406, 417, 450, 455, 507, 508, 509, 510, 511, 512, 513, 514, 570, 571, 572, 573, 575

Table pages

Chapter Delta page Final page Related issues
'avar' table avar avar 313, 515, 516, 517
BASE table base base 551
CBDT table cbdt cbdt 352, 450
CBLC table cblc cblc 352, 450
'CFF ' table cff cff
CFF2 table cff2 cff2 244
'cmap' table cmap cmap 77, 269, 544, 555, 573, 575, 599, 600, 604, 612, 615, 617
COLR table colr colr 346, 543
CPAL table cpal cpal 305, 306, 556, 581
DSIG table dsig dsig 406, 455, 554, 572, 593
EBDT table ebdt ebdt 352, 450
EBLC table eblc eblc 352, 450, 549
EBSC table ebsc ebsc 450
'fvar' table fvar fvar 613
'gasp' table gasp gasp 619
GDEF table gdef gdef 442, 480
'glyf' table glyf glyf 177, 598, 607
GPOS table gpos gpos 20, 178, 200, 394, 395, 397, 407, 408, 442, 445, 519, 520, 532, 552, 562
GSUB table gsub gsub 20, 326, 330, 407, 408, 519, 520
'gvar' table gvar gvar
'hdmx' table hdmx hdmx 189, 621
'head' table head head 175, 308, 572
'hhea' table hhea hhea 308, 412
'hmtx' table hmtx hmtx 174, 308
HVAR table hvar hvar 406, 598
JSTF table jstf jstf 548
'loca' table loca loca 241
'kern' table kern kern 547
MATH table math math 285, 442, 456, 562
'maxp' table maxp maxp 509
meta table meta meta 156, 253, 620
'name' table name name 413, 414, 446, 546, 559, 615
OS/2 table os2 os2 392
PCLT table pclt pclt 540, 618
'post' table post post 344, 400, 406, 509
'sbix' table sbix sbix 191
STAT table stat stat 403, 433, 466, 473, 541, 576, 592, 624
'SVG ' table svg svg 525, 526, 527, 528, 553, 646
'vdmx' table vdmx vdmx 545
'vhea' table vhea vhea 339, 340, 509, 529
'vmtx' table vmtx vmtx 406
VORG table vorg vorg 406, 530
VVAR table vvar vvar 598

Registry pages

Chapter Delta page Final page Related issues
OpenType Layout Tag Registry ttoreg ttoreg
Baseline Tags baselinetags baselinetags 283
Registered Features featurelist featurelist 535
Registered Features: Definitions and Implementations (a – e) features_ae features_ae 347, 415, 536, 550, 557, 601, 616, 622, 623
Registered Features: Definitions and Implementations (f – j) features_fj features_fj 312, 347, 557, 601, 623
Registered Features: Definitions and Implementations (k – o) features_ko features_ko 286, 312, 347, 415, 537, 557, 578, 585, 587, 601, 623
Registered Features: Definitions and Implementations (p – t) features_pt features_pt 311, 347, 357, 439, 442, 480, 531, 550, 557, 578, 585, 587, 601, 616, 623
Registered Features: Definitions and Implementations (u – z) features_uz features_uz 347, 538, 557, 585, 587, 601, 623
Feature Tags featuretags featuretags 256, 534, 601
Language System Tags languagetags languagetags 204, 274, 477, 478, 533, 579, 584, 588, 590, 596, 609, 644, 645, 647, 648
Script Tags scripttags scripttags 363, 410
Design-Variation Axis Tag: 'ital' dvaraxistag_ital dvaraxistag_ital
Design-Variation Axis Tag: 'opsz' dvaraxistag_opsz dvaraxistag_opsz 310
Design-Variation Axis Tag: 'slnt' dvaraxistag_slnt dvaraxistag_slnt
Design-Variation Axis Tag: 'wdth' dvaraxistag_wdth dvaraxistag_wdth
Design-Variation Axis Tag: 'wght' dvaraxistag_wght dvaraxistag_wght

Appendix pages

Chapter Delta page Final page Related issues
Change Log changes changes
Compact Font Format specification cffspec
Type 2 Charstring format charstr2
Recommendations for OpenType Fonts recom recom 269, 400, 406, 443, 511, 572, 599, 604, 605, 608, 613
Instructing TrueType Glyphs tt_instructing_glyphs tt_instructing_glyphs
TrueType Instruction Set tt_instructions tt_instructions 257, 629, 630, 631, 632, 633, 634, 635, 636
TrueType Fundamentals ttch01 ttch01 245, 406, 563, 627
The TrueType instruction set ttinst 627
WGL4.0 Character Set wgl4 219, 561
WGL4 character set U+0020 to U+00BB wgl4b 219, 561
WGL4 character set U+00BC to U+017E wgl4c 219, 561
WGL4 character set U+017F to U+1EF3 wgl4d 219, 561
WGL4 character set U+2013 to U+FB02 wgl4e 219, 561
The euro currency symbol euro 219, 561