Re: Only Text Input and Intention Events: Return key

> On Nov 25, 2014, at 11:11 , Ben Peters <Ben.Peters@microsoft.com> wrote:
> 
> Let’s bring this conversation full circle. I think the first thing we should do is create a new type of contentEditable that only supports inserting characters by default. If a user types using an IME, keyboard, speech, etc, the browser fires beforeInput with the characters to insert and then inserts them by default. For anything else* the browser fires beforeInput with context data and then does nothing by default. The key is that all types of input can be handled in script by responding to Intention Events, with the exception of IME input, which means only character insertion should have a default behavior. If there are low-level apis we need to make this possible, we’ll create them going forward. If this sounds like a reasonable V1, let’s get it spec’d and taken to FPWD.
>  
> *Things that have no default behavior in V1: newlines, deletion, formatting, pasting, inserting html, etc.

Question on this * part: The Return key is used in many different ways, of which some should be handled as character insertion, while others are different operations. How does the browser detect what’s the intention?

Some cases I can think of (and most of them have subcases):

– The input method is currently composing text, so the Return key confirms the current composed text.

– The selection is inside a PRE element, so a newline character is inserted into the element.

– The selection is inside a P element, so the P element is split into two.

– The selection starts in one P element and ends in a different one, so the selected text in these two P elements, as well as anything between them, is deleted, but the P elements remain separate and keep their attributes.

– The selection is inside a TD element, so – well, whatever the application wants to do here.

I’d see the first two as character insertion, while the others are not.

Norbert

Received on Monday, 1 December 2014 21:34:33 UTC