Skip to content
This repository has been archived by the owner on Jan 28, 2019. It is now read-only.

Validator Error Coercion Notes

Tal Leming edited this page Nov 4, 2017 · 2 revisions

This is a work in progress.

Errors

metainfo.plist

(to come)

groups.plist

all groups

  • structure is not a dict
  • group name is not a string
  • glyph list is not a list
  • group name is empty string

kerning groups

  • group name is "public.kern1."
  • group name is "public.kern2."
  • glyph list contains an item that is not a string
  • a glyph in the glyph list is in one or more other same side kerning groups

fontinfo.plist

  • structure is not a dict

values

  • ascender value is not a number
  • capHeight value is not a number
  • copyright value is not a string
  • descender value is not a number
  • familyName value is not a string
  • guidelines value is not a list
  • guidelines member value is not a dict
  • guidelines member value does not contain x or y
  • guidelines member value contains x but no y or angle
  • guidelines member value contains y but no x or angle
  • guidelines member value x is not a number
  • guidelines member value y is not a number
  • guidelines member value angle is not a number
  • guidelines member value angle is not between 0 and 360
  • guidelines member value name is not a string
  • guidelines member value color is not a string
  • guidelines member value color does not contain four parts
  • guidelines member value color part is not a number
  • guidelines member value color part is not between 0 and 1
  • guidelines member value identifier is not a string
  • guidelines member value identifier is an empty string
  • guidelines member value identifier is too long
  • guidelines member value identifier contains an illegal character
  • guidelines member value has a duplicate identifier
  • italicAngle value is not a number
  • macintoshFONDFamilyID value is not a integer
  • macintoshFONDName value is not a string
  • note value is not a string
  • openTypeGaspRangeRecords value is not a list of dicts
  • openTypeGaspRangeRecords member value is not a dict
  • openTypeGaspRangeRecords member value rangeMaxPPEM is not a non-negative int
  • openTypeGaspRangeRecords member values rangeMaxPPEM are not in sorted order
  • openTypeGaspRangeRecords member value rangeGaspBehavior is not a list
  • openTypeGaspRangeRecords member value rangeGaspBehavior contains an item that is not a dict
  • openTypeGaspRangeRecords member value rangeGaspBehavior is not an int
  • openTypeGaspRangeRecords member value rangeGaspBehavior is not in [0, 1, 2, 3]
  • openTypeHeadCreated value is not a string
  • openTypeHeadCreated value is not 19 characters long
  • openTypeHeadCreated value is not properly formatted
  • openTypeHeadFlags value is not a list of integers
  • openTypeHeadFlags member value is not a list of integers
  • openTypeHeadFlags member value not in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
  • openTypeHeadLowestRecPPEM value is not a integer
  • openTypeHeadLowestRecPPEM member value is not a non-negative number
  • openTypeHheaAscender value is not a integer
  • openTypeHheaCaretOffset value is not a integer
  • openTypeHheaCaretSlopeRise value is not a integer
  • openTypeHheaCaretSlopeRun value is not a integer
  • openTypeHheaDescender value is not a integer
  • openTypeHheaLineGap value is not a integer
  • openTypeNameCompatibleFullName value is not a string
  • openTypeNameDescription value is not a string
  • openTypeNameDesigner value is not a string
  • openTypeNameDesignerURL value is not a string
  • openTypeNameLicense value is not a string
  • openTypeNameLicenseURL value is not a string
  • openTypeNameManufacturer value is not a string
  • openTypeNameManufacturerURL value is not a string
  • openTypeNamePreferredFamilyName value is not a string
  • openTypeNamePreferredSubfamilyName value is not a string
  • openTypeNameRecords value is not a list of dicts
  • openTypeNameRecords member contains nameID that is not an int
  • openTypeNameRecords member contains platformID that is not an int
  • openTypeNameRecords member contains encodingID that is not an int
  • openTypeNameRecords member contains languageID that is not an int
  • openTypeNameRecords member contains string that is not a basestring
  • openTypeNameSampleText value is not a string
  • openTypeNameUniqueID value is not a string
  • openTypeNameVersion value is not a string
  • openTypeNameWWSFamilyName value is not a string
  • openTypeNameWWSSubfamilyName value is not a string
  • openTypeOS2CodePageRanges value is not a list of integers
  • openTypeOS2CodePageRanges member value not in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63]
  • openTypeOS2FamilyClass value is not a list of integers
  • openTypeOS2FamilyClass member value is not a list of two ints
  • openTypeOS2FamilyClass member value classID is not between 0 and 14
  • openTypeOS2FamilyClass member value subClassID is not between 0 and 15
  • openTypeOS2Panose value is not a list of 10 non-negative integers
  • openTypeOS2Selection value is not a list of integers
  • openTypeOS2Selection member value not in [1, 2, 3, 4, 7, 8, 9]
  • openTypeOS2StrikeoutPosition value is not a integer
  • openTypeOS2StrikeoutSize value is not a integer
  • openTypeOS2SubscriptXOffset value is not a integer
  • openTypeOS2SubscriptXSize value is not a integer
  • openTypeOS2SubscriptYOffset value is not a integer
  • openTypeOS2SubscriptYSize value is not a integer
  • openTypeOS2SuperscriptXOffset value is not a integer
  • openTypeOS2SuperscriptXSize value is not a integer
  • openTypeOS2SuperscriptYOffset value is not a integer
  • openTypeOS2SuperscriptYSize value is not a integer
  • openTypeOS2Type value is not a list of integers
  • openTypeOS2Type member value not in [0, 1, 2, 3, 8, 9]
  • openTypeOS2TypoAscender value is not a integer
  • openTypeOS2TypoDescender value is not a integer
  • openTypeOS2TypoLineGap value is not a integer
  • openTypeOS2UnicodeRanges value is not a list of integers
  • openTypeOS2UnicodeRanges member value not in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127]
  • openTypeOS2VendorID value is not a string
  • openTypeOS2WeightClass value is not a non-negative integer
  • openTypeOS2WidthClass value is not a integer
  • openTypeOS2WidthClass member value is not in the range 0 to 9
  • openTypeOS2WinAscent member value is not a non-negative number
  • openTypeOS2WinDescent member value is not a non-negative number
  • openTypeVheaCaretOffset value is not a integer
  • openTypeVheaCaretSlopeRise value is not a integer
  • openTypeVheaCaretSlopeRun value is not a integer
  • openTypeVheaVertTypoAscender value is not a integer
  • openTypeVheaVertTypoDescender value is not a integer
  • openTypeVheaVertTypoLineGap value is not a integer
  • postscriptBlueFuzz value is not a number
  • postscriptBlueScale value is not a number
  • postscriptBlueShift value is not a number
  • postscriptBlueValues value is not a list of integers
  • postscriptBlueValues contains more than 14 items
  • postscriptBlueValues contains an odd number of items
  • postscriptOtherBlues value is not a list of integers
  • postscriptOtherBlues contains more than 10 items
  • postscriptOtherBlues contains an odd number of items
  • postscriptDefaultCharacter value is not a string
  • postscriptDefaultWidthX value is not a number
  • postscriptFamilyBlues value is not a list of integers
  • postscriptFamilyBlues contains more than 14 items
  • postscriptFamilyBlues contains an odd number of items
  • postscriptFamilyOtherBlues value is not a list of integers
  • postscriptFamilyOtherBlues contains more than 10 items
  • postscriptFamilyOtherBlues contains an odd number of items
  • postscriptFontName value is not a string
  • postscriptForceBold value is not a boolean
  • postscriptFullName value is not a string
  • postscriptIsFixedPitch value is not a boolean
  • postscriptNominalWidthX value is not a number
  • postscriptSlantAngle value is not a number
  • postscriptStemSnapH value is not a list of integers
  • postscriptStemSnapH value contains more than 12 items
  • postscriptStemSnapV value is not a list of integers
  • postscriptStemSnapV value contains more than 12 items
  • postscriptUnderlinePosition value is not a number
  • postscriptUnderlineThickness value is not a number
  • postscriptUniqueID value is not a integer
  • postscriptWeightName value is not a string
  • postscriptWindowsCharacterSet value is not a list of integer
  • postscriptWindowsCharacterSet member value is not in the range 1 to 21
  • styleMapFamilyName value is not a string
  • styleMapStyleName value is not a string
  • styleMapStyleName value is not in ["regular", "italic", "bold", "bold italic"]
  • styleName value is not a string
  • trademark value is not a string
  • unitsPerEm member value is not a non-negative number
  • versionMajor value is not a integer
  • versionMinor member value is not a non-negative integer
  • woffMajorVersion member value is not a non-negative integer
  • woffMetadataCopyright value is not a dict
  • woffMetadataCopyright member value fails fontInfoWOFFMetadataCopyrightValidator
  • woffMetadataCredits value is not a dict
  • woffMetadataCredits member value fails fontInfoWOFFMetadataCreditsValidator
  • woffMetadataDescription value is not a dict
  • woffMetadataDescription member value fails fontInfoWOFFMetadataDescriptionValidator
  • woffMetadataExtensions value is not a list
  • woffMetadataExtensions member value fails fontInfoWOFFMetadataExtensionsValidator
  • woffMetadataLicense value is not a dict
  • woffMetadataLicense member value fails fontInfoWOFFMetadataLicenseValidator
  • woffMetadataLicensee value is not a dict
  • woffMetadataLicensee member value fails fontInfoWOFFMetadataLicenseeValidator
  • woffMetadataTrademark value is not a dict
  • woffMetadataTrademark member value fails fontInfoWOFFMetadataTrademarkValidator
  • woffMetadataUniqueID value is not a dict
  • woffMetadataUniqueID member value fails fontInfoWOFFMetadataUniqueIDValidator
  • woffMetadataVendor value is not a dict
  • woffMetadataVendor member value fails fontInfoWOFFMetadataVendorValidator
  • woffMinorVersion value is not a integer
  • woffMinorVersion value is not a non-negative integer
  • xHeight value is not a number
  • year value is not a integer

kerning.plist

  • data does not conform to the Mapping object
  • key is not a string
  • value does not conform to the Mapping object
  • sub-key is not a string
  • sub-value is not a number

lib.plist

  • data is not a dict
  • key is not a string
  • public.glyphOrder value is not a list
  • item in public.glyphOrder value is not a string

features.fea

  • no errors will be raised

layercontents.plist

  • data is not a list
  • item in list is not a list
  • item in list does not contain two items
  • item in list does not contain only strings
  • directory name in list item is an empty string
  • directory name in list item does not start with "glyphs." and is not "glyphs"
  • no directory exists for the directory name
  • "public.default" is the name for a directory that is not the "glyphs" directory
  • a layer name is used for more than one directory
  • a directory is referenced by more than one layer name
  • default directory is not present

images/

  • file does not begin with the PNG signature

data/

  • no errors will be raised

glyphs/

  • contents.plist doesn't exist (GlyphSet considers it empty)

glyphs/contents.plist

  • data is not a dict
  • key is not a string
  • value is not a string

glyphs/layerinfo.plist

  • data is not a dict
  • key is unknown
  • value for color is not a string
  • value for color is not a string
  • value for lib is not a dict

glyphs/.glif

(to come)