Opentype

OpenType Specification Checks
  • opentype/caret_slope: Check hhea.caretSlopeRise and hhea.caretSlopeRun

  • opentype/cff2_call_depth: Is the CFF2 subr/gsubr call depth > 10?

  • opentype/cff_ascii_strings: Does the font’s CFF table top dict strings fit into the ASCII range?

  • opentype/cff_call_depth: Is the CFF subr/gsubr call depth > 10?

  • opentype/cff_deprecated_operators: Does the font use deprecated CFF operators or operations?

  • opentype/code_pages: Check code page character ranges

  • opentype/dsig: The font should not need a DSIG table anymore.

  • opentype/family/bold_italic_unique_for_nameid1: Check that OS/2.fsSelection bold & italic settings are unique for each NameID1

  • opentype/family/consistent_family_name: Verify that family names in the name table are consistent across all fonts in the family. Checks Typographic Family name (nameID 16) if present, otherwise uses Font Family name (nameID 1)

  • opentype/family/equal_font_versions: Make sure all font files have the same version value.

  • opentype/family/max_4_fonts_per_family_name: Verify that each group of fonts with the same nameID 1 has maximum of 4 fonts.

  • opentype/family_naming_recommendations: Font follows the family naming recommendations?

  • opentype/family/panose_familytype: Fonts have consistent PANOSE family type?

  • opentype/family/underline_thickness: Fonts have consistent underline thickness?

  • opentype/font_version: Checking font version fields (head and name table).

  • opentype/fsselection: Checking OS/2 fsSelection value.

  • opentype/fvar/axis_ranges_correct: Axes and named instances fall within correct ranges?

  • opentype/fvar/regular_coords_correct: Axes and named instances fall within correct ranges?

  • opentype/gdef_mark_chars: Check mark characters are in GDEF mark glyph class.

  • opentype/gdef_non_mark_chars: Check GDEF mark glyph class doesn’t have characters that are not marks.

  • opentype/gdef_spacing_marks: Check glyphs in mark glyph class are non-spacing.

  • opentype/glyf_non_transformed_duplicate_components: Check glyphs do not have duplicate components which have the same x,y coordinates.

  • opentype/glyf_unused_data: Is there any unused data at the end of the glyf table?

  • opentype/italic_angle: Checking post.italicAngle value.

  • opentype/kern_table: Is there a usable “kern” table declared in the font?

  • opentype/layout_valid_feature_tags: Does the font have any invalid feature tags?

  • opentype/layout_valid_language_tags: Does the font have any invalid language tags?

  • opentype/layout_valid_script_tags: Does the font have any invalid script tags?

  • opentype/loca/maxp_num_glyphs: Does the number of glyphs in the loca table match the maxp table?

  • opentype/mac_style: Checking head.macStyle value.

  • opentype/maxadvancewidth: MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?

  • opentype/monospace: Checking correctness of monospaced metadata.

  • opentype/name/empty_records: Check name table for empty records.

  • opentype/name/match_familyname_fullfont: Does full font name begin with the font family name?

  • opentype/name/postscript_name_consistency: Name table ID 6 (PostScript name) must be consistent across platforms.

  • opentype/name/postscript_vs_cff: CFF table FontName must match name table ID 6 (PostScript name).

  • opentype/points_out_of_bounds: Check for points out of bounds.

  • opentype/postscript_name: PostScript name follows OpenType specification requirements?

  • opentype/post_table_version: Font has correct post table version?

  • opentype/slant_direction: Checking direction of slnt axis angles.

  • opentype/STAT/ital_axis: Ensure VFs have ‘ital’ STAT axis.

  • opentype/unitsperem: Checking unitsPerEm value is reasonable.

  • opentype/unwanted_aat_tables: Are there unwanted Apple tables?

  • opentype/varfont/distinct_instance_records: Validates that all of the instance records in a given font have distinct data.

  • opentype/varfont/family_axis_ranges: Check that family axis ranges are indentical

  • opentype/varfont/foundry_defined_tag_name: Validate foundry-defined design-variation axis tag names.

  • opentype/varfont/same_size_instance_records: Validates that all of the instance records in a given font have the same size.

  • opentype/varfont/STAT_axis_record_for_each_axis: All fvar axes have a correspondent Axis Record on STAT table?

  • opentype/varfont/valid_default_instance_nameids: Validates subfamilyNameID and postScriptNameID for the default instance record

  • opentype/varfont/valid_nameids: Validates that all of the name IDs in an instance record are within the correct range

  • opentype/vendor_id: Checking OS/2 achVendID against configuration.

  • opentype/weight_class_fvar: Checking if OS/2 usWeightClass matches fvar.

  • opentype/xavgcharwidth: Check if OS/2 xAvgCharWidth is correct.