Ckeditor5: IME issues

Created on 31 Jan 2018  路  7Comments  路  Source: ckeditor/ckeditor5

Umbrella ticket for all issues related to IME (Input Method Engine) support. They concern users typing in languages such as Japanese, Korean, Chinese, etc.

ime bug

Most helpful comment

You guys did a lot on IME issues,
really helped me,
thank you all sincerely.

All 7 comments

do-not-edit-start-codetree-epic-issues

Issues in this epic:

Title | Milestone | Assignees | Stage | State
----- | --------- | --------- | ----- | -----
[Safari] The first line of each paragraph cannot be input into Chinese #1333 | nice-to-have | N/A | Open
IndexSizeError iPad Japanese characters #992 | backlog | N/A | Open
Pressing enter moves the last character to a new line when typing Hangul (Korean) #777 | N/A | N/A | Closed
Japanese input (IME) fails at the first character in a paragraph #748 | N/A | N/A | Closed

do-not-edit-end-codetree-epic-issues

As there are various IME issues reported in the above tickets (listed by codetree) and some of them were added almost a year ago I went through all of them to check which are still reproducible and which got fixed in the meantime.

Only reproducible ones are listed below. Ones no longer valid were simply closed.

  1. https://github.com/ckeditor/ckeditor5-typing/issues/83
  2. https://github.com/ckeditor/ckeditor5-typing/issues/85
  3. https://github.com/ckeditor/ckeditor5-typing/issues/89
  4. issues from https://github.com/ckeditor/ckeditor5-typing/issues/95 (6/7 still reproducible, see https://github.com/ckeditor/ckeditor5-typing/issues/95#issuecomment-368905422 for details)
  5. https://github.com/ckeditor/ckeditor5-typing/issues/128
  6. https://github.com/ckeditor/ckeditor5-typing/issues/129 (details https://github.com/ckeditor/ckeditor5-typing/issues/129#issuecomment-368869863)
  7. https://github.com/ckeditor/ckeditor5/issues/748
  8. https://github.com/ckeditor/ckeditor5/issues/777

Also went through some additional scenarios from https://github.com/ckeditor/ckeditor5-engine/pull/861, see results in https://github.com/ckeditor/ckeditor5-engine/pull/861#issuecomment-368943472.

The general idea behind fixing IME issues is to apply few changes in how rendering works and check which issues are covered:

  1. Prevent selection re-rendering during composition - https://github.com/ckeditor/ckeditor5-engine/issues/460.
  2. Prevent inline filler, block filler removal during composition - https://github.com/ckeditor/ckeditor5-engine/issues/898.
  3. Renderer should use smart methods to update text nodes (see CharacterData.replaceData method) - https://github.com/ckeditor/ckeditor5-engine/issues/403.
  4. Block rendering DOM fragment during composition - see https://github.com/ckeditor/ckeditor5-engine/pull/861 for in-depth discussion on this topic.

Block rendering DOM fragment during composition.

Keep in mind it needs to work well in collaborative editing.

Block rendering DOM fragment during composition.

Keep in mind it needs to work well in collaborative editing.

I'd rephrase it to: It must not break collaborative editing, but the MVP here doesn't mean that IME must work flawlessly in collaborative editing. Having IME working fine during collaborative editing is the next step.

From what I checked, preventing selection manipulation during composition is not enough to solve any of the above issues. Usually the cause is related to elements rerendering (which also may cause selection to be rerender) or both (a little more insight in https://github.com/ckeditor/ckeditor5-engine/issues/1334#issuecomment-370739811).

Not sure if we should go with _prevent selection re-rendering during composition_ as a first one in this case also because of the fact that when updating rendering mechanism (I mean further issues mentioned in https://github.com/ckeditor/ckeditor5/issues/802#issuecomment-369197598), selection handling may also need to be modified. WDYT @Reinmar ?

You guys did a lot on IME issues,
really helped me,
thank you all sincerely.

Was this page helpful?
0 / 5 - 0 ratings