Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reported WARNS #7

Open
vv-monsalve opened this issue Nov 25, 2020 · 2 comments
Open

Reported WARNS #7

vv-monsalve opened this issue Nov 25, 2020 · 2 comments

Comments

@vv-monsalve
Copy link

vv-monsalve commented Nov 25, 2020

Taken from the FB checks performed after PR #2573 was updated pointing at Version 1.110-2.

Outline Quality Warns

These Warn are related to the Outline Quality Checklist, please inspect it and make sure your font is ready by fulfilling it.

WARN: Do any segments have colinear vectors?
--- Rationale ---

This test looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.

This test is not run for variable fonts, as they may legitimately have colinear
vectors.


  • WARN The following glyphs have colinear vectors:
    • k3th3th4: L<<1571.0,689.0>--<1571.0,688.0>> -> L<<1571.0,688.0>--<1571.0,674.0>>
    • k3th3th4u1: L<<1571.0,689.0>--<1571.0,688.0>> -> L<<1571.0,688.0>--<1571.0,674.0>>
    • k3th3th4u2: L<<1571.0,689.0>--<1571.0,688.0>> -> L<<1571.0,688.0>--<1571.0,674.0>>
    • mukkaal: L<<922.0,11.0>--<923.0,414.0>> -> L<<923.0,414.0>--<922.0,615.0>> and nhcil: L<<922.0,11.0>--<923.0,413.0>> -> L<<923.0,413.0>--<922.0,614.0>> [code: found-colinear-vectors]
WARN: Do outlines contain any jaggy segments?
--- Rationale ---

This test heuristically detects outline segments which form a particularly
small angle, indicative of an outline error. This may cause false positives in
cases such as extreme ink traps, so should be regarded as advisory and backed
up by manual inspection.


  • WARN The following glyphs have jaggy segments:
    • _k1k1u1: B<<1121.0,-321.0>-<1163.0,-317.0>-<1152.0,-319.0>>/B<<1152.0,-319.0>-<1179.0,-315.0>-<1198.0,-297.0>> = 1.877877447285382
    • _k1u2: B<<855.0,-468.0>-<903.0,-468.0>-<896.0,-469.0>>/B<<896.0,-469.0>-<941.0,-464.0>-<941.0,-410.0>> = 1.7899106082458724
    • h1l3: B<<1035.0,-100.5>-<977.0,-87.0>-<933.0,-83.0>>/B<<933.0,-83.0>-<1048.0,-123.0>-<1048.0,-275.0>> = 13.984579118075901
    • h1l3u1: B<<1035.0,-100.5>-<977.0,-87.0>-<933.0,-83.0>>/B<<933.0,-83.0>-<1048.0,-123.0>-<1048.0,-275.0>> = 13.984579118075901
    • h1l3u2: B<<1035.0,-100.5>-<977.0,-87.0>-<933.0,-83.0>>/B<<933.0,-83.0>-<1048.0,-123.0>-<1048.0,-275.0>> = 13.984579118075901
    • k1l3: B<<796.0,-100.5>-<738.0,-87.0>-<694.0,-83.0>>/B<<694.0,-83.0>-<809.0,-123.0>-<809.0,-275.0>> = 13.984579118075901
    • k1l3u1: B<<796.0,-100.5>-<738.0,-87.0>-<694.0,-83.0>>/B<<694.0,-83.0>-<809.0,-123.0>-<809.0,-275.0>> = 13.984579118075901
    • k1l3u2: B<<796.0,-100.5>-<738.0,-87.0>-<694.0,-83.0>>/B<<694.0,-83.0>-<809.0,-123.0>-<809.0,-275.0>> = 13.984579118075901
    • k3l3: B<<666.0,-110.5>-<608.0,-97.0>-<564.0,-93.0>>/B<<564.0,-93.0>-<679.0,-133.0>-<679.0,-285.0>> = 13.984579118075901
    • k3l3u1: B<<666.0,-110.5>-<608.0,-97.0>-<564.0,-93.0>>/B<<564.0,-93.0>-<679.0,-133.0>-<679.0,-285.0>> = 13.984579118075901 and 36 more. [code: found-jaggy-segments]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---

This test detects line segments which are nearly, but not quite, exactly
horizontal or vertical. Sometimes such lines are created by design, but often
they are indicative of a design error.

This test is disabled for italic styles, which often contain nearly-upright
lines.


  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
    • endash: L<<100.0,404.0>--<101.0,524.0>>
    • endash: L<<892.0,524.0>--<891.0,404.0>>
    • k1th1u2: L<<1194.0,470.0>--<653.0,471.0>>
    • mukkaal: L<<922.0,11.0>--<923.0,414.0>>
    • mukkaal: L<<923.0,414.0>--<922.0,615.0>>
    • nhcil: L<<922.0,11.0>--<923.0,413.0>>
    • nhcil: L<<923.0,413.0>--<922.0,614.0>>
    • s1th2: L<<3049.0,71.0>--<3050.0,603.0>>
    • s1th2r1: L<<3049.0,71.0>--<3050.0,603.0>>
    • s1th2u1: L<<3049.0,71.0>--<3050.0,603.0>> and 60 more. [code: found-semi-vertical]
@vv-monsalve
Copy link
Author

vv-monsalve commented Jan 27, 2021

Glyphs related Warns

The following warns were reported for the Bold weight. Please, inspect the complete FB report and ensure everything is ok for all fonts in Gayathri.

WARN: Check if each glyph has the recommended amount of contours.
--- Rationale ---

Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only be
constructured in a handful of ways. This means a glyph's contour count will
only differ slightly amongst different fonts, e.g a 'g' could either be 2 or 3
contours, depending on whether its double story or single story.

However, a quotedbl should have 2 contours, unless the font belongs to a
display family.

This check currently does not cover variable fonts because there's plenty of
alternative ways of constructing glyphs with multiple outlines for each feature
in a VarFont. The expected contour count data for this check is currently
optimized for the typical construction of glyphs in static fonts.


  • WARN This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

Glyph name: uni00AD Contours detected: 0 Expected: 1
Glyph name: ZWNJ Contours detected: 1 Expected: 0
Glyph name: ZWJ Contours detected: 2 Expected: 0
Glyph name: uni25CC Contours detected: 8 Expected: 16 or 12
Glyph name: rupee Contours detected: 1 Expected: 3
Glyph name: uni00AD Contours detected: 0 Expected: 1
Glyph name: uni25CC Contours detected: 8 Expected: 16 or 12 [code: contour-count]

WARN: Check mark characters are in GDEF mark glyph class)
--- Rationale ---

Glyphs in the GDEF mark glyph class should be non-spacing.
Spacing glyphs in the GDEF mark glyph class may have incorrect anchor
positioning that was only intended for building composite glyphs during design.


  • WARN The following spacing glyphs may be in the GDEF mark glyph class by mistake:
    dotreph and xx [code: spacing-mark-glyphs]
WARN: Check mark characters are in GDEF mark glyph class
--- Rationale ---

Mark characters should be in the GDEF mark glyph class.


  • WARN The following mark characters could be in the GDEF mark glyph class:
    U+0D00, U+0D01, U+0D02, U+0D03, U+0D3B, U+0D3C, U+0D3E, U+0D3F, U+0D40, U+0D41, U+0D42, U+0D43, U+0D44, U+0D46, U+0D47, U+0D48, U+0D4A, U+0D4B, U+0D4C, U+0D57, U+0D62 and U+0D63 [code: mark-chars]
WARN: Check GDEF mark glyph class doesn't have characters that are not marks)
--- Rationale ---

Glyphs in the GDEF mark glyph class become non-spacing and may be repositioned
if they have mark anchors.
Only combining mark glyphs should be in that class. Any non-mark glyph must not
be in that class, in particular spacing glyphs.


  • WARN The following non-mark characters should not be in the GDEF mark glyph class:
    U+0D4E [code: non-mark-chars]

@vv-monsalve vv-monsalve changed the title Outlines WARNS Reported WARNS Jan 27, 2021
@vv-monsalve
Copy link
Author

The fails reported for v1.220 fonts

WARN: Glyphs are similiar to Google Fonts version? (com.google.fonts/check/production_glyphs_similarity)
  • WARN Following glyphs differ greatly from Google Fonts version:
    • Adieresis
    • Ccaron
    • Cdotaccent
    • Dcaron
    • Ecaron
    • Edieresis
    • Edotaccent
    • Gdotaccent
    • Iacute
    • Idieresis
    • Ncaron
    • Odieresis
    • Ograve
    • Rcaron
    • Scaron
    • Udieresis
    • Zcaron
    • Zdotaccent
    • _k1k1r1
    • adieresis
    • agrave
    • backslash
    • braceright
    • bracketright
    • bullet
    • ccaron
    • cdotaccent
    • colon
    • comma
    • dieresis
    • ecaron
    • edieresis
    • edotaccent
    • ellipsis
    • gdotaccent
    • greater
    • guillemotright
    • iacute
    • idieresis
    • k1k1r1
    • ncaron
    • oacute
    • odieresis
    • parenright
    • period
    • q
    • quotedblbase
    • quotedblleft
    • quotedblright
    • quoteleft
    • quoteright
    • quotesinglbase
    • rcaron
    • s1k1k1r1
    • scaron
    • semicolon
    • udieresis
    • uni01D2
    • uni01D3
    • uni01D4
    • ydieresis
    • zcaron and zdotaccent
WARN: Ensure fonts have ScriptLangTags declared on the 'meta' table. (com.google.fonts/check/meta/script_lang_tags)

The OpenType 'meta' table originated at Apple. Microsoft added it to OT with just two DataMap records:

  • dlng: comma-separated ScriptLangTags that indicate which scripts, or languages and scripts, with possible variants, the font is designed for.

  • slng: comma-separated ScriptLangTags that indicate which scripts, or languages and scripts, with possible variants, the font supports.

The slng structure is intended to describe which languages and scripts the font overall supports. For example, a Traditional Chinese font that also contains Latin characters, can indicate Hant,Latn, showing that it supports Hant, the Traditional Chinese variant of the Hani script, and it also supports the Latn script.

The dlng structure is far more interesting. A font may contain various glyphs, but only a particular subset of the glyphs may be truly "leading" in the design, while other glyphs may have been included for technical reasons. Such a Traditional Chinese font could only list Hant there, showing that it’s designed for Traditional Chinese, but the font would omit Latn, because the developers don’t think the font is really recommended for purely Latin-script use.

The tags used in the structures can comprise just script, or also language and script. For example, if a font has Bulgarian Cyrillic alternates in the locl feature for the cyrl BGR OT languagesystem, it could also indicate in dlng explicitly that it supports bul-Cyrl. (Note that the scripts and languages in meta use the ISO language and script codes, not the OpenType ones).

This check ensures that the font has the meta table containing the slng and dlng structures.

All families in the Google Fonts collection should contain the 'meta' table. Windows 10 already uses it when deciding on which fonts to fall back to. The Google Fonts API and also other environments could use the data for smarter filtering. Most importantly, those entries should be added to the Noto fonts.

In the font making process, some environments store this data in external files already. But the meta table provides a convenient way to store this inside the font file, so some tools may add the data, and unrelated tools may read this data. This makes the solution much more portable and universal.

  • WARN This font file does not have a 'meta' table. [code: lacks-meta-table]
WARN: Check font contains no unreachable glyphs (com.google.fonts/check/unreachable_glyphs)

Glyphs are either accessible directly through Unicode codepoints or through substitution rules.

In Color Fonts, glyphs are also referenced by the COLR table.

Any glyphs not accessible by either of these means are redundant and serve only to increase the font's file size.

  • WARN The following glyphs could not be reached by codepoint or substitution rules:

    • _ch3

    • _ch3r1

    • _ch3u1

    • _ch3u2

    • _h1

    • _k2

    • _n1n1

    • _n1n1u1

    • _n1n1u2

    • _n1r1

    • _n1r3

    • _p1r3

    • _p3

    • _p4

    • _s1r2

    • _th1r2

    • _th1th1

    • _th1th1u1

    • _th1th1u2

    • _th3r1

    • _th4

    • _th4r1

    • _th4r2

    • _v1

    • _z1r1

    • _z1r3

    • k1th1r2

    • n1n1r2

    • n1r2

    • n1th1r2

    • n1th3r2

    • nht3r1

    • nht4r1

    • njch2r1

    • nonmarkingreturn

    • th1p4r1

    • th1r2

    • th1th1r2

    • th2_half

    • th3r2

    • th4r2

    • And uni0000
      [code: unreachable-glyphs]

WARN: Check if each glyph has the recommended amount of contours. (com.google.fonts/check/contour_count)

Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only be constructured in a handful of ways. This means a glyph's contour count will only differ slightly amongst different fonts, e.g a 'g' could either be 2 or 3 contours, depending on whether its double story or single story.

However, a quotedbl should have 2 contours, unless the font belongs to a display family.

This check currently does not cover variable fonts because there's plenty of alternative ways of constructing glyphs with multiple outlines for each feature in a VarFont. The expected contour count data for this check is currently optimized for the typical construction of glyphs in static fonts.

  • WARN This font has a 'Soft Hyphen' character (codepoint 0x00AD) which is supposed to be zero-width and invisible, and is used to mark a hyphenation possibility within a word in the absence of or overriding dictionary hyphenation. It is mostly an obsolete mechanism now, and the character is only included in fonts for legacy codepage coverage. [code: softhyphen]
  • WARN This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

- Glyph name: uni25CC	Contours detected: 8	Expected: 16 or 12

- Glyph name: rupee	Contours detected: 1	Expected: 3 

- And Glyph name: uni25CC	Contours detected: 8	Expected: 16 or 12

[code: contour-count]

WARN: Does the font have a DSIG table? (com.google.fonts/check/dsig)

Microsoft Office 2013 and below products expect fonts to have a digital signature declared in a DSIG table in order to implement OpenType features. The EOL date for Microsoft Office 2013 products is 4/11/2023. This issue does not impact Microsoft Office 2016 and above products.

As we approach the EOL date, it is now considered better to completely remove the table.

But if you still want your font to support OpenType features on Office 2013, then you may find it handy to add a fake signature on a placeholder DSIG table by running one of the helper scripts provided at https://github.com/googlefonts/gftools

Reference: fonttools/fontbakery#1845

  • WARN This font has a digital signature (DSIG table) which is only required - even if only a placeholder - on old programs like MS Office 2013 in order to work properly.
    The current recommendation is to completely remove the DSIG table. [code: found-DSIG]
WARN: Check glyphs in mark glyph class are non-spacing. (com.google.fonts/check/gdef_spacing_marks)

Glyphs in the GDEF mark glyph class should be non-spacing.

Spacing glyphs in the GDEF mark glyph class may have incorrect anchor positioning that was only intended for building composite glyphs during design.

  • WARN The following spacing glyphs may be in the GDEF mark glyph class by mistake:
    dotreph (U+0D4E) and xx (U+0D4D) [code: spacing-mark-glyphs]
WARN: Check mark characters are in GDEF mark glyph class. (com.google.fonts/check/gdef_mark_chars)

Mark characters should be in the GDEF mark glyph class.

  • WARN The following mark characters could be in the GDEF mark glyph class:
    l1 (U+0D62), l2 (U+0D63), r1 (U+0D43), r2 (U+0D44), u1 (U+0D41) and u2 (U+0D42) [code: mark-chars]
WARN: Check GDEF mark glyph class doesn't have characters that are not marks. (com.google.fonts/check/gdef_non_mark_chars)

Glyphs in the GDEF mark glyph class become non-spacing and may be repositioned if they have mark anchors.

Only combining mark glyphs should be in that class. Any non-mark glyph must not be in that class, in particular spacing glyphs.

  • WARN The following non-mark characters should not be in the GDEF mark glyph class:
    U+0D4E [code: non-mark-chars]
WARN: Do any segments have colinear vectors? (com.google.fonts/check/outline_colinear_vectors)

This check looks for consecutive line segments which have the same angle. This normally happens if an outline point has been added by accident.

This check is not run for variable fonts, as they may legitimately have colinear vectors.

  • WARN The following glyphs have colinear vectors:

    • mukkaal (U+0D75): L<<922.0,11.0>--<923.0,414.0>> -> L<<923.0,414.0>--<922.0,615.0>>

    • And nhcil (U+0D7A): L<<922.0,11.0>--<923.0,413.0>> -> L<<923.0,413.0>--<922.0,614.0>> [code: found-colinear-vectors]

WARN: Do outlines contain any semi-vertical or semi-horizontal lines? (com.google.fonts/check/outline_semi_vertical)

This check detects line segments which are nearly, but not quite, exactly horizontal or vertical. Sometimes such lines are created by design, but often they are indicative of a design error.

This check is disabled for italic styles, which often contain nearly-upright lines.

  • WARN The following glyphs have semi-vertical/semi-horizontal lines:

    • endash (U+2013): L<<100.0,404.0>--<101.0,524.0>>

    • endash (U+2013): L<<892.0,524.0>--<891.0,404.0>>

    • mukkaal (U+0D75): L<<922.0,11.0>--<923.0,414.0>>

    • mukkaal (U+0D75): L<<923.0,414.0>--<922.0,615.0>>

    • nhcil (U+0D7A): L<<922.0,11.0>--<923.0,413.0>>

    • nhcil (U+0D7A): L<<923.0,413.0>--<922.0,614.0>>

    • sh (U+0D37): L<<1188.0,440.0>--<1189.0,724.0>>

    • And sh (U+0D37): L<<1312.0,724.0>--<1311.0,448.0>> [code: found-semi-vertical]


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant