Apple Advanced Typography (AAT) is Apple Inc.'s computer technology for advanced font rendering, supporting internationalization and complex features for typographers, a successor to Apple's little-used QuickDraw GX font technology of the mid-1990s.

It is a set of extensions to the TrueType outline font standard, with smartfont features similar to the OpenType font format that was developed by Adobe and Microsoft, and to Graphite. It incorporates concepts from Adobe's "multiple master" font format, allowing for axes of traits to be defined and morphing of a glyph independently along each of these axes. AAT font features do not alter the underlying typed text; they only affect the characters' representation during glyph conversion.

Features

thumb|right|312px|Example of the extra glyphs and ligatures available in the [[Zapfino typeface|class=skin-invert-image]]

Significant features of AAT include:

  • Several degrees of ligature control
  • Kashida justification and joiners
  • Cross-stream kerning (required for Nasta'liq Urdu, for example)
  • Indic vowel rearrangement
  • Independently controllable substitution of:
  • Old style figures
  • Small caps and drop caps
  • Swash variants
  • Alternative glyphs:
  • Individual alternatives on a per-glyph basis
  • Wholesale alternatives, such as engraved text
  • Anything else the font designer wants to add
  • Glyph variation axes

AAT font features are supported on Mac OS 8.5 and above and all versions of macOS. The cross-platform ICU library provided basic AAT support for left-to-right scripts. HarfBuzz version 2 has added AAT shaping support, an open-source implementation of the technology which Chrome/Chromium as version 72 and LibreOffice as version 6.3 uses it instead of CoreText for rendering macOS AAT fonts in cross-platform way.

As of OS X Yosemite and iOS 8, AAT supports language-specific shaping—that is, changing how glyphs are processed depending on the human language they are being used to represent. This support is available through the use of language tags in Core Text. Provision was added at the same time for the relative positioning of two glyphs via anchor points via the 'kerx' and 'ankr' tables.

AAT and OpenType in macOS

As of Mac OS X 10.3 Panther, partial support for OpenType is available. As of 2011, support is limited to Western and Arabic scripts. If a font has AAT tables, they will be used for typography. If the font does not have AAT tables but does have OpenType tables, they will be used to the extent that the system supports them.

This means that many OpenType fonts for Western or Middle Eastern scripts can be used without modification on Mac OS X 10.5, but South Asian scripts such as Thai and Devanagari cannot. These require AAT tables for proper layout.

AAT Layout

AAT requires the text to be turned entirely into glyphs before text layout occurs. Operations on the text take place entirely within the glyph layer. This table provides pointers to the localizable strings that can be used to describe a feature to the end user and the appropriate flags to send to the text engine if the feature is selected. Features can be made invisible to the user by the simple expedient of not including entries in the "feat" table for them. Apple uses this approach, for example, to support required ligatures.

Subtables may perform non-contextual glyph substitutions, contextual glyph substitutions, glyph rearrangements, glyph insertions, and ligature formation. Contextual actions are sensitive to the surrounding text. They can be used, for example, to automatically turn an s into a medial s anywhere in a word except at its end.

The "morx" subtables for non-contextual glyph substitutions are simple mapping tables between the glyph substituted and its substitute. The others all involve the use of finite-state machines.

For the purposes of processing the finite-state machine, glyphs are organized into classes. A class may be small, containing only a single glyph (for something like ligature formation), or it may include dozens glyphs or even more. A special class is automatically defined for any glyph not included in any of the explicit classes. Special classes are also available for the end of the glyph stream and glyphs deleted from the glyph stream. in which a font's shape can vary depending on a scaled value supplied by the user. Variation fonts are similar to Adobe's defunct Multiple master fonts, where the endpoints are defined and any medial value is valid. With this, the user can then drag sliders in the user interface to make glyphs taller or shorter, to make them fatter or thinner, to increase or decrease the size of the serifs, and the like, all independently of one another. Glyphs may even have their fundamental shapes radically altered. Before OpenType introduced Font Variation in September 2016, there is nothing like this in OpenType.

Other AAT tables can also have point-size dependent effects;