April 19, 1996
This document contains a high-level proposal for embedding fonts in HTML documents on the World Wide Web. Clients interact with platform-specific services (called "embedding services" in this document) that provide much of the embedding functionality.
The embedding services used by the clients perform the following functions:
The Embedding Services create an embedded font structure from a specified font or fonts. The font structure has a known length and stream identifier, which the clients use to package the structure appropriately.
Rather than actually embed a font structure in an HTML document, we propose that clients create a separate file to contain the embedded font or fonts, perhaps called a .FONT file, with its own URL. This file would have the following MIME specification:
An HTML document would contain a reference to the associated font
file, similar to the way graphics or other objects are referenced
within a web document. We propose the tag
<FONT FILE> to associate fonts with a web document. For example,
<FONT FILE = Name.FONT>
The following scenario outlines the process an authoring client might follow when embedding a font in an HTML document:
Display clients will use a procedure similar to the following to load and display embedded fonts:
OPEN ISSUE regarding HTML FORMS: Fonts with read-only embedding privileges (preview and print embedding) have previously only been allowed to be loaded for use in read-only documents. A web author may unknowingly embed a read-only font for use with an HTML form, which allows a user to modify and enter text. Rather than create a new embedding level for this purpose, or modifying the existing read-only level to permit this use of the font, the client should substitute a local font for the read-only font used in the form.
Authoring clients need to determine which fonts are actually used in a document before embedding the fonts. Fonts that are associated with a document but not actually displayed should not be embedded.
Authoring clients also need to determine which of the fonts used in a document should actually be embedded. Fonts that will exist on the remote system, such as the Windows core fonts, should not be embedded. Users may also notify the authoring client of fonts they do not want to embed. Authoring clients are responsible for maintaining a shared typeface exclusion list that lists fonts that should not be embedded.
If an authoring client requests the font be subsetted, the client must supply the list of characters used in the document.
Authoring and display clients are responsible for defining functions that the embedding services can use to write the font structure to the .FONT file.
The embedding services report the embedding privileges the font creator has applied to the font, and clients must respect those privileges. After loading and displaying a document with a font intended for temporary use, a client must uninstall the font.
When loading a document with embedded fonts that the creator has labeled fully-installable, the display client should ask the user whether to permanently install the font or use it only temporarily. Otherwise, users may unwittingly load numerous fonts on their computer that they never regularly use.
Microsoft has worked with the font industry to develop standards for identifying embeddability within font files.
The embeddability of a TrueType font is determined by the creator of the font. Information about the level of embedding permitted for the font is contained in the fsType bit field of the OS/2 table, as described in the TrueType 1.0 Font File Specification.
OS/2 table Description fsType bit settings 1 Restricted License Embedding. The font must not be modified, embedded, or exchanged in any manner without first obtaining permission of the legal owner. 2 Preview and Print Embedding. The font may be embedded within documents, but must only be installed temporarily on the remote system. Documents containing the font can only be opened as "read-only." 3 Editable Embedding. The font may be embedded within documents, but must only be installed temporarily on the remote system. Documents containing the font can be opened for reading and writing.