Skip to content

Letter-spacing splits conjuncts #117

Open
@r12a

Description

@r12a

This issue is applicable to most languages that form conjuncts from consonant clusters using an invisible virama.

A consonant cluster that uses a conjunct (rather than visible virama) should not be split when letter-spacing is applied.

The GAP

Relying on grapheme clusters as the main segmentation approach fails for many Indic scripts because conjuncts are composed of multiple grapheme clusters, and should be kept together as a unit.

For these situations it is necessary to tailor the segmentation algorithm, so that it recognises the whole consonant cluster plus any attached vowel-signs or combining characters as a single unit.

For examples see Typographic character units in complex scripts.

See also notes on segmentation for the following orthographies relevant to this project: Hindi, Bangla, Punjabi, Tamil.

css-text-3 CSS uses the concept of 'typographic character unit', rather than grapheme cluster, in its specs with the explanation that the cases just described go beyond the scope of the grapheme cluster concept and that implementations should provide appropriate support. The spec doesn't provide details about the support needed for each language.

The Unicode Consortium made some attempts to address this issue, but it has so far not yielded results. CLDR now flags up a few scripts for which conjuncts are common.

Priority

Keeping conjuncts together is a pretty basic requirement. It is not possible to work around this problem.

That said, letter-spacing is not relied on for essential content authoring, therefore the priority was set to advanced.

Tests & results

Interactive test, When letter-spacing is applied to Devanagari the browser will not split conjuncts

Interactive test, When letter-spacing is applied to Bengali the browser will not split conjuncts

  • Gecko: ❌ Most of the half-form conjuncts (which is the large majority of all conjuncts) have space inserted between the glyphs that make up the conjunct (ie. not split into consonants with visible viramas). Vertically-combined glyphs tend not to be split.
  • Blink: ❌ Same as Gecko.
  • Webkit: ❌ Same as Gecko.

Action taken

tbd

Outcomes

tbd

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Spec ready, pending bug report

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions