Summary of TPAC Progress on Editing and Intentions

TL;DR

Five separate meetings at TPAC discussed Editing and User Intentions. They were very successful- showing a lot of interest across companies, progress in thinking, and clear next steps. Indie UI has informally indicated that they are willing to hand off selection and undo/redo events to the efforts in WebApps around user intentions. We had some preliminary discussion about bringing Input Events from DOM L3 Events into the Editing Task Force, and hope to make that formal in the coming weeks. A document for this purpose is already under construction[3]. I will integrate the long list of things learned and progress made into the documents that are currently managed by the Editing Task Force[1][2].



Thank you to everyone that contributed! This is a very broad effort and all of the feedback is greatly appreciated. If you would like to be part of it, please reach out to me, Robin, and Ryosuke. We look forward to making continuing progress!



Ben Peters



Full Summary

Monday Meeting with WebApps and IndieUI [9]

*         I gave an overview of Intentions to the WG to get everyone up to speed.

*         We talked about the need to have context information in Intention Events. For beforeInput this will initially be represented as a Range on which the event will operate, and a String of what will be inserted (when appropriate).

*         We discussed the need to link keyboard/mouse events to their corresponding Intention Events

*         There was a question around why developers would use Intention Events when they can just use keyboard/mouse. The answer is that using Intentions gives easier accessibility support and supports more input modalities, including those that haven't been considered yet. It's like building responsive layouts, but for input instead of output.

*         I showed demos of Intentions and contentEditable="cursor" using a polyfill I wrote [11].

*         The demos spun up a conversation about the value of "cursor". Since it doesn't support IME or spellcheck, we believe we should instead concentrate on contentEditable="typing" or "plaintext-only", which will support IME (East Asian Input) and still be easier to spec than contentEditable="true". We need to decide if there should be default handling of newline (enter), delete (and backspace), or overwrite text. We think there will not be default handling of formatting.



Tuesday Meeting with IndieUI

I attended the IndieUI WG meeting on Tuesday morning. They provided good feedback items, which have been filed as bugs on Selection API[6] and Editing[7] in GitHub. They indicated that they would be willing to have WebApps take some of their work on in the specs on Selection and Input Events, and stop working on these items in IndieUI specs. Cynthia Shelly is also working on a new spec that might fall under the Intentions theme (details coming soon). Her work will be done in IndieUI WG.



Tuesday Meeting with WebApps and IndieUI [10]

*         We discussed moving the Intentions Explainer toward being a WG Note, which means it will not contain any normative requirements. Instead, it will be the place where browser implementers and site authors can go to understand Intention Events across the web and how to use them. This means that Intentions like beforeInput and beforeSelectionChange do not necessarily need a common shape, but will still be conceptually similar.

*         IndieUI would like us to have a common email list for discussion. We are considering expanding the task force. Robin and Charles are looking into this.

*         We discussed having several different types of contentEditable, including "cursor", "typing", "multiline", "delete", and "formatting". The thought in the room was that Intentions can do this without the extra attribute values. We will instead look only at "typing" (perhaps called "plaintext-only" since it already exists in WebKit) for now.

*         I proposed that the Editing Task Force take over Input Events from DOM L3 Events. Travis Leithead (one of the DOM L3 Events editors) was present and informally agreed. We will move toward this with an official process in the coming weeks.

*         We believe the next step is to start spec'ing contentEditable="typing". I will begin this process in a new Input Events spec[3] and in the Editing Explainer[1].



Wednesday Technical Planning

Ryosuke Niwa, Travis Leithead, and I met for an hour and worked through some technical concepts as described below.

*         We came up with a few use cases which will be added to the Explainers.

*         We discussed various types of beforeInput Intentions, including insertText, insertContent, replaceContent, delete, undo, redo, format (which may be renamed wrapContent).

*         We discussed how to write algorithms for the default behavior of some of these Intentions. We may find some of them in DOM L4. We will document what we have and get feedback.

*         Complex Intentions like insertContent could result in more granular Intentions like insertText and format by default. They would be associated together using a property like 'intentionSrc'. The more granular Intentions would not fire if insertContent was preventDefault'ed.

*         We want to make sure there is a correlation to the mouse/keyboard/etc event that caused an Intention Event. This could also be something like 'intentionSrc'

*         Clipboard API may not be an "Intention" spec per se. Instead, paste would result in an insertContent or insertText Intention as appropriate



Thursday Meeting with HTML and WebApps

There was a 30-minute discussion about Editing and Intentions in the HTML WG on Thursday. I was only able to attend the last 10 minutes. From what I gathered they are excited about our work in the Editing-TF. One piece of feedback I heard was that we should consider not using "Intentions" as the name of our events. We should make the decision for this soon, and will discuss in the bug on the subject[8].



Links:

[1] Editing Explainer: http://w3c.github.io/editing-explainer/

[2] Intentions Explainer: http://w3c.github.io/editing-explainer/commands-explainer.html

[3] Input Events Spec: http://w3c.github.io/editing-explainer/input-events.html

[4] Indie-UI Events: http://www.w3.org/TR/indie-ui-events/

[5] Selection API: http://www.w3.org/TR/selection-api/

[6] Selection API Bugs: https://github.com/w3c/selection-api/issues

[7] Editing Bugs: https://github.com/w3c/editing-explainer/issues

[8] Intentions name bug: https://github.com/w3c/editing-explainer/issues/7

[9] Day 1 Minutes: http://www.w3.org/2014/10/27-webapps-minutes.html#item26

[10] Day 2 Minutes: http://www.w3.org/2014/10/28-webapps-minutes.html#item08

[11] Early Demo of Intentions: http://w3c.github.io/editing-explainer/demos/intentions-demo.html

Received on Monday, 3 November 2014 18:13:28 UTC