diff --git a/Lib/fontbakery/checks/opentype/STAT/ital_axis.py b/Lib/fontbakery/checks/opentype/STAT/ital_axis.py index df36b6191f..452a7eef59 100644 --- a/Lib/fontbakery/checks/opentype/STAT/ital_axis.py +++ b/Lib/fontbakery/checks/opentype/STAT/ital_axis.py @@ -97,6 +97,8 @@ def segment_vf_collection(fonts): for font in fonts: if "-Italic[" in font.file: italics.append(font) + elif font.is_italic: + italics.append(font) else: non_italics.append(font) @@ -109,6 +111,9 @@ def segment_vf_collection(fonts): if non_italic.file == suspected_roman: found_roman = non_italic break + elif non_italic.familyname == italic.familyname: + found_roman = non_italic + break if found_roman: non_italics.remove(found_roman) diff --git a/Lib/fontbakery/testable.py b/Lib/fontbakery/testable.py index 80dda1e80a..002495c792 100644 --- a/Lib/fontbakery/testable.py +++ b/Lib/fontbakery/testable.py @@ -245,6 +245,21 @@ def is_bold(self): ) ) + @cached_property + def familyname(self): + from fontbakery.utils import get_name_entry_strings + from fontbakery.constants import NameID + + ttFont = self.ttFont + familynames = get_name_entry_strings(ttFont, NameID.FONT_FAMILY_NAME) + typo_familynames = get_name_entry_strings(ttFont, NameID.TYPOGRAPHIC_FAMILY_NAME) + if not familynames: + return None + + familyname = typo_familynames[0] if typo_familynames else familynames[0] + + return familyname + @dataclass class TTCFont(Font):