I am typesetting a document in Hebrew that includes pointing (e.g., vowels, shin and sin dots, dagesh, etc.) using ConTeXt. The Hebrew text that I want to typeset has been normalized into Unicode's NFC canonical form. It is well-known that the Unicode canonical ordering of Hebrew points conflicts with the recommended mark ordering of specific points based on their functions (see https://www.sbl-site.org/Fonts/SBLHebrewUserManual1.5x.pdf for more on this topic). Thankfully, many typesetting engines automatically reorder the points to ensure that they are combined according to the specifications of many fonts. I'm pretty sure that XeLaTeX is one of these, as it typesets Hebrew letters with multiple points correctly even when the Hebrew text is in NFC form.
My question is, can ConTeXt with LuaTeX handle the same situation correctly? In the following minimal example, ConTeXt typesets pointed Hebrew correctly when the characters are in the typographically recommended order, but not when they are in Unicode canonical order:
%Setup Hebrew text font: \definefontfeature[f:pointedhebrew][default][ ccmp=yes, mark=yes, script=hebr ] \definefontfamily[hebrew] [rm] [SBL Hebrew] [features=f:pointedhebrew] %Set the body font: \setupbodyfont[hebrew] %Set up right-to-left alignment: \setupalign[r2l] \starttext %Characters after normalization, in Unicode canonical order (bet + segol + dagesh + final nun): בֶּן %A word with characters in typographically recommended order (bet + dagesh + segol + final nun): בֶּן \stoptext
I typeset this using ConTeXt version 2020.03.10, as released with TeXLive 2020. I got the SBL Hebrew font from https://www.sbl-site.org/educational/BiblicalFonts_SBLHebrew.aspx. According to the font's user manual (see the link above the MWE), the font should be able to combine the marks to form the correct glyph regardless of their order after the consonant, but that doesn't seem to be the case here.
Is there an OpenType feature I need to enable in my
\definefontfeature call to fix this, or is there some module or option I can include to get ConTeXt to typeset Unicode-normalized Hebrew as if it were ordered in the recommended way, like XeLaTeX does? I see that the uninormalize module is mentioned in XeLaTeX, LuaLaTeX, fontspec, unicode and normalization; can that be used with ConTeXt?