- From: Ben Peters <Ben.Peters@microsoft.com>
- Date: Wed, 16 Apr 2014 19:01:01 +0000
- To: Yoichi Osato <yoichio@google.com>, "public-webapps@w3.org" <public-webapps@w3.org>
- CC: Ryosuke Niwa <rniwa@apple.com>
> 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