Skip to content

Consonant clusters with a visible virama should only have the first consonant+virama highlighted #115

Open
@r12a

Description

@r12a

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

When the start of a line contains a 2-consonant cluster that uses a visible virama, ::first-letter should highlight only the first consonant+virama. This corresponds to a grapheme cluster, as defined by Unicode.

Specs:
css-text-3 CSS uses the concept of 'typographic character unit', which defaults to a grapheme cluster. The spec doesn't provide details about the support needed for each language.

The Unicode Consortium defines grapheme clusters to, by default, stop after the first virama in a cluster.

Tests & results:
Interactive test, When ::first-letter is applied to Devanagari the browser will NOT select a 2-consonant cluster as a unit if the virama is visible

Interactive test, When ::first-letter is applied to Bengali the browser will only select the first consonant+virama in a cluster if the virama is visible

Gecko only highlights the initial character+virama. Blink, and Webkit select all clusters as a single unit, whether or not they are conjuncts or are rendered with a visible virama.

Browser bug reports:
BlinkWebKit

Priority:
This choice needs to be discussed. If a cluster is rendered as a conjunct, it should be selected as a single unit. If, instead, the virama is displayed (ie. it is not a conjunct) then only the initial part of the cluster should be selected. Since the underlying code points are identical if a cluster is displayed as a conjunct or instead with visible viramas, it's not possible to distinguish one situation from another by working with the code points. In the absence of a technical solution that examines what the font used does when rendering, this is a difficult problem to solve. This priority rating says that, in the absence of a perfect solution, it is better to select a whole non-conjunct cluster than to break a conjunct. So it is labelled advanced, rather than basic.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Browser bug raised

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions