Google Fonts
Included profiles: Universal
- Article Checks
googlefonts/article/images: Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
- Metadata Checks
googlefonts/metadata/axisregistry_bounds: Validate METADATA.pb axes values are within gf_axisregistry bounds.
googlefonts/metadata/axisregistry_valid_tags: Validate METADATA.pb axes tags are defined in gf_axisregistry.
googlefonts/metadata/broken_links: Does METADATA.pb copyright field contain broken links?
googlefonts/metadata/canonical_style_names: METADATA.pb: Font styles are named canonically?
googlefonts/metadata/canonical_weight_value: METADATA.pb: Check that font weight has a canonical value.
googlefonts/metadata/can_render_samples: Check samples can be rendered.
googlefonts/metadata/category: Ensure METADATA.pb category field is valid.
googlefonts/metadata/category_hints: Check if category on METADATA.pb matches what can be inferred from the family name.
googlefonts/metadata/consistent_axis_enumeration: Validate VF axes match the ones declared on METADATA.pb.
googlefonts/metadata/consistent_repo_urls: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
googlefonts/metadata/date_added: Validate ‘date_added’ field on METADATA.pb.
googlefonts/metadata/designer_profiles: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
googlefonts/metadata/designer_values: Multiple values in font designer field in METADATA.pb must be separated by commas.
googlefonts/metadata/empty_designer: At least one designer is declared in METADATA.pb
googlefonts/metadata/escaped_strings: Ensure METADATA.pb does not use escaped strings.
googlefonts/metadata/family_directory_name: Check font family directory name.
googlefonts/metadata/familyname: Check that METADATA.pb family values are all the same.
googlefonts/metadata/filenames: METADATA.pb: Font filenames match font.filename entries?
googlefonts/metadata/has_regular: Ensure there is a regular style defined in METADATA.pb.
googlefonts/metadata/includes_production_subsets: Check METADATA.pb includes production subsets.
googlefonts/metadata/match_filename_postscript: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
googlefonts/metadata/match_fullname_postscript: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
googlefonts/metadata/match_name_familyname: METADATA.pb: Check font name is the same as family name.
googlefonts/metadata/match_weight_postscript: METADATA.pb weight matches postScriptName for static fonts.
googlefonts/metadata/menu_and_latin: METADATA.pb should contain at least “menu” and “latin” subsets.
googlefonts/metadata/minisite_url: METADATA.pb: Validate family.minisite_url field.
googlefonts/metadata/nameid/family_and_full_names: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
googlefonts/metadata/nameid/font_name: METADATA.pb font.name value should be same as the family name declared on the name table.
googlefonts/metadata/nameid/post_script_name: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
googlefonts/metadata/parses: Check METADATA.pb parse correctly.
googlefonts/metadata/primary_script: METADATA.pb: Check for primary_script
googlefonts/metadata/regular_is_400: METADATA.pb: Regular should be 400.
googlefonts/metadata/single_cjk_subset: Check METADATA.pb file only contains a single CJK subset.
googlefonts/metadata/subsets_order: METADATA.pb subsets should be alphabetically ordered.
googlefonts/metadata/undeclared_fonts: Ensure METADATA.pb lists all font binaries.
googlefonts/metadata/unique_full_name_values: METADATA.pb: check if fonts field only has unique “full_name” values.
googlefonts/metadata/unique_weight_style_pairs: METADATA.pb: check if fonts field only contains unique style:weight pairs.
googlefonts/metadata/unreachable_subsetting: Check for codepoints not covered by METADATA subsets.
googlefonts/metadata/unsupported_subsets: Check for METADATA subsets with zero support.
googlefonts/metadata/valid_filename_values: METADATA.pb font.filename field contains font name in right format?
googlefonts/metadata/valid_full_name_values: METADATA.pb font.full_name field contains font name in right format?
googlefonts/metadata/valid_nameid25: Check name ID 25 to end with “Italic” for Italic VFs.
googlefonts/metadata/valid_post_script_name_values: METADATA.pb font.post_script_name field contains font name in right format?
googlefonts/metadata/weightclass: Check METADATA.pb font weights are correct.
- Glyphset Checks
googlefonts/glyphsets/shape_languages
- Description Checks
googlefonts/description/broken_links: Does DESCRIPTION file contain broken links?
googlefonts/description/eof_linebreak: DESCRIPTION.en_us.html should end in a linebreak.
googlefonts/description/family_update: On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.
googlefonts/description/git_url: Does DESCRIPTION file contain a upstream Git repo URL?
googlefonts/description/has_article: Check for presence of an ARTICLE.en_us.html file
googlefonts/description/has_unsupported_elements: Check the description doesn’t contain unsupported html elements
googlefonts/description/min_length: DESCRIPTION.en_us.html must have more than 200 bytes.
googlefonts/description/urls: URLs on DESCRIPTION file must not display http(s) prefix.
googlefonts/description/valid_html: Is this a proper HTML snippet?
- Family Checks
googlefonts/family/equal_codepoint_coverage: Fonts have equal codepoint coverage
googlefonts/family/italics_have_roman_counterparts: Ensure Italic styles have Roman counterparts.
googlefonts/family/tnum_horizontal_metrics: All tabular figures must have the same width across the RIBBI-family.
- Name table checks
googlefonts/family_name_compliance: Check family name for GF Guide compliance.
googlefonts/name/line_breaks: Name table entries should not contain line-breaks.
- Licensing Checks
googlefonts/family/has_license: Check font has a license.
googlefonts/font_copyright: Copyright notices match canonical pattern in fonts
googlefonts/license/OFL_body_text: Check OFL body text is correct.
googlefonts/license/OFL_copyright: Check license file has good copyright string.
googlefonts/metadata/copyright: METADATA.pb: Copyright notice is the same in all fonts?
googlefonts/metadata/license: METADATA.pb license is “APACHE2”, “UFL” or “OFL”?
googlefonts/metadata/reserved_font_name: Copyright notice on METADATA.pb should not contain ‘Reserved Font Name’.
googlefonts/name/license: Check copyright namerecords match license file.
googlefonts/name/license_url: License URL matches License text on name table?
googlefonts/name/rfn: Name table strings must not contain the string ‘Reserved Font Name’.
- Repository Checks
googlefonts/repo/dirname_matches_nameid_1: Directory name in GFonts repo structure must match NameID 1 of the regular.
googlefonts/repo/fb_report: A font repository should not include FontBakery report files
googlefonts/repo/sample_image: Check README.md has a sample image.
googlefonts/repo/upstream_yaml_has_required_fields: Check upstream.yaml file contains all required fields
googlefonts/repo/vf_has_static_fonts: A static fonts directory, if present, must contain manually hinted fonts
googlefonts/repo/zip_files: A font repository should not include ZIP files
- Shaping Checks
dotted_circle: Ensure dotted circle glyph is present and can attach marks.
shaping/collides: Check that no collisions are found while shaping
shaping/forbidden: Check that no forbidden glyphs are found while shaping
shaping/regression: Check that texts shape as per expectation
soft_dotted: Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.
- Outline Checks
outline_alignment_miss: Are there any misaligned on-curve points?
outline_colinear_vectors: Do any segments have colinear vectors?
outline_direction: Check the direction of the outermost contour in each glyph
outline_jaggy_segments: Do outlines contain any jaggy segments?
outline_semi_vertical: Do outlines contain any semi-vertical or semi-horizontal lines?
outline_short_segments: Are any segments inordinately short?
- Font File Checks
googlefonts/axes_match: Check if the axes match between the font and the Google Fonts version.
googlefonts/axisregistry/fvar_axis_defaults: Validate defaults on fvar table match registered fallback names in GFAxisRegistry.
googlefonts/canonical_filename: Checking file is named canonically.
googlefonts/cjk_vertical_metrics: Check font follows the Google Fonts CJK vertical metric schema
googlefonts/cjk_vertical_metrics_regressions: Check if the vertical metrics of a CJK family are similar to the same family hosted on Google Fonts.
googlefonts/colorfont_tables: Ensure font has the expected color font tables.
googlefonts/font_names: Check font names are correct
googlefonts/fstype: Checking OS/2 fsType does not impose restrictions.
googlefonts/fvar_instances: Check variable font instances
googlefonts/gasp: Is the Grid-fitting and Scan-conversion Procedure (‘gasp’) table set to optimize rendering?
googlefonts/glyph_coverage: Check Google Fonts glyph coverage.
googlefonts/has_ttfautohint_params: Font has ttfautohint params?
googlefonts/meta/script_lang_tags: Ensure fonts have ScriptLangTags declared on the ‘meta’ table.
googlefonts/name/description_max_length: Description strings in the name table must not exceed 200 characters.
googlefonts/name/familyname_first_char: Make sure family name does not begin with a digit.
googlefonts/name/mandatory_entries: Font has all mandatory ‘name’ table entries?
googlefonts/name/version_format: Version format is correct in ‘name’ table?
googlefonts/old_ttfautohint: Font has old ttfautohint applied?
googlefonts/production_glyphs_similarity: Glyphs are similiar to Google Fonts version?
googlefonts/render_own_name: Ensure font can render its own name.
googlefonts/STAT/axis_order: Check axis ordering on the STAT table.
googlefonts/STAT/axisregistry: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
googlefonts/STAT/compulsory_axis_values: Check a font’s STAT table contains compulsory Axis Values.
googlefonts/unitsperem: Stricter unitsPerEm criteria for Google Fonts.
googlefonts/use_typo_metrics: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
googlefonts/varfont/generate_static: Check a static ttf can be generated from a variable font.
googlefonts/varfont/has_HVAR: Check that variable fonts have an HVAR table.
googlefonts/vendor_id: Checking OS/2 achVendID.
googlefonts/version_bump: Version number has increased since previous release on Google Fonts?
googlefonts/vertical_metrics: Check font follows the Google Fonts vertical metric schema
googlefonts/vertical_metrics_regressions: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
googlefonts/weightclass: Check the OS/2 usWeightClass is appropriate for the font’s best SubFamily name.