On Thu, Oct 29, 2015 at 2:14 PM, Andres Gonzalez <[email protected]> wrote:
> Also inline, prefaced with AG:. > > > > - The nodes in the IA@_Range structure may be generic > IAccessibles and not necessarily IAccessibleText. That would cover the case > of a composite image with an array of image children that can be selected > individually. > > > > So the point is: > * if returned accessible implements IAccessibleText then the integer is an > offset within the accessible > > * if returned accessible is generic IAccessible then the integer is child > index. The point is *before* a referred child. If the integer equals to > children count then the point is after a last child. > > Is that correct? If so then what would you name 'startOffset' and > 'endOffset' struct members since 'offset' doesn't apply longer. > > > > AG: exactly right. I’d keep the names start/endOffset, since in both cases > are offsets in a sequence, of chars or objects. > This seems flexible and generic. I guess you can even do it for listbox selection. If we do that then we need to change accessibleWithCaret docs as well to keep them in sync. I would have something different for 'offset' naming since 'offset' term is tightly related with text interface in my mind, but I'm not sure I have good ideas for this. > > > - In some cases it would be good to specify which limit of the > range is the anchor and which the active end. We could add that to the > structure as an additional member, or simply document the convention that > start = anchor and end = active. If we go with the latter, then start does > not have to be <= end in the Accessible order. > > > > Can you give an example please? I'm not sure I follow the use case. > > > > AG: in a list with selected items, you may want to know the last selected > item, which should be the active end of the selection range. Same with the > selected text in a doc, client may need to know whether you were selecting > text in a line left to right or in reverse. That info may be inferred by > client if it combines info about focus or caret position with the selection > range. But in many cases the server could make it easier for the client by > exposing the anchor and active ends since the server has to keep track of > that anyway. > > It sounds good with me. I like start = anchor and end = active approach but I'm curious whether it is a tri-state with 'undefined' as 3rd state, when the accessible doesn't have focus and caret. > > Best regards, > > > > --Andres. > > > > *From:* [email protected] [mailto: > [email protected]] *On Behalf Of *Alexander > Surkov > *Sent:* Thursday, October 29, 2015 9:02 AM > *To:* [email protected]; James Teh > *Subject:* [Accessibility-ia2] a new method to retrieve the selection > > > > Here's outcome email from Mozilla bug [1] discussion, where Jamie (NVDA) > and me concluded that IAccessible2 environment would benefit from having a > new method to retrieve text/content selection in perfromant way. The idea > is to supplement IAccesible2_2::accessibleWithCaret method, introduced for > caret, by similar method for selection getting. > > The proposed method may look like > > typedef struct IA2Range { > > AccessibleText* start; > > long startOffset; > > AccessibleText* end; > > long endOffset; > > } IA2Range; > > selectionRanges([out, size_is(,*nRanges) IA2Range **ranges, > > [out, retval] long *nRanges); > > which returns an array of all continues selection ranges within the given > accessible, and hosted by new IAccessible2_3 inherited from IAccessible2_2. > > Another idea from that thread was to keep newly added interfaces unfrozen, > until we are confident the interface will need no change in the nearest > future. So we'll be adding new methods into the end of the interface, to > keep binary compatibility. > > Please let me know your thinking. > > Thank you. > > Alexander. > > > [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1052866 > > >
_______________________________________________ Accessibility-ia2 mailing list [email protected] https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
