Re: [editing-explainer] Target range in device independent events (#39)

Let me re-state this issue, as I figured it's better to describe the issue first before diving into a solution proposal.

On two documents co-editing web services, I see a same symptom happening; whenever someone makes edits, my un-committed IME string is committed automatically. This makes these services completely unusable for IME users.

While this is just a bug in the two services, I believe our API design has a flaw for such a bug to be easily slipped in. My guess is that, since operations are designed around selection, they save the selection by `getRangeAt`, move the selection, do the operation someone else did, then get the selection back by `addRange`. Unfortunately, this does not work because browsers have unexposed internal states associated with selections, such as un-committed IME string or information to resolve ambiguity of range-to-visual mapping.

Possible solution proposals are:

1. Define device independent events against a range, and when device events translate to device independent events, associate the current selection with the device independent events.
2. Add APIs to make saving/restoring of selections possible, including browser-internal states that are not exposed via APIs.


---
Reply to this email directly or view it on GitHub:
https://github.com/w3c/editing-explainer/issues/39#issuecomment-69491560

Received on Sunday, 11 January 2015 11:43:10 UTC