Re: [editing] The spec about execCommand('indent') in inline block.

I think the tricky issue is that a user can't tell whether lines are separated by br or by div at glance especially for pasted content.

- R. Niwa

On Apr 16, 2014, at 12:01 PM, Ben Peters <Ben.Peters@microsoft.com> wrote:

>> Image following HTML ('|' is the caret selection):
>> <span contenteditable="true" id="span">|text</span>
>> <script>
>> document.execCommand('indent', false, null);
>> </script>
>> 
>> Following current HTML editing, document.execCommand('indent') inserts a
>> blockquate element inside a span element.
>> https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html#indent
>> Both Chrome and IE insert a blockquate element inside a span element.
>> You can try it on:
>> http://jsfiddle.net/xtk5h/2/
>> 
>> However, the blockquate element is a flow content and HTML standard doesn't
>> allow flow contents to be contents of a span element:
>> http://www.whatwg.org/specs/web-apps/current-work/#the-span-element
>> 
>> Which is better we allow indentation in inline element or not?
> 
> My personal opinion (not shared by all at Microsoft) is that inline elements should not be broken for blockquote/list items. Indent commands should indent the entire block. Today, if you select several lines separated by <br> elements, and execute insertorderedlist in Chrome, it creates list items for each line. I feel like that breaks the user's model because <br> is created by shift-enter, and shift-enter in a list creates a new line in the same list item, not a new list item. 
> 
> This is further complicated by Firefox creating <br> on enter instead of shift-enter though. I believe enter should create a block (p or div), and shift-enter should create br.
> 
>        Chrome    Firefox        IE
> Enter        <div>        <br>        <p>
> Shift-Enter    <br>        <br>        <br>

Received on Monday, 21 April 2014 18:05:24 UTC