W3C home > Mailing lists > Public > public-webapps@w3.org > April to June 2014

Re: contentEditable=minimal

From: Piotr Koszuliński <p.koszulinski@cksource.com>
Date: Sun, 25 May 2014 20:34:46 +0200
Message-ID: <CAFk9nexphxT9OigV2Mk4-wUSZr8j0Vpj9eYKWAyB+KTCsn2xzA@mail.gmail.com>
To: Robin Berjon <robin@w3.org>
Cc: Jonas Sicking <jonas@sicking.cc>, Ben Peters <Ben.Peters@microsoft.com>, "public-webapps@w3.org" <public-webapps@w3.org>
> > 6. Spell check. When you want a native spell check you cannot override
> > context menu. When you want custom context menu, you need custom spell
> check
> > (which is extremely hard). And context menu is very important for many
> users
> > because they used to look there for contextual options, so most editors
> > override it. Therefore, a way control at least one of them (I guess it
> won't
> > be a context menu, though that would be awesome) will be great.
> There's already a contextmenu feature in HTML, though I don't know if
> any other browser than Firefox implements it. And the spec has seen so
> much changes that I don't know how closely Firefox conforms to the
> spec. Anyhow, I think the ability to extend/replace the existing
> context menu is the way to go if that's what people need.
Do you mean:

I didn't know about it. It doesn't seem to work on any browser yet, but it
should be able to solve our problems. I hope it will be implemented soon.

> > 5. There should be no native toolbars in cE=minimal (and other native UI
> > interfering) like the one Safari opens on iOS if you have non-empty
> > selection.
> I haven't yet checked exactly what's in the iOS toolbar, but generally
> I don't think we should dictate UI. Clearly on mobile we don't want to
> forbid browsers to bring up the virutal keyboard, which is a form of
> "native UI". And the spellcheck UI that safari displays also doesn't
> seem bad if spellchecking is enabled.
> And UI for cut/copy/past that android renders seems good to render
> *somewhere* when there's selection.

On iOS the contextual toolbar not only contains copy/cut options which are
of course ok, but it also contains bold, italic and lists buttons. That's
unacceptable and I assume this kind of native UI will not be implemented
for cE=minimal.

> Another thing that we should look at is the ability to style ranges
> rather than just elements. In Gecko we have an internal feature that
> allows us to style DOMRanges. This allows us to render a red dotted
> line under misspelled words and black line under composition
> characters. And do that without worrying about managing a lot of extra
> elements in the DOM.
> Right now pages are forced to sprinkle elements all over the DOM in
> order to do the same thing, which then makes editing that DOM more
> complex. It would be awesome to find ways to enable styling ranges
> which would allow them to keep a simpler DOM.

Wow! Such feature would be awesome. This reminds me about an idea mentioned
in https://medium.com/medium-eng/122d8a40e480 that cE could be
reimplemented with shadow DOM. It would be extremely powerful if caret and
selection and styled ranges were real, accessible elements.

Which brings me to think: when we discussed this at the Summit, there was
> some agreement (between all four of us :) that it was a good idea to
> support multi-range selections. These are useful not just for tables, but
> also for bidi. The reason for the latter is that when selecting a line with
> multiple embedded directions (using a mouse), you want to have the visual
> selection be an unbroken line (as opposed to the crazy jumping around you
> get if you follow logical order).
> It's definitely useful, though it does come with its problems. The
> question that opens up for me is: do we want to support multi-caret editing
> as well? The data model certainly supports it, but we have to account for
> it early if it's an option.
> At any rate, multi-range selections would be much easier to handle if we
> had something like Selection.forEachRange(function (r) {...}).

Uh... multi-range selections. I find myself and my colleagues ignoring
them. They add so much complexity to already complex tasks that we simply
handle first range and ignore other. And I don't remember complains about
that. They make some sense when selecting table columns but this is not a
necessary feature and may be also handled by an editor by fake selection.
Multiple carets are useful in code editors, but not a single text editor's
end user know about them (and I believe they were removed from Firefox). I
don't know the bidi case though. But if it could be handled without
multi-range selections I would gladly forget about them.

Piotrek Koszuliński
CKEditor JavaScript Lead Developer
Received on Sunday, 25 May 2014 18:35:15 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 18:14:24 UTC