Last modified: 2014-02-28 23:46:32 UTC

Wikimedia Bugzilla is closed!

Wikimedia migrated from Bugzilla to Phabricator. Bug reports are handled in Wikimedia Phabricator.
This static website is read-only and for historical purposes. It is not possible to log in and except for displaying bug reports and their history, links might be broken. See T55754, the corresponding Phabricator task for complete and up-to-date bug report information.
Bug 53754 - VisualEditor: Implement script-specific cursoring for Devanagari if native cursoring is insufficient
VisualEditor: Implement script-specific cursoring for Devanagari if native cu...
Status: ASSIGNED
Product: VisualEditor
Classification: Unclassified
Language (Other open bugs)
unspecified
All All
: Normal normal
: ---
Assigned To: Editing team bugs – take if you're interested!
:
Depends on: 51472
Blocks: ve-multi-lingual 53014
  Show dependency treegraph
 
Reported: 2013-09-04 14:57 UTC by Mahitgar
Modified: 2014-02-28 23:46 UTC (History)
7 users (show)

See Also:
Web browser: ---
Mobile Platform: ---
Assignee Huggle Beta Tester: ---


Attachments

Description Mahitgar 2013-09-04 14:57:00 UTC
*This is language/script specific daiatric specific bug split from bug 51472

*For language Marathi Script Devnagari anuswara diatric is  ं 
*If one types the anuswara daiatric  ं  after any devnagari script alphabate it is usually place above the concerned alphabate . For example  क is a Marathi/Devnagari alphabate if I type क+ ं I get  कं  
*If I place cursor before the cluster कं and press delet then whole cluster gets deleted and that is right way to happen, and this behaviour needs to be retained(since if basic alphabate is not there then no need of anuswara daiatric  ं) .

*Problem : In Visual Editor if I place cursor after the cluster eg after कं and press backspace current behaviour is the whole cluster gets deleted example कं + Backspace key = results in whole cluster getting deleted 

**The expected behaviour is : Cluster with anuswara daitric (कं) + Backspace key = retain rest of cluster(retain क ) and only anuswara daiatric  ं should get deleted 

**Reason during spell correction many times we need to retain rest of the cluster and only change the diatrics. For anuswara   ं diatric  spell change is required frequently for various reasons like change in singular-plural tense.Every time retyping the whole cluster is cumbersome. Traditional Source editing behaviour is proper and expected and problem is coming only with VisualEditor behaviour.
::**For Example please see this https://mr.wikipedia.org/w/index.php?title=कृष्ण_श्रीनिवास_अर्जुनवाडकर&diff=1198833&oldid=1198826 edit difference a usser had to change this diatric at several places.

Since users would be reluctant to use VE without correct behaviour , I would prefer this being treated as a bug not just enhancement and to have  fair importance level.
Comment 1 Siddhartha Ghai 2013-09-05 20:06:49 UTC
Per Bug 51472#c4 , the grapheme cluster handling for backspace is to be on a per script basis. So, this should be treated as the bug for specifically devanagari.

Also note that I am confirming the bug for hindi.

To further clarify the original report, devanagari has various diacritics which can be applied to base unicode characters. It also has a combining character halant (viram) ् (U+094D).

Currently, pressing backspace after a grapheme cluster containing one or more base characters with one or more diacritics and/or combining character deletes the entire grapheme cluster. This is not desired behaviour. Pressing delete before a cluster deletes the entire cluster. This is desired behaviour.

Examples of diacritics: ँ (Chandrabindu) U+0901 ं (Bindu) U+0902 etc.

Examples of grapheme clusters:

One base character with one diacritic: कं ( क + ं ), कँ ( क + ँ ), कः ( क + ः )

One base character with multiple diacritics: किं ( क + ि + ं )

Multiple base characters with halant: श्र ( श + ् + र ), क्ष ( क + ् + ष ), प्र ( प + ् + र )

Multiple base characters with halant followed by diacritics: श्रिं (श + ् + र + ि + ं), क्षि ( क + ् + ष + ि ), प्रे ( प + ् + र + े )

System environment:
Win7 X64
Google Chrome 29.0.1547.62 m
Page used for testing: [[:w:hi:User:Siddhartha Ghai/sandbox]]

Expected behaviour:
Only one diacritic (the last one in the grapheme), ie one unicode character, is to be deleted. The rest of the grapheme cluster is to stay intact.

Examples used (not exhaustive):
Grapheme -> Grapheme after pressing backspace
कं -> क
कँ -> क
कः -> क
क् -> क
किं -> कि
श्र -> श्
क्ष -> क्
प्र -> प्
श्रिं -> श्रि
क्षि -> क्ष
प्रे -> प्र

Current behaviour (blank indicates entire grapheme cluster was removed) (these results should be verified on other browser/OS combinations):
कं -> 
कँ -> 
कः -> 
क् -> 
किं ->
श्र -> श्  (Working correctly)
क्ष -> क् (Working correctly)
प्र -> प् (Working correctly)
श्रिं -> श् (Deletes र + ि + ं , ie three unicode characters instead of one)
क्षि -> क् (Deletes ष + ि , ie two unicode characters instead of one)
प्रे -> प् (Deletes र + े , ie two unicode characters instead of one)

Points to note:
Some IMEs may provide non-normalized input for characters such as फ़ (U+095E) in place of फ (U+092B) + ़ (U+093C), ढ़ (U+095D) in place of ढ (U+0922) + ़ (U+093C) etc. In such cases, the user may expect that pressing a backspace will only eliminate the diacritic, not the entire grapheme. So, VE may have to handle normalization in such cases.

Results seem to indicate that halant is partially correctly handled. letter + halant + letter + backspace gives letter + halant correctly. But
letter + halant + backspace, instead of giving the letter, deletes the entire grapheme.

The remaining diacritics as of unicode 3.0 come under Nonspacing mark (Mn) and Spacing combining mark (Mc) (Note: This does not include devanagari extended added in unicode 6.0 and vedic extensions added in unicode 6.1)
Comment 2 James Forrester 2013-10-08 23:21:59 UTC
Retitled for clarity; we're switching back to native cursoring and backspacing, which hopefully will fix this, but keeping this open and distinct in case not.

Note You need to log in before you can comment on or make changes to this bug.


Navigation
Links