- From: Koji Ishii <notifications@github.com>
- Date: Sun, 11 Jan 2015 03:42:41 -0800
- To: w3c/editing-explainer <editing-explainer@noreply.github.com>
- Message-ID: <w3c/editing-explainer/issues/39/69491560@github.com>
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