Cautionary thoughts on embedding

by Michael S. Kaplan, published on 2010/02/01 07:01 -05:00, original URI: http://blogs.msdn.com/b/michkap/archive/2010/02/01/9956085.aspx


It was a bit ago that a colleague forwarded a request to me about font embedding:

“I was wondering if you knew about the legality of embedding Microsoft's fonts in software or web pages?  For example, I've packaged the Abyssinica SIL font with my software because SIL has permitted free commercial distribution.  Do you know if Microsoft Nyala's font allows that?  I'd love to embed it in my web page as well as the software.  I suppose there's a difference between embedding and full installation, but I'm concerned about both.”

Now allow me to preface my response by pointing out IANAL, by which I mean I AM NOT A LAWYER.

It is important that this be recognized. If you truly want legal advice because your question relates to legality, then neither I nor this blog are the best sources of information.

I briefly touched on the technical side of the legal issues with font embedding in that Rhymes with Amharic series I did back in 2007, especially in part 3.

I'll now point to the Microsoft Typography site, in particular the OpenType spec, in detailed particular the fsType member of the OS/2 - OS/2 and Windows Metrics (Version 0) table. I'll just quote the whole chunk of text:

fsType

Format: 2-byte unsigned short
Title: Type flags.
Description: Indicates font embedding licensing rights for the font. Embeddable fonts may be stored in a document. When a document with embedded fonts is opened on a system that does not have the font installed (the remote system), the embedded font may be loaded for temporary (and in some cases, permanent) use on that system by an embedding-aware application. Embedding licensing rights are granted by the vendor of the font.

The OpenType Font Embedding DLL Specification and DLL release notes describe the APIs used to implement support for OpenType font embedding and loading. Applications that implement support for font embedding, either through use of the Font Embedding DLL or through other means, must not embed fonts which are not licensed to permit embedding. Further, applications loading embedded fonts for temporary use (see Preview & Print and Editable embedding below) must delete the fonts when the document containing the embedded font is closed.
Bit Bit Mask Description
  0x0000 Installable Embedding: No fsType bit is set. Thus fsType is zero.
Fonts with this setting indicate that they may be embedded and permanently installed on the remote system by an application. The user of the remote system acquires the identical rights, obligations and licenses for that font as the original purchaser of the font, and is subject to the same end-user license agreement, copyright, design patent, and/or trademark as was the original purchaser.
0 0x0001 Reserved, must be zero.
1 0x0002 Restricted License embedding:
Fonts that have only this bit set must not be modified, embedded or exchanged in any manner without first obtaining permission of the legal owner.
Caution: For Restricted License embedding to take effect, it must be the only level of embedding selected.
2 0x0004 Preview & Print embedding: When this bit is set, the font may be embedded, and temporarily loaded on the remote system. Documents containing Preview & Print fonts must be opened “read-only;” no edits can be applied to the document.
3 0x0008 Editable embedding: When this bit is set, the font may be embedded but must only be installed temporarily on other systems. In contrast to Preview & Print fonts, documents containing Editable fonts may be opened for reading, editing is permitted, and changes may be saved.
4-15   Reserved, must be zero.
Comments: If multiple embedding bits are set, the least restrictive license granted takes precedence. For example, if bits 1 and 3 are set, bit 3 takes precedence over bit 1and the font may be embedded with Editable rights. For compatibility purposes, most vendors granting Editable embedding rights are also setting the Preview & Print bit (0x000C). This will permit an application that only supports Preview & Print embedding to detect that font embedding is allowed.
  Restricted License embedding (0x0002): Fonts that have this bit set must not be modified, embedded or exchanged in any manner without first obtaining permission of the legal owner. Caution: note that for Restricted License embedding to take effect, it must be the only level of embedding selected (as noted in the previous paragraph).
  Preview & Print embedding (0x0004): Fonts with this bit set indicate that they may be embedded within documents but must only be installed temporarily on the remote system. Any document which includes a Preview & Print embedded font must be opened “read-only;” the application must not allow the user to edit the document; it can only be viewed and/or printed.
  Editable embedding (0x0008): Fonts with this bit set indicate that they may be embedded in documents, but must only be installed temporarily on the remote system. In contrast to Preview & Print fonts, documents containing Editable fonts may be opened “read-write;” editing is permitted, and changes may be saved.
  Installable embedding (0x0000): Fonts with this setting indicate that they may be embedded and permanently installed on the remote system by an application. The user of the remote system acquires the identical rights, obligations and licenses for that font as the original purchaser of the font, and is subject to the same end-user license agreement, copyright, design patent, and/or trademark as was the original purchaser.

Clear now? :-)

Now note that companies that have an oar in this particular pond will have specific information on how it applies to them and the fonts that their customers might work with; note Adobe's Fonts: Embedding Permissions information page.

In fact one could probably glean some insight into the biggest concerns of companies when you read how they try to shape the message.

But irregardless of shape, all will pretty much in the end suggest talking to the actual owners of the font.

You know, the ones who could sue you if you misused it in some way.

That seems like safe advice to me.... :-)

I remember talking with some folks once, about four years after I had gotten my own Cease and Desist due to something I was doing with some Microsoft's fonts that I thought was okay though as it turns out it wasn't.

In the end I sort of gathered that the most common cases were like mine - honest mistakes where no misuse was intended.

But obviously even the honest mistakes can be costly to font foundries, which is why they try to keep an eye on things. And especially to look for when people ask the question since that is the best time to help guide them down the right path.

Now one of the most important things to keep in mind is that when this information was added to fonts, embedding was still thought of primarily in respect to documents. You don't have to be a lawyer to see how the descriptions above focus on a very document-centric universe.

Of course there are gray areas (the New York Times reader and the Kindle come to mind immediately) where one might find the meaning of the word document to shift around in ways that some might find uncomfortable. But by and large for most uses one can make the honest assessment about usage and with that quick legal consultation (one to which that honest assessment can be source material!) you can go forward with confidence.

In the specific example of the original question, my default answer would be that it is probably okay in web pages with an embedding technology like .EOT files, with a font like Nyala that allows such embedding. But I would not be too hasty to apply logic such as that to software, as well. For that case it clearly seems beyond the scope of the description of the embedding levels, so even though it may be fine with them it is safer to assume it is not and ask.

After all, as sources like this one discuss:

Simply including fonts in webpages might lead to unrestricted copying of copyrighted font files. Embedded OpenType includes features to discourage copying. Subsetting reduces the value of copying, as subsetted fonts will typically omit more than half of the characters. Other copy protection measures used are encryption and a list of "trusted roots" at the source end, and a proprietary decrypting DLL at the receiving end.

Some of those means to discourage might not be practical in the application case, since subsetting may not be practical if the content is itself dynamic. A foundry might want to be able to make sure that anyone who wants to use a font in such a way was adequately compensating the foundry for this extended usage.

This is kind of the reason you have to make sure you really ask the font foundry before you embed the font in your application or game or whatever, if it is not a document.

Perhaps this is all indirectly a technical suggestion -- such as a possible need to add additional embedding levels to cover the "application" scenario.

Now as I read this blog, which is pretty steadfast and clear about talking to lawyers who will work to make sure that no mistakes are made, I realize that it could indeed be cited in some legal situation - like by the owner of a font someone was misusing as an example of proof that a reasonable person would have asked. But in a deposition I would refute that notion given how seldom people pay attention to this blog and how there are much more qualified people to ask those questions. :-)

Let me close by reminding people that I AM NOT A LAWYER; that and the fact that the meat of my advice is to talk to one should make that clear. My legal knowledge consists of multiple man-decades of watching various Law & Order/CSI/JAG type TV shows, which is great for random Latin phrases but not so great for advice that will keep you from bankrupting your startup!


Cheong on 4 Feb 2010 5:21 PM:

Just want to point out that if you want to use a font that you're not sure of legal issue in web sites, you might found solutions like GlyphGate that actually converts your paragraphs into image before output valuable.

And with ASP.NET plus a little bit knowledge on writing web plugins, it's not difficult to program it yourself. :)


go to newer or older post, or back to index or month or day