Overview
ISO/IEC 14496-22:2019/Amd 1:2020 is an amendment to Part 22 of the ISO/IEC 14496 series (Open Font Format). It adds and clarifies support for color font technology and other updates to OpenType/OFF font tables. The amendment refines glyph and table semantics, formalizes the SVG color-glyph table, documents encoding/format requirements, and provides interoperability guidance for variable and color fonts.
Key topics and technical requirements
- SVG table (color glyphs)
- Defines the SVG table header and the SVG Document List (numEntries, documentRecords).
- Each SVGDocumentRecord includes startGlyphID, endGlyphID, svgDocOffset and svgDocLength. Records must be sorted and ranges may be discontinuous.
- SVG documents may be plain text or gzip-encoded; gzip must use DEFLATE (RFC 1952 / RFC 1951). svgDocLength is the length of the encoded data. Uncompressed SVG must be UTF-8.
- Documents must conform to SVG 1.1 (W3C Recommendation) and be XML-based (no HTML-dialect forms).
- Restricted/forbidden SVG elements and features are listed (for example, , , , , , , CSS2 system colors, and many interactivity features). Implementations must ignore such elements.
- Required support includes gradients, clipping paths, and opacity. Support for internal CSS and CSS variables is optional but var() for CPAL palette references is strongly recommended.
- Color and palettes (CPAL)
- CPAL palettes may be referenced from SVG via CSS custom properties using var(). Implementations that support CPAL must support var() for color variables; fonts should not define variables inside SVG.
- Color specifications: numeric RGB (e.g., "#ffbb00" or "rgb(255,187,0)") and named color keywords are required; rgba() is not supported.
- Glyph and table semantics
- Clarifies the Offset field meaning (offset from beginning of OFF file).
- Clarifies glyph contour behavior: the OVERLAP_SIMPLE flag signals that a non-zero-fill algorithm should be used to avoid dropouts when contours overlap; variable fonts often rely on overlapping contours and tools producing static instances should set this flag or merge contours.
- Notes on FDSelect formats: sentinel GID encoding limits (uint16 max) imply the last GID in FDSelect Format3 cannot exceed 65534; references to glyph-count limits updated to 65535.
Practical applications and target users
- Who uses this standard: font foundries, font engineering teams, renderer and layout engine developers, browser and OS vendors, typographers, and toolchain developers.
- Practical uses: creating interoperable color fonts (SVG-based or CPAL-backed), implementing font parsers and rasterizers, producing static instances from variable fonts, and ensuring secure, performant SVG-in-font rendering in text-layout environments.
Related standards and references
- SVG 1.1 (W3C Recommendation) - defines the permitted SVG subset for OFF.
- RFC 1952 / RFC 1951 - gzip/DEFLATE encoding constraints for SVG documents.
- ISO/IEC 14496 series - broader context for audiovisual coding and related parts.
Keywords: ISO/IEC 14496-22, Open Font Format, color font, SVG table, CPAL palette, variable fonts, glyph ID, OVERLAP_SIMPLE, font interoperability.