Re: [CSSOM] getClientRects should work on collapsed ranges in elements

On Wed, Feb 10, 2010 at 8:13 PM, Robert O'Callahan <robert@ocallahan.org>wrote:

> On Thu, Feb 11, 2010 at 1:48 PM, Ojan Vafai <ojan@chromium.org> wrote:
>
>> Given the following DOM and default CSS styling:
>> <div><span></span><textnode>foo</textnode></div>
>>
>> I think it makes sense that getClientRects would return the same result
>> for the following ranges as they all correspond to the same visible position
>> (e.g. when a text input caret is there):
>> 1. startNode: div, startOffset: 0
>> 2. startNode: span, startOffset: 0
>> 3. startNode: textnode, startOffset: 0
>>
>> With the current spec 1 and 2 return the empty list and 3 returns a
>> zero-width rect. They should all return a zero-width rect with the same
>> values, which matches IE (in the cases where IE TextRanges can represent the
>> same Range).
>>
>> The only use-case I can think of for getClientRects is to get the position
>> of the Selection for putting up context-specific menus. This makes the API
>> hard to use if code needs to first ensure that the endpoints are in
>> textnodes (e.g. in the empty span case, the code would need to first insert
>> a text node).
>
>
> To me, this sounds quite hard to specify in a principled way. Have you got
> proposed spec text? If the spec text ends up complicated and somewhat
> arbitrary, then I think the complexity belongs in author scripts, since
> different authors might want to do it different ways.
>

Would it not be sufficient, in the case of a collapsed range to just act as
if there is a textnode there?

Ojan

Received on Friday, 30 April 2010 18:15:47 UTC