On 25/05/2014 20:40 , Piotr Koszuliński wrote:
    Making some things unselectable might also be useful. IE has
    unselectable, there's also -moz-user-select and friends. But this is
    small fries for later I'd reckon.

There are also nested non-editable islands. We built very important
feature based on them - http://ckeditor.com/demo#widgets. Currently we
block their selection by preventing mousedown and we handle left/right
arrows. But cancelling selectionchange would allow us to control more
cases in a cleaner way.

I'd be curious to know what your take is on the best way to expose this. IE has an unselectable attribute, whereas Gecko and WebKit have a CSS property. In this thread we've been talking about using cancellable events for this (or if not cancellable, ones in which the selection can be modified on the fly).

On instinct I would tend to think that this not a great usage of CSS, it's much more tied to behaviour at a lower level. But it sort of is one of those borderline things (as many of the properties that initially came from the CSS UI module).

The scriptable option that we're consider is good in that it enables arbitrary cases, but it could be interesting to support a number of cases out of the box with a simpler (for developers) approach.

Let's imagine the following DOM:

<div contenteditable=minimal>
  <p>blah blah blah</p>
  <div class=widget unselectable>...</div>
  <p>blah blah blah</p>
</div>

If the cursor is at the beginning of the first p, you hold Shift, and click at the end of the second p, we could imagine that you'd get a Selection with two Ranges (one for each p) and not containing the unselectable widget. I *think* that's the most desirable default behaviour, and it's also one that can be pretty painful to control through script. In that sense an unselectable attribute would make sense. (I reckon that setting the widget to be cE=false would have the same effect, but it is nevertheless an orthogonal property.)

WDYT?

--
Robin Berjon - http://berjon.com/ - @robinberjon

Reply via email to