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

> 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 Wednesday, 16 April 2014 19:01:41 UTC