- From: Simon Pieters <simonp@opera.com>
- Date: Thu, 12 Jan 2012 11:50:53 +0100
- To: "Ryosuke Niwa" <rniwa@webkit.org>, "Markus Ernst" <derernst@gmx.ch>, "Aryeh Gregor" <ayg@aryeh.name>
- Cc: "Ojan Vafai" <ojan@chromium.org>, "Ehsan Akhgari" <ehsan@mozilla.com>, "WebApps WG" <public-webapps@w3.org>
On Wed, 11 Jan 2012 16:39:48 +0100, Aryeh Gregor <ayg@aryeh.name> wrote: > On Tue, Jan 10, 2012 at 3:50 PM, Ryosuke Niwa <rniwa@webkit.org> wrote: >> p has default margins. That alone is enough for us not to adopt p as >> the default paragraph separator. > > On Wed, Jan 11, 2012 at 5:15 AM, Simon Pieters <simonp@opera.com> wrote: >> Sure, but some apps like to send their stuff in HTML email to clients >> that >> don't support styling, or some such. > > I used to think that this was a strong argument, but then I realized > <blockquote> and <ol> and <ul> have default margins too. So if you > want it to look right, you'll have to use a stylesheet. Also, it's > worth pointing out that recent versions of Word have margins by > default when you hit Enter. > > But Simon makes a good point: for the e-mail use-case, styling might > not be available. So this is a decent reason to support <div>. > >> Also, unfortunately, there are many legacy >> contents that rely on the fact webkit uses div as the paragraph >> separator so >> we need a global or per editing-host switch regardless. > > This is also a good reason -- it lets preexisting apps that expect > <div> opt into that behavior in new browsers, instead of being > rewritten to support <p>. > > Okay, so what API should we use? I'd really prefer this be > per-editing host. In which case, how about we make it a content > attribute on the editing host? It can be a DOMSettableTokenList. > Maybe something like > > <div editoptions="tab-indent"> > > where the attribute is a whitespace-separated list of tokens. To > start with, we can maybe have tab-indent (hitting Tab indents) and > div-separator (hitting Enter produces div). Does this sound like a > good approach? If so, what should we call the attribute? Currently the editing options available, other than enabling and disabling contenteditable, use the execCommand API. I don't see why we should switch to attributes for new editing options. To make editing options per editing host, I prefer this proposal: [[ >> Ojan suggested in the other thread that we instead allow calling >> execCommand() on Element, and have the result restricted to that >> Element. That solves the global-flags problem too, and doesn't >> require new attributes. So you'd do >> >> div.execCommand("tabindent", false, "true"); >> >> or whatever. Someone could still call >> document.execCommand("tabindent", false, "false"), but that would be >> overridden if it was called on the editing host. I filed a bug on it: >> >> https://www.w3.org/Bugs/Public/show_bug.cgi?id=15522 >> >> Does that sound good too? ]] > And should > it imply contenteditable=true, or should the author have to specify > that separately? The latter IMHO. > Also: are there any good use-cases for <br>? I still haven't seen any. > Allowing <div> instead > of <p> adds basically no extra complexity, but allowing <br> would > make things significantly more complicated. On Wed, 11 Jan 2012 21:15:18 +0100, Ryosuke Niwa <rniwa@webkit.org> wrote: >> > Should enter behave like shift+enter when br is the default >> > paragraph separator? >> >> Default paragraph separators are used in a couple of other places too, >> so it would be a little more work than that. Indeed, e.g. shift+enter doesn't break out of lists, so it's not equivalent. Making it equivalent would be adding some complexity. >> But I just looked, and >> it wouldn't be as bad as I thought. So this is doable if people have >> any good use-cases. >> > > Great. So what's the use case? :-) If none are presented, I object to adding it based on the Avoid Needless Complexity and Solve Real Problems design principles. -- Simon Pieters Opera Software
Received on Thursday, 12 January 2012 10:51:39 UTC