-
Notifications
You must be signed in to change notification settings - Fork 105
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
New check: dot of soft dotted characters should disappear #4059
Comments
From googlefonts/NunitoSans#16 (comment)
|
"Ensure soft_dotted characters lose their dot when combined with marks that replace the dot." Added to the Universal Profile (issue fonttools#4059)
"Ensure soft_dotted characters lose their dot when combined with marks that replace the dot." Added to the Universal Profile (issue #4059)
@felipesanches Does this test verify if the full character set for languages requiring soft-dotted characters is present in the font? My tests on some fonts suggest it might not. I propose we might not need to flag a FAIL for fonts that don't support languages requiring the dropping of soft-dotted characters. |
@MariannaPaszkowska #4140 does change it to WARN among other things. |
- Implementing the disappearing soft-dot on letter i per example at fonttools/fontbakery#4059 - Moved lookups inside their relevant feature blocks, since they were only referenced once (not sure if it changes anything in the end, but it seems more logical, at least for now)
What needs to be checked?
The dot of soft dotted characters should disappear when an accent is placed on them.
For example j́ (U+006A LATIN SMALL LETTER J, U+0301 COMBINING ACUTE) should look like ȷ́ (U+0237 LATIN SMALL LETTER DOTLESS J, U+0301 COMBINING ACUTE).
Detailed description of the problem
Several Unicode characters have the Soft_Dotted propery as described in https://www.unicode.org/reports/tr44/#Soft_Dotted
See "Diacritics on i and j" in Section 7.1, "Latin" in The Unicode Standard.
For a list of soft dotted characters see https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5B:Soft_Dotted=Yes:%5D which currently shows "iⅈ𝐢𝑖𝒊𝒾𝓲𝔦𝕚𝖎𝗂𝗶𝘪𝙞𝚒ⁱᵢįị ḭ ɨᶤ 𝼚 ᶖ jⅉ𝐣𝑗𝒋𝒿𝓳𝔧𝕛𝖏𝗃𝗷𝘫𝙟𝚓ʲⱼ ɉ ʝᶨ ϳ і ј". These are Latin, Greek and Cyrillic letters, modifier letters and mathematical symbols.
Optional fix
The
ccmp
feature should have lookups that substitute soft dotted glyphs by their dotless equivalents when followed by marks with at least one mark above. In some cases additional glyphs are or could be needed when full decomposition is not adequate, like istroke.dotless or optionally iogonek.dotless if /idotless/ogonek is not adequate.For example:
Resources and exact process needed to replicate
The characters with the Unicode Soft Dotted property are defined in https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt and are listed on https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5B:Soft_Dotted=Yes:%5D
The combining marks that should cause the dot to disappear are mostly in the Combining Diacritical Marks block, but also in the Combining Diacritical Marks Extended, Combining Diacritical Marks for Symbols, Cyrillic, Cyrillic Extended-A, Cyrillic Extended-B, Cyrillic Extended-D.
The sequences that are currently known to be used in orthographies are i̇́ i̇̀ i̋ i̍ i᷆ i᷇ i̓ i̊ i̇̃ i̐ ɨ́ ɨ̀ ɨ̂ ɨ̋ ɨ̏ ɨ̌ ɨ̄ ɨ̃ ɨ̈ ɨ̧́ ɨ̧̀ ɨ̧̂ ɨ̧̌ ɨ̱́ ɨ̱̀ ɨ̱̈ į́ į̇́ į̀ į̂ į̄ į̄́ į̄̀ į̄̂ į̄̌ į̃ į̇̃ į̌ ị́ ị̀ ị̂ ị̄ ị̃ ḭ́ ḭ̀ ḭ̄ j́ j̀ j̄ j̑ j̃ j̇̃ j̈ і́.
Expected Profile
Given this is a Unicode compliance check it should probably be in the universal profile.
Expected Result
Which log result level should it have:
The check should FAIL when a font displays the dot of soft dotted characters used in a sequence used in a language orthography.
For example:
The check should WARN when a font displays the dot of soft dotted characters used in sequences not know to be used in an orthography.
For example:
Severity assessment
4, fonts that would FAIL are unsable in the languages they apparently aim to cover.
Edit:
ccmp
lookup fix withUseMarkFilteringSet
and comments.The text was updated successfully, but these errors were encountered: