[whatwg] Request for implementer feedback: multiple Ranges per Selection
Boris Zbarsky
bzbarsky at MIT.EDU
Fri Jan 28 08:19:08 PST 2011
On 1/28/11 10:59 AM, Aryeh Gregor wrote:
> 1) Are there real-world use-cases for multiple Ranges per Selection,
> or was it just an attempt to be as general as possible?
In Gecko you can select table cells in a table. For example, load this
document:
data:text/html,<table><tr><td>1<td>2<tr><td>3<td>4
then accel-click (Cmd-click on mac, Ctrl-click on Windows/Linux) the 1,
then the 4. That this point the selection cannot be represented as a
single range.
You can also create multi-range selections in Gecko outside of tables.
For example, load this document:
data:text/html,1234567890
Click to the left of the 1 and drag right to between the 2 and the 3.
Then release the mouse, accel-click between the 6 and the 7 and drag to
between the 8 and the 9. Again, you have a 2-range selection.
So to represent selections that users can make, you have to allow
multiple ranges in a Selection object.
> 4) Assuming that the answers to the last two questions are "no", would
> Gecko be willing to drop support for multiple Ranges per Selection?
The only ways we could do that would be to break user-facing selection
behavior in our browser (which is obviously undesirable) or to make the
DOM Selection object not actually reflect the state of the selection
(again, seems undesirable). We might be willing to do the latter if it
were really necessary, but that would significantly reduce the
usefulness of the Selection API to developers, I think.
On the other hand, multi-range selections can be very useful for
scripting (e.g. Gecko actually uses them to implement spellcheck
underlining, search result highlighting, and so forth). So it seems to
me that a better direction is to allow multi-range selection in UAs in
general.
-Boris
More information about the whatwg
mailing list