googlefonts / lovers-quarrel Goto Github PK
View Code? Open in Web Editor NEWLovers Quarrel fonts
License: SIL Open Font License 1.1
Lovers Quarrel fonts
License: SIL Open Font License 1.1
Diacritics
Glyphs
at
alignment and spacingOT Features
Hi @crystaltype, these are the main reports from diffenator
Please inspect them and recover the missing glyphs from the published font if needed; also review/recover the glyphs that have major changes, e.g. euro
OE
Oslash
Fontbakery version: 0.7.34
--- Rationale --- A font's filename must be composed in the following manner: <familyname>-<stylename>.ttf - Nunito-Regular.ttf, - Oswald-BoldItalic.ttf Variable fonts must list the axis tags in alphabetical order in square brackets and separated by commas: - Roboto[wdth,wght].ttf - Familyname-Italic[wght].ttf
--- Rationale --- The fsType in the OS/2 table is a legacy DRM-related field. Fonts in the Google Fonts collection must have it set to zero (also known as "Installable Embedding"). This setting indicates that the fonts can be embedded in documents and permanently installed by applications on remote systems. More detailed info is available at: https://docs.microsoft.com/en-us/typography/opentype/spec/os2#fstype
No such DRM restrictions can be enabled on the Google Fonts collection, so the fsType field must be set to zero (Installable Embedding) instead. [code: drm]
--- Rationale --- Google Fonts expects that fonts in its collection support at least the minimal set of characters defined in the `GF-latin-core` glyph-set.
๐ฅ FAIL NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars]
๐ฅ FAIL NAMEID #10 contains symbols that should be replaced by '(c)'. [code: unwanted-chars]
๐ฅ FAIL NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars]
๐ฅ FAIL NAMEID #10 contains symbols that should be replaced by '(c)'. [code: unwanted-chars]
--- Rationale --- Google Fonts expects variable fonts, static ttfs and static otfs to have differing OS/2 usWeightClass values. For Variable Fonts, Thin-Black must be 100-900 For static ttfs, Thin-Black can be 100-900 or 250-900 For static otfs, Thin-Black must be 250-900 If static otfs are set lower than 250, text may appear blurry in legacy Windows applications. Glyphsapp users can change the usWeightClass value of an instance by adding a 'weightClass' customParameter.
--- Rationale --- The OpenType spec requires ASCII for the POSTSCRIPT_NAME (nameID 6). For COPYRIGHT_NOTICE (nameID 0) ASCII is required because that string should be the same in CFF fonts which also have this requirement in the OpenType spec. Note: A common place where we find non-ASCII strings is on name table entries with NameID > 18, which are expressly for localising the ASCII-only IDs into Hindi / Arabic / etc.
๐ฅ FAIL Name Table entry: Copyright notices should match a pattern similar to: "Copyright 2019 The Familyname Project Authors (git url)"
But instead we have got:
"ยฉ2004 Robert E. Leuschke __ This font is not Shareware and may not be copied, sold, distributed or shared without permission from Gideon, Inc. 114 Long and Winding Road, St. Peters, MO 63376 USA Serial Number 6MY362F3OS2NT46O1S" [code: bad-notice-format]
๐ฅ FAIL Name Table entry: Copyright notices should match a pattern similar to: "Copyright 2019 The Familyname Project Authors (git url)"
But instead we have got:
"ยฉ2004 Robert E. Leuschke โโ This font is not Shareware and may not be copied, sold, distributed or shared without permission from Gideon, Inc. 114 Long and Winding Road, St. Peters, MO 63376 USA Serial Number 6MY362F3OS2NT46O1S" [code: bad-notice-format]
--- Rationale --- This setup is meant to ensure consistent rendering quality for fonts across all devices (with different rendering/hinting capabilities). Below is the snippet of instructions we expect to see in the fonts: B8 01 FF PUSHW 0x01FF 85 SCANCTRL (unconditinally turn on dropout control mode) B0 04 PUSHB 0x04 8D SCANTYPE (enable smart dropout control) "Smart dropout control" means activating rules 1, 2 and 5: Rule 1: If a pixel's center falls within the glyph outline, that pixel is turned on. Rule 2: If a contour falls exactly on a pixel's center, that pixel is turned on. Rule 5: If a scan line between two adjacent pixel centers (either vertical or horizontal) is intersected by both an on-Transition contour and an off-Transition contour and neither of the pixels was already turned on by rules 1 and 2, turn on the pixel which is closer to the midpoint between the on-Transition contour and off-Transition contour. This is "Smart" dropout control. For more detailed info (such as other rules not enabled in this snippet), please refer to the TrueType Instruction Set documentation.
gftools fix-nonhinting
script. [code: lacks-smart-dropout]--- Rationale --- Hinted fonts must have head table flag bit 3 set. Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of Head::flags decides whether PPEM should be rounded. This bit should always be set for hinted fonts. Note: Bit 3 = Force ppem to integer values for all internal scaler math; May use fractional ppem sizes if this bit is clear;
This can be accomplished by using the 'gftools fix-hinting' command.
--- Rationale --- There are some entries on the name table that may include more than one line of text. The Google Fonts team, though, prefers to keep the name table entries short and simple without line breaks. For instance, some designers like to include the full text of a font license in the "copyright notice" entry, but for the GFonts collection this entry should only mention year, author and other basic info in a manner enforced by com.google.fonts/check/font_copyright
--- Rationale --- A font's winAscent and winDescent values should be greater than the head table's yMax, abs(yMin) values. If they are less than these values, clipping can occur on Windows platforms (https://github.com/RedHatBrand/Overpass/issues/33). If the font includes tall/deep writing systems such as Arabic or Devanagari, the winAscent and winDescent can be greater than the yMax and abs(yMin) to accommodate vowel marks. When the win Metrics are significantly greater than the upm, the linespacing can appear too loose. To counteract this, enabling the OS/2 fsSelection bit 7 (Use_Typo_Metrics), will force Windows to use the OS/2 typo values instead. This means the font developer can control the linespacing with the typo values, whilst avoiding clipping by setting the win values to values greater than the yMax and abs(yMin).
๐ฅ FAIL Space and non-breaking space have differing width: The space glyph named space is 184 font units wide, non-breaking space named (uni00A0) is 255 font units wide, and both should be positive and the same. GlyphsApp has "Sidebearing arithmetic" (https://glyphsapp.com/tutorials/spacing) which allows you to set the non-breaking space width to always equal the space width. [code: different-widths]
--- Rationale --- There have been bugs rendering variable fonts with nested components. Additionally, some static fonts with nested components have been reported to have rendering and printing issues. For more info, see: * https://github.com/googlefonts/fontbakery/issues/2961 * https://github.com/arrowtype/recursive/issues/412
--- Rationale --- Microsoft keeps a list of font vendors and their respective contact info. This list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored in the achVendID field of the OS/2 table. Registering your ID is not mandatory, but it is a good practice since some applications may display the type designer / type foundry contact info on some dialog and also because that info will be visible on Microsoft's website: https://docs.microsoft.com/en-us/typography/vendors/ This check verifies whether or not a given font's vendor ID is registered in that list or if it has some of the default values used by the most common font editors. Each new FontBakery release includes a cached copy of that list of vendor IDs. If you registered recently, you're safe to ignore warnings emitted by this check, since your ID will soon be included in one of our upcoming releases.
--- Rationale --- Traditionally version 0 'gasp' tables were set so that font sizes below 8 ppem had no grid fitting but did have antialiasing. From 9-16 ppem, just grid fitting. And fonts above 17ppem had both antialiasing and grid fitting toggled on. The use of accelerated graphics cards and higher resolution screens make this approach obsolete. Microsoft's DirectWrite pushed this even further with much improved rendering built into the OS and apps. In this scenario it makes sense to simply toggle all 4 flags ON for all font sizes.
--- 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.
The following glyphs do not have the recommended number of contours:
Glyph name: percent Contours detected: 4 Expected: 5
Glyph name: ampersand Contours detected: 5 Expected: 1, 2 or 3
Glyph name: zero Contours detected: 1 Expected: 2 or 3
Glyph name: A Contours detected: 6 Expected: 2
Glyph name: B Contours detected: 7 Expected: 2 or 3
Glyph name: C Contours detected: 4 Expected: 1
Glyph name: D Contours detected: 8 Expected: 2
Glyph name: E Contours detected: 5 Expected: 1
Glyph name: F Contours detected: 4 Expected: 1
Glyph name: G Contours detected: 7 Expected: 1
Glyph name: H Contours detected: 5 Expected: 1
Glyph name: I Contours detected: 5 Expected: 1
Glyph name: J Contours detected: 3 Expected: 1
Glyph name: K Contours detected: 6 Expected: 1 or 2
Glyph name: L Contours detected: 7 Expected: 1
Glyph name: M Contours detected: 9 Expected: 1
Glyph name: N Contours detected: 7 Expected: 1
Glyph name: O Contours detected: 7 Expected: 2
Glyph name: P Contours detected: 9 Expected: 1 or 2
Glyph name: Q Contours detected: 7 Expected: 2
Glyph name: R Contours detected: 5 Expected: 1 or 2
Glyph name: S Contours detected: 8 Expected: 1
Glyph name: T Contours detected: 4 Expected: 1
Glyph name: U Contours detected: 5 Expected: 1
Glyph name: V Contours detected: 4 Expected: 1
Glyph name: W Contours detected: 5 Expected: 1 or 2
Glyph name: X Contours detected: 5 Expected: 1
Glyph name: Y Contours detected: 7 Expected: 1
Glyph name: Z Contours detected: 6 Expected: 1
Glyph name: a Contours detected: 1 Expected: 2
Glyph name: b Contours detected: 1 Expected: 2
Glyph name: h Contours detected: 2 Expected: 1
Glyph name: l Contours detected: 2 Expected: 1
Glyph name: q Contours detected: 1 Expected: 2
Glyph name: y Contours detected: 2 Expected: 1
Glyph name: asciitilde Contours detected: 2 Expected: 1
Glyph name: section Contours detected: 9 Expected: 2
Glyph name: copyright Contours detected: 4 Expected: 3
Glyph name: registered Contours detected: 5 Expected: 3 or 4
Glyph name: Agrave Contours detected: 7 Expected: 3
Glyph name: Aacute Contours detected: 7 Expected: 3
Glyph name: Acircumflex Contours detected: 7 Expected: 3
Glyph name: Atilde Contours detected: 7 Expected: 3
Glyph name: Adieresis Contours detected: 8 Expected: 4
Glyph name: Aring Contours detected: 8 Expected: 3 or 4
Glyph name: AE Contours detected: 5 Expected: 2
Glyph name: Ccedilla Contours detected: 5 Expected: 1 or 2
Glyph name: Egrave Contours detected: 6 Expected: 2
Glyph name: Eacute Contours detected: 6 Expected: 2
Glyph name: Ecircumflex Contours detected: 6 Expected: 2
Glyph name: Edieresis Contours detected: 7 Expected: 3
Glyph name: Igrave Contours detected: 6 Expected: 2
Glyph name: Iacute Contours detected: 6 Expected: 2
Glyph name: Icircumflex Contours detected: 6 Expected: 2
Glyph name: Idieresis Contours detected: 7 Expected: 3
Glyph name: Eth Contours detected: 9 Expected: 2
Glyph name: Ntilde Contours detected: 8 Expected: 2
Glyph name: Ograve Contours detected: 8 Expected: 3
Glyph name: Oacute Contours detected: 8 Expected: 3
Glyph name: Ocircumflex Contours detected: 8 Expected: 3
Glyph name: Otilde Contours detected: 8 Expected: 3
Glyph name: Odieresis Contours detected: 9 Expected: 4
Glyph name: Oslash Contours detected: 7 Expected: 2 or 3
Glyph name: Ugrave Contours detected: 6 Expected: 2
Glyph name: Uacute Contours detected: 6 Expected: 2
Glyph name: Ucircumflex Contours detected: 6 Expected: 2
Glyph name: Udieresis Contours detected: 7 Expected: 3
Glyph name: Yacute Contours detected: 8 Expected: 2
Glyph name: agrave Contours detected: 2 Expected: 3
Glyph name: aacute Contours detected: 2 Expected: 3
Glyph name: acircumflex Contours detected: 2 Expected: 3
Glyph name: atilde Contours detected: 2 Expected: 3
Glyph name: adieresis Contours detected: 3 Expected: 4
Glyph name: aring Contours detected: 3 Expected: 4
Glyph name: eth Contours detected: 3 Expected: 2
Glyph name: yacute Contours detected: 3 Expected: 2
Glyph name: ydieresis Contours detected: 4 Expected: 3
Glyph name: Amacron Contours detected: 7 Expected: 3
Glyph name: amacron Contours detected: 2 Expected: 3
Glyph name: Abreve Contours detected: 7 Expected: 3
Glyph name: abreve Contours detected: 2 Expected: 3
Glyph name: Aogonek Contours detected: 7 Expected: 2 or 3
Glyph name: Cacute Contours detected: 5 Expected: 2
Glyph name: Ccaron Contours detected: 5 Expected: 2
Glyph name: Dcaron Contours detected: 9 Expected: 3
Glyph name: Dcroat Contours detected: 9 Expected: 2
Glyph name: dcroat Contours detected: 3 Expected: 2
Glyph name: Emacron Contours detected: 6 Expected: 2
Glyph name: Edotaccent Contours detected: 6 Expected: 2
Glyph name: Eogonek Contours detected: 6 Expected: 1 or 2
Glyph name: eogonek Contours detected: 3 Expected: 2
Glyph name: Ecaron Contours detected: 6 Expected: 2
Glyph name: uni0122 Contours detected: 8 Expected: 2
Glyph name: Itilde Contours detected: 6 Expected: 2
Glyph name: Imacron Contours detected: 6 Expected: 2
Glyph name: Iogonek Contours detected: 6 Expected: 1 or 2
Glyph name: uni0136 Contours detected: 7 Expected: 2 or 3
Glyph name: Lacute Contours detected: 8 Expected: 2
Glyph name: lacute Contours detected: 3 Expected: 2
Glyph name: uni013B Contours detected: 8 Expected: 2
Glyph name: uni013C Contours detected: 3 Expected: 2
Glyph name: Lcaron Contours detected: 8 Expected: 2
Glyph name: lcaron Contours detected: 3 Expected: 2
Glyph name: Lslash Contours detected: 8 Expected: 1
Glyph name: lslash Contours detected: 3 Expected: 1
Glyph name: Nacute Contours detected: 8 Expected: 2
Glyph name: uni0145 Contours detected: 8 Expected: 2
Glyph name: Ncaron Contours detected: 8 Expected: 2
Glyph name: Eng Contours detected: 7 Expected: 1
Glyph name: Omacron Contours detected: 8 Expected: 3
Glyph name: Ohungarumlaut Contours detected: 9 Expected: 4
Glyph name: OE Contours detected: 9 Expected: 2
Glyph name: Racute Contours detected: 6 Expected: 3
Glyph name: uni0156 Contours detected: 6 Expected: 3
Glyph name: Rcaron Contours detected: 6 Expected: 3
Glyph name: Sacute Contours detected: 9 Expected: 2
Glyph name: Scedilla Contours detected: 9 Expected: 1 or 2
Glyph name: Scaron Contours detected: 9 Expected: 2
Glyph name: uni0162 Contours detected: 5 Expected: 1 or 2
Glyph name: Tcaron Contours detected: 5 Expected: 2
Glyph name: Tbar Contours detected: 5 Expected: 1
Glyph name: tbar Contours detected: 2 Expected: 1
Glyph name: Utilde Contours detected: 6 Expected: 2
Glyph name: Umacron Contours detected: 6 Expected: 2
Glyph name: Uring Contours detected: 7 Expected: 3
Glyph name: Uhungarumlaut Contours detected: 7 Expected: 3
Glyph name: Uogonek Contours detected: 6 Expected: 1
Glyph name: uogonek Contours detected: 2 Expected: 1
Glyph name: Wcircumflex Contours detected: 6 Expected: 2
Glyph name: Ycircumflex Contours detected: 8 Expected: 2
Glyph name: ycircumflex Contours detected: 3 Expected: 2
Glyph name: Ydieresis Contours detected: 9 Expected: 3
Glyph name: Zacute Contours detected: 7 Expected: 2
Glyph name: Zdotaccent Contours detected: 7 Expected: 2
Glyph name: Zcaron Contours detected: 7 Expected: 2
Glyph name: Ohorn Contours detected: 8 Expected: 2 or 3
Glyph name: ohorn Contours detected: 3 Expected: 2
Glyph name: Uhorn Contours detected: 6 Expected: 1
Glyph name: uhorn Contours detected: 2 Expected: 1
Glyph name: Wgrave Contours detected: 6 Expected: 2
Glyph name: Wacute Contours detected: 6 Expected: 2
Glyph name: Wdieresis Contours detected: 7 Expected: 3
Glyph name: uni1E9E Contours detected: 16 Expected: 1
Glyph name: uni1EA0 Contours detected: 7 Expected: 3
Glyph name: uni1EA1 Contours detected: 2 Expected: 3
Glyph name: uni1EA2 Contours detected: 7 Expected: 3
Glyph name: uni1EA3 Contours detected: 2 Expected: 3
Glyph name: uni1EA4 Contours detected: 8 Expected: 4
Glyph name: uni1EA5 Contours detected: 3 Expected: 4
Glyph name: uni1EA6 Contours detected: 8 Expected: 4
Glyph name: uni1EA7 Contours detected: 3 Expected: 4
Glyph name: uni1EA8 Contours detected: 8 Expected: 4
Glyph name: uni1EA9 Contours detected: 3 Expected: 4
Glyph name: uni1EAA Contours detected: 8 Expected: 4
Glyph name: uni1EAB Contours detected: 3 Expected: 4
Glyph name: uni1EAC Contours detected: 8 Expected: 4
Glyph name: uni1EAD Contours detected: 3 Expected: 4
Glyph name: uni1EAE Contours detected: 8 Expected: 4
Glyph name: uni1EAF Contours detected: 3 Expected: 4
Glyph name: uni1EB0 Contours detected: 8 Expected: 4
Glyph name: uni1EB1 Contours detected: 3 Expected: 4
Glyph name: uni1EB2 Contours detected: 8 Expected: 4
Glyph name: uni1EB3 Contours detected: 3 Expected: 4
Glyph name: uni1EB4 Contours detected: 8 Expected: 4
Glyph name: uni1EB5 Contours detected: 3 Expected: 4
Glyph name: uni1EB6 Contours detected: 8 Expected: 4
Glyph name: uni1EB7 Contours detected: 3 Expected: 4
Glyph name: uni1EB8 Contours detected: 6 Expected: 2
Glyph name: uni1EBA Contours detected: 6 Expected: 2
Glyph name: uni1EBC Contours detected: 6 Expected: 2
Glyph name: uni1EBE Contours detected: 7 Expected: 3
Glyph name: uni1EC0 Contours detected: 7 Expected: 3
Glyph name: uni1EC2 Contours detected: 7 Expected: 3
Glyph name: uni1EC4 Contours detected: 7 Expected: 3
Glyph name: uni1EC6 Contours detected: 7 Expected: 3
Glyph name: uni1EC8 Contours detected: 6 Expected: 2
Glyph name: uni1ECA Contours detected: 6 Expected: 2
Glyph name: uni1ECC Contours detected: 8 Expected: 3
Glyph name: uni1ECE Contours detected: 8 Expected: 3
Glyph name: uni1ED0 Contours detected: 9 Expected: 4
Glyph name: uni1ED2 Contours detected: 9 Expected: 4
Glyph name: uni1ED4 Contours detected: 9 Expected: 4
Glyph name: uni1ED6 Contours detected: 9 Expected: 4
Glyph name: uni1ED8 Contours detected: 9 Expected: 4
Glyph name: uni1EDA Contours detected: 9 Expected: 3 or 4
Glyph name: uni1EDB Contours detected: 4 Expected: 3
Glyph name: uni1EDC Contours detected: 9 Expected: 3 or 4
Glyph name: uni1EDD Contours detected: 4 Expected: 3
Glyph name: uni1EDE Contours detected: 9 Expected: 3 or 4
Glyph name: uni1EDF Contours detected: 4 Expected: 3
Glyph name: uni1EE0 Contours detected: 9 Expected: 3 or 4
Glyph name: uni1EE1 Contours detected: 4 Expected: 3
Glyph name: uni1EE2 Contours detected: 9 Expected: 3 or 4
Glyph name: uni1EE3 Contours detected: 4 Expected: 3
Glyph name: uni1EE4 Contours detected: 6 Expected: 2
Glyph name: uni1EE6 Contours detected: 6 Expected: 2
Glyph name: uni1EE8 Contours detected: 7 Expected: 2
Glyph name: uni1EE9 Contours detected: 3 Expected: 2
Glyph name: uni1EEA Contours detected: 7 Expected: 2
Glyph name: uni1EEB Contours detected: 3 Expected: 2
Glyph name: uni1EEC Contours detected: 7 Expected: 2
Glyph name: uni1EED Contours detected: 3 Expected: 2
Glyph name: uni1EEE Contours detected: 7 Expected: 2
Glyph name: uni1EEF Contours detected: 3 Expected: 2
Glyph name: uni1EF0 Contours detected: 7 Expected: 2
Glyph name: uni1EF1 Contours detected: 3 Expected: 2
Glyph name: Ygrave Contours detected: 8 Expected: 2
Glyph name: ygrave Contours detected: 3 Expected: 2
Glyph name: uni1EF4 Contours detected: 8 Expected: 2
Glyph name: uni1EF5 Contours detected: 3 Expected: 2
Glyph name: uni1EF6 Contours detected: 8 Expected: 2
Glyph name: uni1EF7 Contours detected: 3 Expected: 2
Glyph name: uni1EF8 Contours detected: 8 Expected: 2
Glyph name: uni1EF9 Contours detected: 3 Expected: 2
Glyph name: trademark Contours detected: 7 Expected: 2
Glyph name: fl Contours detected: 3 Expected: 1 or 2
Glyph name: A Contours detected: 6 Expected: 2
Glyph name: AE Contours detected: 5 Expected: 2
Glyph name: Aacute Contours detected: 7 Expected: 3
Glyph name: Abreve Contours detected: 7 Expected: 3
Glyph name: Acircumflex Contours detected: 7 Expected: 3
Glyph name: Adieresis Contours detected: 8 Expected: 4
Glyph name: Agrave Contours detected: 7 Expected: 3
Glyph name: Amacron Contours detected: 7 Expected: 3
Glyph name: Aogonek Contours detected: 7 Expected: 2 or 3
Glyph name: Aring Contours detected: 8 Expected: 3 or 4
Glyph name: Atilde Contours detected: 7 Expected: 3
Glyph name: B Contours detected: 7 Expected: 2 or 3
Glyph name: C Contours detected: 4 Expected: 1
Glyph name: Cacute Contours detected: 5 Expected: 2
Glyph name: Ccaron Contours detected: 5 Expected: 2
Glyph name: Ccedilla Contours detected: 5 Expected: 1 or 2
Glyph name: D Contours detected: 8 Expected: 2
Glyph name: Dcaron Contours detected: 9 Expected: 3
Glyph name: Dcroat Contours detected: 9 Expected: 2
Glyph name: E Contours detected: 5 Expected: 1
Glyph name: Eacute Contours detected: 6 Expected: 2
Glyph name: Ecaron Contours detected: 6 Expected: 2
Glyph name: Ecircumflex Contours detected: 6 Expected: 2
Glyph name: Edieresis Contours detected: 7 Expected: 3
Glyph name: Edotaccent Contours detected: 6 Expected: 2
Glyph name: Egrave Contours detected: 6 Expected: 2
Glyph name: Emacron Contours detected: 6 Expected: 2
Glyph name: Eng Contours detected: 7 Expected: 1
Glyph name: Eogonek Contours detected: 6 Expected: 1 or 2
Glyph name: Eth Contours detected: 9 Expected: 2
Glyph name: F Contours detected: 4 Expected: 1
Glyph name: G Contours detected: 7 Expected: 1
Glyph name: H Contours detected: 5 Expected: 1
Glyph name: I Contours detected: 5 Expected: 1
Glyph name: Iacute Contours detected: 6 Expected: 2
Glyph name: Icircumflex Contours detected: 6 Expected: 2
Glyph name: Idieresis Contours detected: 7 Expected: 3
Glyph name: Igrave Contours detected: 6 Expected: 2
Glyph name: Imacron Contours detected: 6 Expected: 2
Glyph name: Iogonek Contours detected: 6 Expected: 1 or 2
Glyph name: Itilde Contours detected: 6 Expected: 2
Glyph name: J Contours detected: 3 Expected: 1
Glyph name: K Contours detected: 6 Expected: 1 or 2
Glyph name: L Contours detected: 7 Expected: 1
Glyph name: Lacute Contours detected: 8 Expected: 2
Glyph name: Lcaron Contours detected: 8 Expected: 2
Glyph name: Lslash Contours detected: 8 Expected: 1
Glyph name: M Contours detected: 9 Expected: 1
Glyph name: N Contours detected: 7 Expected: 1
Glyph name: Nacute Contours detected: 8 Expected: 2
Glyph name: Ncaron Contours detected: 8 Expected: 2
Glyph name: Ntilde Contours detected: 8 Expected: 2
Glyph name: O Contours detected: 7 Expected: 2
Glyph name: OE Contours detected: 9 Expected: 2
Glyph name: Oacute Contours detected: 8 Expected: 3
Glyph name: Ocircumflex Contours detected: 8 Expected: 3
Glyph name: Odieresis Contours detected: 9 Expected: 4
Glyph name: Ograve Contours detected: 8 Expected: 3
Glyph name: Ohorn Contours detected: 8 Expected: 2 or 3
Glyph name: Ohungarumlaut Contours detected: 9 Expected: 4
Glyph name: Omacron Contours detected: 8 Expected: 3
Glyph name: Oslash Contours detected: 7 Expected: 2 or 3
Glyph name: Otilde Contours detected: 8 Expected: 3
Glyph name: P Contours detected: 9 Expected: 1 or 2
Glyph name: Q Contours detected: 7 Expected: 2
Glyph name: R Contours detected: 5 Expected: 1 or 2
Glyph name: Racute Contours detected: 6 Expected: 3
Glyph name: Rcaron Contours detected: 6 Expected: 3
Glyph name: S Contours detected: 8 Expected: 1
Glyph name: Sacute Contours detected: 9 Expected: 2
Glyph name: Scaron Contours detected: 9 Expected: 2
Glyph name: T Contours detected: 4 Expected: 1
Glyph name: Tbar Contours detected: 5 Expected: 1
Glyph name: Tcaron Contours detected: 5 Expected: 2
Glyph name: U Contours detected: 5 Expected: 1
Glyph name: Uacute Contours detected: 6 Expected: 2
Glyph name: Ucircumflex Contours detected: 6 Expected: 2
Glyph name: Udieresis Contours detected: 7 Expected: 3
Glyph name: Ugrave Contours detected: 6 Expected: 2
Glyph name: Uhorn Contours detected: 6 Expected: 1
Glyph name: Uhungarumlaut Contours detected: 7 Expected: 3
Glyph name: Umacron Contours detected: 6 Expected: 2
Glyph name: Uogonek Contours detected: 6 Expected: 1
Glyph name: Uring Contours detected: 7 Expected: 3
Glyph name: Utilde Contours detected: 6 Expected: 2
Glyph name: V Contours detected: 4 Expected: 1
Glyph name: W Contours detected: 5 Expected: 1 or 2
Glyph name: Wacute Contours detected: 6 Expected: 2
Glyph name: Wcircumflex Contours detected: 6 Expected: 2
Glyph name: Wdieresis Contours detected: 7 Expected: 3
Glyph name: Wgrave Contours detected: 6 Expected: 2
Glyph name: X Contours detected: 5 Expected: 1
Glyph name: Y Contours detected: 7 Expected: 1
Glyph name: Yacute Contours detected: 8 Expected: 2
Glyph name: Ycircumflex Contours detected: 8 Expected: 2
Glyph name: Ydieresis Contours detected: 9 Expected: 3
Glyph name: Ygrave Contours detected: 8 Expected: 2
Glyph name: Z Contours detected: 6 Expected: 1
Glyph name: Zacute Contours detected: 7 Expected: 2
Glyph name: Zcaron Contours detected: 7 Expected: 2
Glyph name: Zdotaccent Contours detected: 7 Expected: 2
Glyph name: a Contours detected: 1 Expected: 2
Glyph name: aacute Contours detected: 2 Expected: 3
Glyph name: abreve Contours detected: 2 Expected: 3
Glyph name: acircumflex Contours detected: 2 Expected: 3
Glyph name: adieresis Contours detected: 3 Expected: 4
Glyph name: agrave Contours detected: 2 Expected: 3
Glyph name: amacron Contours detected: 2 Expected: 3
Glyph name: ampersand Contours detected: 5 Expected: 1, 2 or 3
Glyph name: aring Contours detected: 3 Expected: 4
Glyph name: asciitilde Contours detected: 2 Expected: 1
Glyph name: atilde Contours detected: 2 Expected: 3
Glyph name: b Contours detected: 1 Expected: 2
Glyph name: copyright Contours detected: 4 Expected: 3
Glyph name: dcroat Contours detected: 3 Expected: 2
Glyph name: eogonek Contours detected: 3 Expected: 2
Glyph name: eth Contours detected: 3 Expected: 2
Glyph name: fi Contours detected: 2 Expected: 3
Glyph name: fl Contours detected: 3 Expected: 2
Glyph name: h Contours detected: 2 Expected: 1
Glyph name: l Contours detected: 2 Expected: 1
Glyph name: lacute Contours detected: 3 Expected: 2
Glyph name: lcaron Contours detected: 3 Expected: 2
Glyph name: lslash Contours detected: 3 Expected: 1
Glyph name: ohorn Contours detected: 3 Expected: 2
Glyph name: percent Contours detected: 4 Expected: 5
Glyph name: q Contours detected: 1 Expected: 2
Glyph name: registered Contours detected: 5 Expected: 3 or 4
Glyph name: section Contours detected: 9 Expected: 2
Glyph name: tbar Contours detected: 2 Expected: 1
Glyph name: trademark Contours detected: 7 Expected: 2
Glyph name: uhorn Contours detected: 2 Expected: 1
Glyph name: uni0122 Contours detected: 8 Expected: 2
Glyph name: uni0136 Contours detected: 7 Expected: 2 or 3
Glyph name: uni013B Contours detected: 8 Expected: 2
Glyph name: uni013C Contours detected: 3 Expected: 2
Glyph name: uni0145 Contours detected: 8 Expected: 2
Glyph name: uni0156 Contours detected: 6 Expected: 3
Glyph name: uni0162 Contours detected: 5 Expected: 1 or 2
Glyph name: uni1E9E Contours detected: 16 Expected: 1
Glyph name: uni1EA0 Contours detected: 7 Expected: 3
Glyph name: uni1EA1 Contours detected: 2 Expected: 3
Glyph name: uni1EA2 Contours detected: 7 Expected: 3
Glyph name: uni1EA3 Contours detected: 2 Expected: 3
Glyph name: uni1EA4 Contours detected: 8 Expected: 4
Glyph name: uni1EA5 Contours detected: 3 Expected: 4
Glyph name: uni1EA6 Contours detected: 8 Expected: 4
Glyph name: uni1EA7 Contours detected: 3 Expected: 4
Glyph name: uni1EA8 Contours detected: 8 Expected: 4
Glyph name: uni1EA9 Contours detected: 3 Expected: 4
Glyph name: uni1EAA Contours detected: 8 Expected: 4
Glyph name: uni1EAB Contours detected: 3 Expected: 4
Glyph name: uni1EAC Contours detected: 8 Expected: 4
Glyph name: uni1EAD Contours detected: 3 Expected: 4
Glyph name: uni1EAE Contours detected: 8 Expected: 4
Glyph name: uni1EAF Contours detected: 3 Expected: 4
Glyph name: uni1EB0 Contours detected: 8 Expected: 4
Glyph name: uni1EB1 Contours detected: 3 Expected: 4
Glyph name: uni1EB2 Contours detected: 8 Expected: 4
Glyph name: uni1EB3 Contours detected: 3 Expected: 4
Glyph name: uni1EB4 Contours detected: 8 Expected: 4
Glyph name: uni1EB5 Contours detected: 3 Expected: 4
Glyph name: uni1EB6 Contours detected: 8 Expected: 4
Glyph name: uni1EB7 Contours detected: 3 Expected: 4
Glyph name: uni1EB8 Contours detected: 6 Expected: 2
Glyph name: uni1EBA Contours detected: 6 Expected: 2
Glyph name: uni1EBC Contours detected: 6 Expected: 2
Glyph name: uni1EBE Contours detected: 7 Expected: 3
Glyph name: uni1EC0 Contours detected: 7 Expected: 3
Glyph name: uni1EC2 Contours detected: 7 Expected: 3
Glyph name: uni1EC4 Contours detected: 7 Expected: 3
Glyph name: uni1EC6 Contours detected: 7 Expected: 3
Glyph name: uni1EC8 Contours detected: 6 Expected: 2
Glyph name: uni1ECA Contours detected: 6 Expected: 2
Glyph name: uni1ECC Contours detected: 8 Expected: 3
Glyph name: uni1ECE Contours detected: 8 Expected: 3
Glyph name: uni1ED0 Contours detected: 9 Expected: 4
Glyph name: uni1ED2 Contours detected: 9 Expected: 4
Glyph name: uni1ED4 Contours detected: 9 Expected: 4
Glyph name: uni1ED6 Contours detected: 9 Expected: 4
Glyph name: uni1ED8 Contours detected: 9 Expected: 4
Glyph name: uni1EDA Contours detected: 9 Expected: 3 or 4
Glyph name: uni1EDB Contours detected: 4 Expected: 3
Glyph name: uni1EDC Contours detected: 9 Expected: 3 or 4
Glyph name: uni1EDD Contours detected: 4 Expected: 3
Glyph name: uni1EDE Contours detected: 9 Expected: 3 or 4
Glyph name: uni1EDF Contours detected: 4 Expected: 3
Glyph name: uni1EE0 Contours detected: 9 Expected: 3 or 4
Glyph name: uni1EE1 Contours detected: 4 Expected: 3
Glyph name: uni1EE2 Contours detected: 9 Expected: 3 or 4
Glyph name: uni1EE3 Contours detected: 4 Expected: 3
Glyph name: uni1EE4 Contours detected: 6 Expected: 2
Glyph name: uni1EE6 Contours detected: 6 Expected: 2
Glyph name: uni1EE8 Contours detected: 7 Expected: 2
Glyph name: uni1EE9 Contours detected: 3 Expected: 2
Glyph name: uni1EEA Contours detected: 7 Expected: 2
Glyph name: uni1EEB Contours detected: 3 Expected: 2
Glyph name: uni1EEC Contours detected: 7 Expected: 2
Glyph name: uni1EED Contours detected: 3 Expected: 2
Glyph name: uni1EEE Contours detected: 7 Expected: 2
Glyph name: uni1EEF Contours detected: 3 Expected: 2
Glyph name: uni1EF0 Contours detected: 7 Expected: 2
Glyph name: uni1EF1 Contours detected: 3 Expected: 2
Glyph name: uni1EF4 Contours detected: 8 Expected: 2
Glyph name: uni1EF5 Contours detected: 3 Expected: 2
Glyph name: uni1EF6 Contours detected: 8 Expected: 2
Glyph name: uni1EF7 Contours detected: 3 Expected: 2
Glyph name: uni1EF8 Contours detected: 8 Expected: 2
Glyph name: uni1EF9 Contours detected: 3 Expected: 2
Glyph name: uogonek Contours detected: 2 Expected: 1
Glyph name: y Contours detected: 2 Expected: 1
Glyph name: yacute Contours detected: 3 Expected: 2
Glyph name: ycircumflex Contours detected: 3 Expected: 2
Glyph name: ydieresis Contours detected: 4 Expected: 3
Glyph name: ygrave Contours detected: 3 Expected: 2
Glyph name: zero Contours detected: 1 Expected: 2 or 3 [code: contour-count]
--- 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.
--- 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.
๐ ERROR | ๐ฅ FAIL | โ WARN | ๐ค SKIP | โน INFO | ๐ PASS | ๐ DEBUG |
---|---|---|---|---|---|---|
0 | 13 | 5 | 105 | 7 | 65 | 0 |
0% | 7% | 3% | 54% | 4% | 33% | 0% |
Note: The following loglevels were omitted in this report:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.