| < draft-ietf-justfont-toplevel-00.txt | draft-ietf-justfont-toplevel-01.txt > | |||
|---|---|---|---|---|
| Network Working Group C. Lilley | Network Working Group C. Lilley | |||
| Internet-Draft W3C | Internet-Draft W3C | |||
| Intended status: Standards Track January 29, 2016 | Intended status: Standards Track February 24, 2016 | |||
| Expires: August 1, 2016 | Expires: August 27, 2016 | |||
| The font Top Level Type | The font Top Level Type | |||
| draft-ietf-justfont-toplevel-00 | draft-ietf-justfont-toplevel-01 | |||
| Abstract | Abstract | |||
| This memo serves to register and document the "font" Top Level Type, | This memo serves to register and document the "font" Top Level Type, | |||
| under which the Internet Media subtypes for representation formats | under which the Internet Media subtypes for representation formats | |||
| for fonts may be registered. This document also serves as a | for fonts may be registered. This document also serves as a | |||
| registration application for a set of intended subtypes, which are | registration application for a set of intended subtypes, which are | |||
| representative of some existing subtypes already registered under the | representative of some existing subtypes already in use, and | |||
| "application" tree by their separate registrations. | currently registered under the "application" tree by their separate | |||
| registrations. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on August 1, 2016. | This Internet-Draft will expire on August 27, 2016. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| 1. Introduction | 1. Specification development | |||
| This section is non-normative. The source for this specification is | ||||
| maintained on GitHub [1]. The issues list [2] is also on GitHub. | ||||
| Discussion should be on the mailing list justfont@ietf.org [3]. | ||||
| 2. Introduction | ||||
| The process of setting type in computer systems and other forms of | The process of setting type in computer systems and other forms of | |||
| text presentation systems uses fonts in order to provide visual | text presentation systems uses fonts in order to provide visual | |||
| representations of the glyphs. Just as with images, for example, | representations of the glyphs. Just as with images, for example, | |||
| there are a number of ways to represent the visual information of the | there are a number of ways to represent the visual information of the | |||
| glyphs. Early font formats often used bitmaps, as these could have | glyphs. Early font formats often used bitmaps, as these could have | |||
| been carefully tuned for maximum readability at a given size on low- | been carefully tuned for maximum readability at a given size on low- | |||
| resolution displays. More recently, scalable vector outline fonts | resolution displays. More recently, scalable vector outline fonts | |||
| have come into widespread use: in these fonts, the outlines of the | have come into widespread use: in these fonts, the outlines of the | |||
| glyphs are described, and the presentation system renders the outline | glyphs are described, and the presentation system renders the outline | |||
| skipping to change at page 2, line 31 ¶ | skipping to change at page 2, line 37 ¶ | |||
| under which different representation formats of fonts may be | under which different representation formats of fonts may be | |||
| registered (e.g. a bitmap or outline formats). It should be | registered (e.g. a bitmap or outline formats). It should be | |||
| emphasized that, just as under the "image" top-level type one does | emphasized that, just as under the "image" top-level type one does | |||
| not find registration for a specific image, for example, "The Night- | not find registration for a specific image, for example, "The Night- | |||
| watch" (by Rembrandt) but instead "JPEG" (a compressed image data | watch" (by Rembrandt) but instead "JPEG" (a compressed image data | |||
| representation format), so, under "font" one will not find "Courier" | representation format), so, under "font" one will not find "Courier" | |||
| (the name of a popular font) but perhaps "TTF", "OTF" or "SFNT" (the | (the name of a popular font) but perhaps "TTF", "OTF" or "SFNT" (the | |||
| names of commonly used TrueType and OpenType font formats as well as | names of commonly used TrueType and OpenType font formats as well as | |||
| their higher-level wrapper format). | their higher-level wrapper format). | |||
| 2. Background and Justification | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | ||||
| document are to be interpreted as described in RFC 2119 [RFC2119]. | ||||
| 3. Background and Justification | ||||
| Historically there has not been a registration of formats for fonts. | Historically there has not been a registration of formats for fonts. | |||
| Most recently, there have been several representation formats | Most recently, there have been several representation formats | |||
| registered as MIME subtypes under the "application" top-level type. | registered as MIME subtypes under the "application" top-level type. | |||
| However, with the rapid adoption of web fonts (based on the data from | However, with the rapid adoption of web fonts (based on the data from | |||
| HTTP Archive [1] showing a huge increase in web font usage from 1% in | HTTP Archive [HTTP-Archive-Trends] showing a huge increase in web | |||
| the end of 2010 to 50% across all sites in the beginning of 2015) | font usage from 1% in the end of 2010 to 50% across all sites in the | |||
| custom fonts on the web have become a core web resource. As the in- | beginning of 2015) custom fonts on the web have become a core web | |||
| depth analysis [2] shows, the lack of the intuitive top-level font | resource. As the in-depth analysis [Font-Media-Type-Analysis] shows, | |||
| type is causing significant confusion among developers - while | the lack of the intuitive top-level font type is causing significant | |||
| currently defined font subtypes are severely under-utilized there are | confusion among developers - while currently defined font subtypes | |||
| many more sites that already use non-existent (but highly intuitive) | are severely under-utilized there are many more sites that already | |||
| media types such as "font/woff", "font/ttf" and "font/truetype". At | use non-existent (but highly intuitive) media types such as "font/ | |||
| the same time, the majority of sites resort to using generic types | woff", "font/ttf" and "font/truetype". At the same time, the | |||
| such as "application/octet-stream", "text/plain" and "text/html"; or | majority of sites resort to using generic types such as "application/ | |||
| use unregistrable types such as "application/x-font-ttf". | octet-stream", "text/plain" and "text/html"; or use unregistrable | |||
| types such as "application/x-font-ttf". | ||||
| Contrary to our expectations, the officially defined IANA subtypes | Contrary to our expectations, the officially defined IANA subtypes | |||
| such as "application/font-woff" and "application/font-sfnt" see a | such as "application/font-woff" and "application/font-sfnt" see a | |||
| very limited use - their adoption rates trail far behind as the | very limited use - their adoption rates trail far behind as the | |||
| actual use of web fonts continues to increase. The members of the | actual use of web fonts continues to increase. The members of the | |||
| W3C WebFonts WG believe the use of "application" top-level type is | W3C WebFonts WG believe the use of "application" top-level type is | |||
| not ideal. First, the "application" sub-tree is treated (correctly) | not ideal. First, the "application" sub-tree is treated (correctly) | |||
| with great caution with respect to viruses and other active code. | with great caution with respect to viruses and other active code. | |||
| Secondly, the lack of a top-level type means that there is no | Secondly, the lack of a top-level type means that there is no | |||
| opportunity to have a common set of optional attributes, such as are | opportunity to have a common set of optional attributes, such as are | |||
| skipping to change at page 3, line 28 ¶ | skipping to change at page 3, line 39 ¶ | |||
| intuitive media types for images that caused the widespread adoption | intuitive media types for images that caused the widespread adoption | |||
| of IANA's recommendations, where the correct usage of existing media | of IANA's recommendations, where the correct usage of existing media | |||
| types reaches over 97% for all subtypes in the "image" tree. The WG | types reaches over 97% for all subtypes in the "image" tree. The WG | |||
| believes that, considering a rapid adoption of fonts on the web, the | believes that, considering a rapid adoption of fonts on the web, the | |||
| registration of the top-level media type for fonts along with the | registration of the top-level media type for fonts along with the | |||
| intuitive set of subtypes that reflect popular and widely used data | intuitive set of subtypes that reflect popular and widely used data | |||
| formats would further stimulate the adoption of web fonts, | formats would further stimulate the adoption of web fonts, | |||
| significantly simplify web server configuration process and | significantly simplify web server configuration process and | |||
| facilitate the proper use of IANA media type recommendations. | facilitate the proper use of IANA media type recommendations. | |||
| 3. Security considerations | 4. Security considerations | |||
| Fonts are interpreted data structures that represent collections of | Fonts are interpreted data structures that represent collections of | |||
| different tables containing data that represent different types of | different tables containing data that represent different types of | |||
| information, including glyph outlines in various formats, hinting | information, including glyph outlines in various formats, hinting | |||
| instructions, metrics and layout information for multiple languages | instructions, metrics and layout information for multiple languages | |||
| and writing systems, rules for glyph substitution and positioning, | and writing systems, rules for glyph substitution and positioning, | |||
| etc. Depending on the format used to represent the glyph data the | etc. Depending on the format used to represent the glyph data the | |||
| font may contain TrueType, PostScript or SVG outlines and their | font may contain TrueType, PostScript or SVG outlines and their | |||
| respective hint instructions, where applicable. There are many | respective hint instructions, where applicable. There are many | |||
| existing, already standardized font table tags and formats that allow | existing, already standardized font table tags and formats that allow | |||
| skipping to change at page 4, line 29 ¶ | skipping to change at page 4, line 40 ¶ | |||
| Widespread use of fonts as necessary component of visual content | Widespread use of fonts as necessary component of visual content | |||
| presentation warrants that a careful attention should be given to | presentation warrants that a careful attention should be given to | |||
| security considerations whenever a font is either embedded into an | security considerations whenever a font is either embedded into an | |||
| electronic document or transmitted alongside media content as a | electronic document or transmitted alongside media content as a | |||
| linked resource. While many existing font formats provide certain | linked resource. While many existing font formats provide certain | |||
| levels of protection of data integrity (such mechanisms include e.g. | levels of protection of data integrity (such mechanisms include e.g. | |||
| checksums and digital signatures), font data formats provide neither | checksums and digital signatures), font data formats provide neither | |||
| privacy nor confidentiality protection internally; if needed, such | privacy nor confidentiality protection internally; if needed, such | |||
| protection should be provided externally. | protection should be provided externally. | |||
| 4. Definition and encoding | 5. IANA Considerations | |||
| This specification requires IANA to modify the rules for the existing | ||||
| Internet Media Types registry by adding a new font top-level type in | ||||
| the standards tree, and registering several subtypes. | ||||
| 6. Definition and encoding | ||||
| The "font" as the primary media content type indicates that the | The "font" as the primary media content type indicates that the | |||
| content identified by it requires certain graphic subsystem such as | content identified by it requires certain graphic subsystem such as | |||
| font rendering engine (and, in some cases, text layout and shaping | font rendering engine (and, in some cases, text layout and shaping | |||
| engine) to process font data, which in turn may require certain level | engine) to process font data, which in turn may require certain level | |||
| of hardware capabilities such as certain levels of CPU performance | of hardware capabilities such as certain levels of CPU performance | |||
| and available memory. The "font" media type does not provide any | and available memory. The "font" media type does not provide any | |||
| specific information about the underlying data format and how the | specific information about the underlying data format and how the | |||
| font information should be interpreted - the subtypes defined within | font information should be interpreted - the subtypes defined within | |||
| a "font" tree will name the specific font formats. Unrecognized sub- | a "font" tree will name the specific font formats. Unrecognized sub- | |||
| types of "font" should be treated as "application/octet-stream". | types of "font" should be treated as "application/octet-stream". | |||
| Implementations may pass unrecognized subtypes to a common font- | Implementations may pass unrecognized subtypes to a common font- | |||
| handling system, if such system is available. | handling system, if such system is available. | |||
| 5. Defined subtypes | 7. Defined subtypes | |||
| In this section the initial entries under the top-level 'font' MIME | In this section the initial entries under the top-level 'font' MIME | |||
| type are documented. They also serve as examples for future | type are documented. They also serve as examples for future | |||
| registrations. | registrations. | |||
| 5.1. Generic SFNT font type | For each subtype, an @font-face format identifer is defined. This | |||
| for use with the @font-face src descriptor, defined by the CSS3 Fonts | ||||
| specification [W3C.CR-css-fonts-3-20131003]. | ||||
| 7.1. Generic SFNT font type | ||||
| Type name: font | Type name: font | |||
| Subtype name: sfnt | Subtype name: sfnt | |||
| Required parameters: None. | Required parameters: None. | |||
| Optional parameters: | Optional parameters: | |||
| 1) Name: Outlines Value: TTF, CFF, SVG | 1) Name: Outlines Value: TTF, CFF, SVG | |||
| This parameter can be used to specify the type of outlines | This parameter can be used to specify the type of outlines | |||
| supported by the font. Value "TTF" shall be used when a font | supported by the font. Value "TTF" shall be used when a font | |||
| resource contains glyph outlines in TrueType format, value | resource contains glyph outlines in TrueType format, value | |||
| "CFF" shall be used to identify fonts containing PostScript/CFF | "CFF" shall be used to identify fonts containing PostScript/CFF | |||
| outlines, and value SVG shall be used to identify fonts that | outlines, and value SVG shall be used to identify fonts that | |||
| include SVG outlines. TTF, CFF or SVG outlines can be present | include SVG outlines. TTF, CFF or SVG outlines can be present | |||
| in various combinations in the same font file, therefore, | in various combinations in the same font file, therefore, this | |||
| multiple values for the same optional parameter may be defined. | optional parameter is a list containing one or more items, | |||
| separated by commas, with optional whitespace. Order in the | ||||
| list is not significant. | ||||
| 2) Name: Layout | 2) Name: Layout | |||
| Value: OTF, AAT, SIL | Value: OTL, AAT, SIL | |||
| This parameter identifies the type of implemented support for | This parameter identifies the type of implemented support for | |||
| advanced text layout features. The predefined values "OTF", | advanced text layout features. The predefined values "OTL", | |||
| "AAT" and " SIL" respectively indicate support for OpenType | "AAT" and "SIL" respectively indicate support for OpenType text | |||
| text layout, Apple Advanced Typography or Graphite SIL. More | layout, Apple Advanced Typography or Graphite SIL. More than | |||
| than one shaping and layout mechanism may be supported by the | one shaping and layout mechanism may be supported by the same | |||
| same font file, therefore, multiple values for the same | font file, therefore, this optional parameter is a list | |||
| optional parameter may be defined. | containing one or more items, separated by commas, with | |||
| optional whitespace. Order in the list is not significant. | ||||
| Encoding considerations: Binary. | Encoding considerations: Binary. | |||
| Interoperability considerations: As it was noted in the first | Interoperability considerations: As it was noted in the first | |||
| paragraph of the "Security considerations" section, the same font | paragraph of the "Security considerations" section, the same font | |||
| format wrapper can be used to encode fonts with different types of | format wrapper can be used to encode fonts with different types of | |||
| glyph data represented as either TrueType or PostScript (CFF) | glyph data represented as either TrueType or PostScript (CFF) | |||
| outlines. Existing font rendering engines may not be able to | outlines. Existing font rendering engines may not be able to | |||
| process some of the particular outline formats, and downloading a | process some of the particular outline formats, and downloading a | |||
| font resource that contains unsupported glyph data format would | font resource that contains unsupported glyph data format would | |||
| skipping to change at page 6, line 10 ¶ | skipping to change at page 6, line 32 ¶ | |||
| format of the glyph outline data within a font using an optional | format of the glyph outline data within a font using an optional | |||
| parameter, and allow applications to make decisions about | parameter, and allow applications to make decisions about | |||
| downloading a particular font resource sooner. Similar, another | downloading a particular font resource sooner. Similar, another | |||
| optional parameter is suggested to identify the type of text | optional parameter is suggested to identify the type of text | |||
| shaping and layout mechanism that is supported by a font. Please | shaping and layout mechanism that is supported by a font. Please | |||
| note that as new outline formats and text shaping mechanisms may | note that as new outline formats and text shaping mechanisms may | |||
| be defined in the future, the set of allowed values for two | be defined in the future, the set of allowed values for two | |||
| optional parameters defined by this section may be extended. | optional parameters defined by this section may be extended. | |||
| Published specification: ISO/IEC 14496-22 "Open Font Format" (OFF) | Published specification: ISO/IEC 14496-22 "Open Font Format" (OFF) | |||
| specification being developed by ISO/IEC SC29/WG11. | specification [ISO.14496-22.2015] being developed by ISO/IEC SC29/ | |||
| WG11. | ||||
| Applications that use this media type: Any and all applications that | Applications that use this media type: Any and all applications that | |||
| are able to create, edit or display textual media content. | are able to create, edit or display textual media content. | |||
| Additional information: | Additional information: | |||
| Magic number(s): The TrueType fonts and OFF / OpenType fonts | Magic number(s): The TrueType fonts and OFF / OpenType fonts | |||
| containing TrueType outlines should use 0x00010000 as the | containing TrueType outlines should use 0x00010000 as the | |||
| 'sfnt' version number. | 'sfnt' version number. | |||
| skipping to change at page 7, line 5 ¶ | skipping to change at page 7, line 27 ¶ | |||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Restrictions on usage: None | Restrictions on usage: None | |||
| Author: The ISO/IEC 14496-22 "Open Font Format" specification is a | Author: The ISO/IEC 14496-22 "Open Font Format" specification is a | |||
| product of the ISO/IEC JTC1 SC29/WG11. | product of the ISO/IEC JTC1 SC29/WG11. | |||
| Change controller: The ISO/IEC has change control over this | Change controller: The ISO/IEC has change control over this | |||
| specification. | specification. | |||
| 5.2. TTF font type | 7.2. TTF font type | |||
| Type name: font | Type name: font | |||
| Subtype name: ttf | Subtype name: ttf | |||
| Required parameters: None. | Required parameters: None. | |||
| Optional parameters: | Optional parameters: | |||
| Name: Layout Value: OTF, AAT, SIL | Name: Layout Value: OTL, AAT, SIL | |||
| This parameter identifies the type of support mechanism for | This parameter identifies the type of support mechanism for | |||
| advanced text layout features. The predefined values "OTF", | advanced text layout features. The predefined values "OTL", | |||
| "AAT" and " SIL" respectively indicate support for OpenType | "AAT" and "SIL" respectively indicate support for OpenType text | |||
| text layout, Apple Advanced Typography or Graphite SIL. More | layout, Apple Advanced Typography or Graphite SIL. More than | |||
| than one shaping and layout mechanism may be supported by the | one shaping and layout mechanism may be supported by the same | |||
| same font file, therefore, multiple values for the same | font file, therefore, this optional parameter is a list | |||
| optional parameter may be defined. | containing one or more items, separated by commas, with | |||
| optional whitespace. Order in the list is not significant. | ||||
| Encoding considerations: Binary. | Encoding considerations: Binary. | |||
| Interoperability considerations: As was noted in the first paragraph | Interoperability considerations: As was noted in the first paragraph | |||
| of the "Security considerations" section, the same font format can | of the "Security considerations" section, the same font format can | |||
| be used to encode fonts supporting different types of outlines | be used to encode fonts supporting different types of outlines | |||
| and/or text shaping and layout mechanisms. Existing font | and/or text shaping and layout mechanisms. Existing font | |||
| rendering engine implementations may not be able to process some | rendering engine implementations may not be able to process some | |||
| of the particular layout table formats, and downloading a font | of the particular layout table formats, and downloading a font | |||
| resource that contains unsupported text shaping mechanism would | resource that contains unsupported text shaping mechanism would | |||
| result in inability of applications to display text properly. | result in inability of applications to display text properly. | |||
| Therefore, it would be extremely useful to clearly identify the | Therefore, it would be extremely useful to clearly identify the | |||
| supported text shaping and layout data within a font using an | supported text shaping and layout data within a font using an | |||
| optional parameter, and allow applications to make decisions about | optional parameter, and allow applications to make decisions about | |||
| downloading a particular font resource sooner. Please note that | downloading a particular font resource sooner. Please note that | |||
| as new text shaping mechanisms may be defined in the future, the | as new text shaping mechanisms may be defined in the future, the | |||
| set of allowed values for the optional parameter defined by this | set of allowed values for the optional parameter defined by this | |||
| section may be extended. | section may be extended. | |||
| Published specification: ISO/IEC 14496-22 "Open Font Format" (OFF) | Published specification: ISO/IEC 14496-22 "Open Font Format" (OFF) | |||
| specification being developed by ISO/IEC SC29/WG11. | specification [ISO.14496-22.2015] being developed by ISO/IEC SC29/ | |||
| WG11. | ||||
| Applications that use this media type: Any and all applications that | Applications that use this media type: Any and all applications that | |||
| are able to create, edit or display textual media content. | are able to create, edit or display textual media content. | |||
| Additional information: | Additional information: | |||
| Magic number(s): The TrueType fonts and OFF / OpenType fonts | Magic number(s): The TrueType fonts and OFF / OpenType fonts | |||
| containing TrueType outlines should use 0x00010000 as the | containing TrueType outlines should use 0x00010000 as the | |||
| 'sfnt' version number. | 'sfnt' version number. | |||
| skipping to change at page 8, line 28 ¶ | skipping to change at page 9, line 4 ¶ | |||
| @font-face Format: truetype | @font-face Format: truetype | |||
| Fragment Identifiers none. | Fragment Identifiers none. | |||
| Person & email address to contact for further information: Vladimir | Person & email address to contact for further information: Vladimir | |||
| Levantovsky (vladimir.levantovsky@monotype.com). | Levantovsky (vladimir.levantovsky@monotype.com). | |||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Restrictions on usage: None | Restrictions on usage: None | |||
| Author: The ISO/IEC 14496-22 "Open Font Format" specification is a | Author: The ISO/IEC 14496-22 "Open Font Format" specification is a | |||
| product of the ISO/IEC JTC1 SC29/WG11. | product of the ISO/IEC JTC1 SC29/WG11. | |||
| Change controller: The ISO/IEC has change control over this | Change controller: The ISO/IEC has change control over this | |||
| specification. | specification. | |||
| 5.3. OTF font type | 7.3. OTF font type | |||
| Type name: font | Type name: font | |||
| Subtype name: otf | Subtype name: otf | |||
| Required parameters: None. | Required parameters: None. | |||
| Optional parameters | Optional parameters | |||
| Name: Outlines Value: TTF, CFF, SVG | Name: Outlines Value: TTF, CFF, SVG | |||
| This parameter can be used to specify the type of outlines | This parameter can be used to specify the type of outlines | |||
| supported by the font. Value "TTF" shall be used when a font | supported by the font. Value "TTF" shall be used when a font | |||
| resource contains glyph outlines in TrueType format, value | resource contains glyph outlines in TrueType format, value | |||
| "CFF" shall be used to identify fonts containing PostScript/CFF | "CFF" shall be used to identify fonts containing PostScript/CFF | |||
| outlines, and value SVG shall be used to identify fonts that | outlines, and value SVG shall be used to identify fonts that | |||
| include SVG outlines. TTF, CFF or SVG outlines can be present | include SVG outlines. TTF, CFF or SVG outlines can be present | |||
| in various combinations in the same font file, therefore, | in various combinations in the same font file, therefore, this | |||
| multiple values for the same optional parameter may be defined. | optional parameter is a list containing one or more items, | |||
| separated by commas, with optional whitespace. Order in the | ||||
| list is not significant. | ||||
| Encoding considerations: Binary. | Encoding considerations: Binary. | |||
| Interoperability considerations: As it was noted in the first | Interoperability considerations: As it was noted in the first | |||
| paragraph of the "Security considerations" section, the same font | paragraph of the "Security considerations" section, the same font | |||
| format can be used to encode fonts with different types of glyph | format can be used to encode fonts with different types of glyph | |||
| data represented as either TrueType, PostScript (CFF) or SVG | data represented as either TrueType, PostScript (CFF) or SVG | |||
| outlines. Existing font rendering engines may not be able to | outlines. Existing font rendering engines may not be able to | |||
| process some of the particular outline formats, and downloading a | process some of the particular outline formats, and downloading a | |||
| font resource that contains unsupported glyph data format would | font resource that contains unsupported glyph data format would | |||
| result in inability of application to render and display text. | result in inability of application to render and display text. | |||
| Therefore, it would be extremely useful to clearly identify the | Therefore, it would be extremely useful to clearly identify the | |||
| format of the glyph outline data within a font using an optional | format of the glyph outline data within a font using an optional | |||
| parameter, and allow applications to make decisions about | parameter, and allow applications to make decisions about | |||
| downloading a particular font resource sooner. Please note that | downloading a particular font resource sooner. Please note that | |||
| as new outline formats may be defined in the future, the set of | as new outline formats may be defined in the future, the set of | |||
| allowed values for the optional parameter defined in this section | allowed values for the optional parameter defined in this section | |||
| may be extended. | may be extended. | |||
| Published specification: ISO/IEC 14496-22 "Open Font Format" (OFF) | Published specification: ISO/IEC 14496-22 "Open Font Format" (OFF) | |||
| specification being developed by ISO/IEC SC29/WG11. | specification [ISO.14496-22.2015] being developed by ISO/IEC SC29/ | |||
| WG11. | ||||
| Applications that use this media type: Any and all applications that | Applications that use this media type: Any and all applications that | |||
| are able to create, edit or display textual media content. | are able to create, edit or display textual media content. | |||
| Additional information: | Additional information: | |||
| Magic number(s): The TrueType fonts and OFF / OpenType fonts | Magic number(s): The TrueType fonts and OFF / OpenType fonts | |||
| containing TrueType outlines should use 0x00010000 as the | containing TrueType outlines should use 0x00010000 as the | |||
| 'sfnt' version number. | 'sfnt' version number. | |||
| The OFF / OpenType fonts containing CFF data should use the tag | The OFF / OpenType fonts containing CFF outlines should use the | |||
| 'OTTO' as 'sfnt' version number. | tag 'OTTO' as 'sfnt' version number. There is no magic number | |||
| for SVG outlines; these are always accompanied by either | ||||
| TrueType or CFF outlines and thus use the corresponding magic | ||||
| number. | ||||
| File extension(s): Font file extensions used for OFF / OpenType | File extension(s): Font file extensions used for OFF / OpenType | |||
| fonts: .ttf, .otf | fonts: .ttf, .otf | |||
| Typically, .ttf extension is only used for fonts containing | Typically, .ttf extension is only used for fonts containing | |||
| TrueType outlines, while .otf extension can be used for any | TrueType outlines, while .otf extension can be used for any | |||
| OpenType/OFF font, either with TrueType, CFF or SVG outlines. | OpenType/OFF font, either with TrueType, CFF or SVG outlines. | |||
| Macintosh file type code(s): (no code specified) | Macintosh file type code(s): (no code specified) | |||
| skipping to change at page 10, line 18 ¶ | skipping to change at page 11, line 5 ¶ | |||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Restrictions on usage: None | Restrictions on usage: None | |||
| Author: The ISO/IEC 14496-22 "Open Font Format" specification is a | Author: The ISO/IEC 14496-22 "Open Font Format" specification is a | |||
| product of the ISO/IEC JTC1 SC29/WG11. | product of the ISO/IEC JTC1 SC29/WG11. | |||
| Change controller: The ISO/IEC has change control over this | Change controller: The ISO/IEC has change control over this | |||
| specification. | specification. | |||
| 5.4. WOFF 1.0 | 7.4. Collection font type | |||
| Type name: font | ||||
| Subtype name: collection | ||||
| Required parameters: None. | ||||
| Optional parameters | ||||
| Name: Outlines Value: TTF, CFF, SVG | ||||
| This parameter can be used to specify the type of outlines | ||||
| supported by the font. Value "TTF" shall be used when a font | ||||
| resource contains glyph outlines in TrueType format, value | ||||
| "CFF" shall be used to identify fonts containing PostScript/CFF | ||||
| outlines, and value SVG shall be used to identify fonts that | ||||
| include SVG outlines. TTF, CFF or SVG outlines can be present | ||||
| in various combinations in the same font file, therefore, this | ||||
| optional parameter is a list containing one or more items, | ||||
| separated by commas, with optional whitespace. Order in the | ||||
| list is not significant. | ||||
| Encoding considerations: Binary. | ||||
| Interoperability considerations: As it was noted in the first | ||||
| paragraph of the "Security considerations" section, the same font | ||||
| format can be used to encode fonts with different types of glyph | ||||
| data represented as either TrueType, PostScript (CFF) or SVG | ||||
| outlines. Existing font rendering engines may not be able to | ||||
| process some of the particular outline formats, and downloading a | ||||
| font resource that contains unsupported glyph data format would | ||||
| result in inability of application to render and display text. | ||||
| Therefore, it would be extremely useful to clearly identify the | ||||
| format of the glyph outline data within a font using an optional | ||||
| parameter, and allow applications to make decisions about | ||||
| downloading a particular font resource sooner. Please note that | ||||
| as new outline formats may be defined in the future, the set of | ||||
| allowed values for the optional parameter defined in this section | ||||
| may be extended. | ||||
| Published specification: ISO/IEC 14496-22 "Open Font Format" (OFF) | ||||
| specification [ISO.14496-22.2015] being developed by ISO/IEC SC29/ | ||||
| WG11. | ||||
| Applications that use this media type: Any and all applications that | ||||
| are able to create, edit or display textual media content. | ||||
| Additional information: | ||||
| Magic number(s): The TrueType fonts and OFF / OpenType fonts | ||||
| containing TrueType outlines should use 0x00010000 as the | ||||
| 'sfnt' version number. | ||||
| The OFF / OpenType fonts containing CFF outlines should use the | ||||
| tag 'OTTO' as 'sfnt' version number. There is no magic number | ||||
| for SVG outlines; these are always accompanied by either | ||||
| TrueType or CFF outlines and thus use the corresponding magic | ||||
| number. | ||||
| File extension(s): Font file extensions used for OFF / TrueType | ||||
| and OpenType fonts: .ttc | ||||
| Macintosh file type code(s): (no code specified) | ||||
| @font-face Format: collection | ||||
| Fragment Identifiers A positive integer. For example, #2 refers | ||||
| to the second font in the collection. If a fragment is not | ||||
| specified, it is the same as #1 i.e. the first font in the | ||||
| collection. | ||||
| Person & email address to contact for further information: Vladimir | ||||
| Levantovsky (vladimir.levantovsky@monotype.com). | ||||
| Intended usage: COMMON | ||||
| Restrictions on usage: None | ||||
| Author: The ISO/IEC 14496-22 "Open Font Format" specification is a | ||||
| product of the ISO/IEC JTC1 SC29/WG11. | ||||
| Change controller: The ISO/IEC has change control over this | ||||
| specification. | ||||
| 7.5. WOFF 1.0 | ||||
| Type name: font | Type name: font | |||
| Subtype name: woff | Subtype name: woff | |||
| Required parameters: None. | Required parameters: None. | |||
| Optional parameters: None. | Optional parameters: None. | |||
| Encoding considerations: Binary. | Encoding considerations: Binary. | |||
| Interoperability considerations: None. | Interoperability considerations: None. | |||
| Published specification: This media type registration updates the | Published specification: This media type registration updates the | |||
| WOFF specification [3] at W3C. | WOFF specification [W3C.REC-WOFF-20121213] at W3C. | |||
| Applications that use this media type: WOFF is used by Web browsers, | Applications that use this media type: WOFF is used by Web browsers, | |||
| often in conjunction with HTML and CSS. | often in conjunction with HTML and CSS. | |||
| Additional information: | Additional information: | |||
| Magic number(s): The signature field in the WOFF header MUST | Magic number(s): The signature field in the WOFF header MUST | |||
| contain the "magic number" 0x774F4646 | contain the "magic number" 0x774F4646 | |||
| File extension(s): woff | File extension(s): woff | |||
| skipping to change at page 11, line 18 ¶ | skipping to change at page 13, line 41 ¶ | |||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Restrictions on usage: None | Restrictions on usage: None | |||
| Author: The WOFF specification is a work product of the World Wide | Author: The WOFF specification is a work product of the World Wide | |||
| Web Consortium's WebFonts Working Group. | Web Consortium's WebFonts Working Group. | |||
| Change controller: The W3C has change control over this | Change controller: The W3C has change control over this | |||
| specification. | specification. | |||
| 5.5. WOFF 2.0 | 7.6. WOFF 2.0 | |||
| Type name: font | Type name: font | |||
| Subtype name: woff2 | Subtype name: woff2 | |||
| Required parameters: None. | Required parameters: None. | |||
| Optional parameters: None. | Optional parameters: None. | |||
| Encoding considerations: Binary. | Encoding considerations: Binary. | |||
| Interoperability considerations: WOFF 2.0 is an improvement on WOFF | Interoperability considerations: WOFF 2.0 is an improvement on WOFF | |||
| 1.0. The two formats have different Internet Media Types, | 1.0. The two formats have different Internet Media Types, | |||
| different @font-face formats, and may be used in parallel. | different @font-face formats, and may be used in parallel. | |||
| Published specification: This media type registration is extracted | Published specification: This media type registration is extracted | |||
| from the WOFF 2.0 specification [4] at W3C. | from the WOFF 2.0 specification [W3C.WD-WOFF2-20150414] at W3C. | |||
| Applications that use this media type: WOFF 2.0 is used by Web | Applications that use this media type: WOFF 2.0 is used by Web | |||
| browsers, often in conjunction with HTML and CSS. | browsers, often in conjunction with HTML and CSS. | |||
| Additional information: | Additional information: | |||
| Magic number(s): The signature field in the WOFF header MUST | Magic number(s): The signature field in the WOFF header MUST | |||
| contain the "magic number" 0x774F4632 ('wOF2') | contain the "magic number" 0x774F4632 ('wOF2') | |||
| File extension(s): woff2 | File extension(s): woff2 | |||
| Macintosh file type code(s): (no code specified) | Macintosh file type code(s): (no code specified) | |||
| Macintosh Universal Type Identifier code: "org.w3c.woff2" | Macintosh Universal Type Identifier code: "org.w3c.woff2" | |||
| @font-face Format: woff2 | @font-face Format: woff2 | |||
| Fragment Identifiers none. | ||||
| Fragment Identifiers Optional, for collections encoded as WOFF | ||||
| 2.0. A positive integer. For example, #2 refers to the second | ||||
| font in the collection. If a fragment is not specified, it is | ||||
| the same as #1 i.e. the first font in the collection (or the | ||||
| only font, if it is not a collection). If a fragment is | ||||
| specified, and the WOFF does not encode a collection, the | ||||
| fragment is ignored. | ||||
| Person & email address to contact for further information: Chris | Person & email address to contact for further information: Chris | |||
| Lilley (www-font@w3.org). | Lilley (www-font@w3.org). | |||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Restrictions on usage: None | Restrictions on usage: None | |||
| Author: The WOFF2 specification is a work product of the World Wide | Author: The WOFF2 specification is a work product of the World Wide | |||
| Web Consortium's WebFonts Working Group. | Web Consortium's WebFonts Working Group. | |||
| Change controller: The W3C has change control over this | Change controller: The W3C has change control over this | |||
| specification. | specification. | |||
| 6. References | 8. References | |||
| 6.1. URIs | 8.1. Normative References | |||
| [1] http://httparchive.org/ | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| trends.php?s=All&minlabel=Nov+15+2010&maxlabel=Feb+15+2015 | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | ||||
| <http://www.rfc-editor.org/info/rfc2119>. | ||||
| [2] http://goo.gl/zbDhUN | [W3C.CR-css-fonts-3-20131003] | |||
| Daggett, J., "CSS Fonts Module Level 3", World Wide Web | ||||
| Consortium CR CR-css-fonts-3-20131003, October 2013, | ||||
| <http://www.w3.org/TR/2013/CR-css-fonts-3-20131003>. | ||||
| [3] http://www.w3.org/TR/WOFF | [ISO.14496-22.2015] | |||
| International Organization for Standardization, "Coding of | ||||
| audio-visual objects Part 22: Open Font Format", | ||||
| ISO Standard 14496-22, 10 2015, | ||||
| <http://standards.iso.org/ittf/PubliclyAvailableStandards/ | ||||
| c066391_ISO_IEC_14496-22_2015.zip>. | ||||
| [4] http://www.w3.org/TR/WOFF2 | [W3C.REC-WOFF-20121213] | |||
| Kew, J., Leming, T., and E. Blokland, "WOFF File Format | ||||
| 1.0", World Wide Web Consortium Recommendation REC-WOFF- | ||||
| 20121213, December 2012, | ||||
| <http://www.w3.org/TR/2012/REC-WOFF-20121213>. | ||||
| [W3C.WD-WOFF2-20150414] | ||||
| Levantovsky, V. and R. Levien, "WOFF File Format 2.0", | ||||
| World Wide Web Consortium WD WD-WOFF2-20150414, April | ||||
| 2015, <http://www.w3.org/TR/2015/WD-WOFF2-20150414>. | ||||
| 8.2. Informative References | ||||
| [HTTP-Archive-Trends] | ||||
| Kuetell, D., "HTTP Archive trend analysis", March 2015, | ||||
| <http://httparchive.org/trends.php?s=All&minlabel=Nov+15+2 | ||||
| 010&maxlabel=Feb+15+2015#perFonts>. | ||||
| [Font-Media-Type-Analysis] | ||||
| Kuetell, D., "Web Font Media Type (mime type) Analysis | ||||
| 2015", 2015, <http://goo.gl/zbDhUN>. | ||||
| 8.3. URIs | ||||
| [1] https://github.com/svgeesus/ietf-justfont | ||||
| [2] https://github.com/svgeesus/ietf-justfont/issues | ||||
| [3] mailto:justfont@ietf.org | ||||
| Author's Address | Author's Address | |||
| Chris Lilley | Chris Lilley | |||
| W3C | W3C | |||
| 2004 Route des Lucioles | 2004 Route des Lucioles | |||
| Sophia Antipolis 06902 | Sophia Antipolis 06902 | |||
| France | France | |||
| Email: chris@w3.org | Email: chris@w3.org | |||
| End of changes. 35 change blocks. | ||||
| 61 lines changed or deleted | 224 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||