Re: propose an API to return Range in <textarea> etc. form control nodes (similar functionality as document.caretRangeFromPoint)

On 10/8/09 10:07 PM, Xiaomei Ji wrote:
> One use case is to show a tooltip of the word's definition in your
> accept-language when you mouse over the word in a page.
> It needs to
> 1. convert the mouse position to character offset within a node (by
> Document.caretRangeFromPoint()
> <http://dev.w3.org/csswg/cssom-view/#the-documentview-interface>), and
> 2. expand the range to 'word' unit.
>
> It is useful for users, especially users from east asian countries, to
> read the word's definition in their own language while browsing the
> internet.
>
> And it is also userful for users to check the word's definition in their
> own language while composing something, such as email. This is why I am
> thinking of displaying the word's definition for <textarea>. Which needs
> Document.caretRangeFromPoint() returns the <textarea> node as the range
> container node, and the offset as the character offset within <textarea>.
>
> But Document.caretRangeFromPoint() is only allowed to return nodes in
> the actual DOM, that a user would be able to get to by traversing from
> the root node.
>
> <textarea> node is not part of the DOM.
> Document.caretRangeFromPoint() cannot return a Range in a <textarea>
> since that Range would not be in the DOM.
>
> I would like to propose another API in Document which has the same
> functionality of Document.caretRangeFromPoint() but also works for
> <textarea> etc. form control nodes that are not part of the DOM.
Do you really want to expose those (native) anonymous DOM nodes to
web? What should happen if one tries to append them to normal DOM?
Or removes them? Or adds (mutation) event listener to them?

I think we need a bit different kind of API for form controls.

-Olli



>
> I do not have a good name in mind for such API yet.
>
> Would like to hear what you think. Any comments are appreciated!
>
> Thanks,
> Xiaomei
>

Received on Thursday, 8 October 2009 19:26:34 UTC