Microsoft HomeProductsSearchSupportShopWrite Us Microsoft Home

Microsoft Typography | Developer information | Specifications | OpenType Layout tag registry


OpenType Layout tag registry

The Tag Registry defines the OpenType Layout tags that Microsoft supports. OpenType Layout tags are 4-byte character strings that identify the scripts, language systems, baselines, and features in a OpenType Layout font. The registry establishes conventions for naming and using these tags. Registered tags have a specific meaning and convey precise information to developers and text-processing clients of OpenType Layout. Microsoft encourages font developers to use registered tags to assure compatibility and ease of use across fonts, applications, and operating systems.

This chapter contains sample sets of commonly used tags for scripts, language systems, and baselines. Microsoft will supply a list of additional tags upon request.

In addition, the Feature Tag section defines all the features and feature tags Microsoft has developed and registered to date. This section includes a description of the function of each feature.

Microsoft expects the list of registered tags and features to expand over time. The most recent version of the registry will be available on Microsoft's ftp and World Wide Web sites.

Microsoft welcomes nominations for new and useful features to register. For more information about feature and feature tag registration, see the Feature Tag section.


Script tags

Script tags identify the scripts represented in a OpenType Layout font. Script tags are defined by Microsoft Typography and correspond to the contiguous character code ranges in Unicode.

All tags are 4-byte character strings composed of a limited set of ASCII characters in the 0x20-0x7E range. Each script tag consists of four lowercase letters.

Some of most commonly used script tags are shown below. A full list of script tags is available from Microsoft.


Script Tag Script
"arab" Arabic
"cyrl" Cyrillic
"grek" Greek
"hani" Han Ideographic
"hebr" Hebrew
"kana" Kana (Hiragana & Katakana)
"hang" Korean Hangeul
"latn" Latin
"thai" Thai


Language system tags

Language system tags identify the language systems supported in a OpenType Layout font. Microsoft uses the standard language system tag names defined in the Windows Natural Language Support API document (called NLSAPI.doc), in Appendix A: Locales and Language ID's. This document is available on the Microsoft Developers Network CD released by Microsoft quarterly, or it can be acquired directly from Microsoft Typography.

All tags are 4-byte character strings composed of a limited set of ASCII characters in the 0x20-0x7E range. A language system tag may consist of upper or lowercase letters. If a language system tag consists of three letters (as those taken from the NLSAPI specs), the letters are followed by a single space (consisting of the single byte 0x20 -- not null.)


Language System Tag Language System
"ARA " Arabic (Saudi Arabia)
"ZHT " Chinese (Taiwan)
"ZHS " Chinese (PRC)
"ENU " English (United States)
"ENG " English (British)
"FRA " French (Standard)
"DEU " German (Standard)
"IWR " Hebrew
"JAN " Japanese
"KOR " Korean
"ESP " Spanish (Traditional Sort)
"THA " Thai


Baseline tags

This section defines the standard OpenType Layout baseline tags that Microsoft supports. A registered baseline tag has a specific meaning and conveys information to font users about a baseline's use. For example, the "romn" baseline tag is commonly used to identify the baseline for Latin text layout. For compatibility and ease of use, Microsoft encourages font developers to use registered baseline tags.

This version of the Tag Registry identifies the baselines that Microsoft has implemented to date. All tags are 4-byte character strings composed of a limited set of ASCII characters in the 0x20-0x7E range. Baseline tags consist of four lowercase letters.


Baseline Tag Baseline
"ideo" Ideographic
"hang" Indic hanging
"math" Mathematical (centered)
"romn" Roman


Feature tags

Features provide information about how to use the glyphs in a font to render a script or language. For example, an Arabic font might have a feature for substituting initial glyph forms, and a Kanji font might have a feature for positioning glyphs vertically. All OpenType Layout features define data for glyph substitution, glyph positioning, or both.

Each OpenType Layout feature has a feature tag that identifies its typographic function and effects. By examining a feature's tag, a text-processing client can determine what a feature does and decide whether to implement it. All tags are 4-byte character strings composed of a limited set of ASCII characters in the 0x20-0x7E range. Microsoft-registered feature tags use four lowercase letters. For instance, the "mark" feature manages the placement of diacritical marks, and the "swsh" feature renders swash glyphs.

This version of the Tag Registry describes all the OpenType Layout features Microsoft has developed to date. It also includes details that identify the lookups that Microsoft uses to implement each feature. Lookup information is provided for reference purposes only; the set of lookups used to implement a feature will vary across system platforms, applications, fonts, and font developers.

A feature definition may not provide all the information required to properly implement glyph substitution or positioning actions. In many cases, a text-processing client may need to supply additional data. For example, the function of the "init" feature is to provide initial glyph forms. Nothing in the feature's lookup tables indicates when or where to apply this feature during text processing. To correctly use the "init" feature in Arabic text where initial glyph forms appear at the beginning of words, text-processing clients must be able to identify the first glyph position in each word before making the glyph ubstitution. In all cases, the text-processing client is responsible for applying, combining, and arbitrating among features and rendering the result.

The tag space defined by tags consisting of four uppercase letters (A-Z) with no punctuation, spaces, or numbers, is reserved as a vendor space. Font vendors may use such tags to identify private features. For example, the feature tag "PKRN" might designate a private feature that may be used to kern punctuation marks. Microsoft does not guarantee the compatibility or usability of private features, and it cannot ensure that two font vendors will not choose the same tag for a private feature.


To register features

Microsoft encourages font developers to use registered feature tags when implementing registered features. However, font developers also may define and register their own features.

Microsoft welcomes nominations for new features and feature tags to register. To qualify for registration, a feature must have a single function that is clearly identified by its tag. The function of the feature should be defined at the lowest useful level and must be distinctly different from the functions of currently registered features. When font developers register feature tags and functions with Microsoft, they do not have to supply implementation details.

Microsoft reserves the right to officially assign feature tags in the Microsoft Tag Registry. Although Microsoft has reserved the feature and feature tag definitions listed here, Microsoft fonts do not contain all of the features.

Registered features



this page was last updated 31 March 1998
© 1998 Microsoft Corporation. All rights reserved. Terms of use.
comments to the MST group: ttwsite@microsoft.com

 

Microsoft Typography | Developer information | Specifications | OpenType Layout tag registry