2nd is more flexible than 1, 1.1 is a nice shortcut for 2 in case of one target so probably I would go with 1.1 and 2. Alex.
On Tue, Mar 6, 2012 at 2:35 PM, Pete Brunet <[email protected]> wrote: > Thanks Alex (and Jamie), I offer two choices, and in both cases using IDL > like our recently added IATable2::selectedRows/Columns/Cells. I like the > first choice better because it offers a very simple method for the case that > will be used 99% of the time. The second choice is the one Jamie proposed. > > 1) > // Fetch one target, even if there is more than one. > HRESULT IAccessible2_2::relationTargetOfType ( > [in] BSTR type, > [out, retvalue] IUnknown **target ) > > and > > // Fetch all targets > HRESULT IAccessible2_2::relationTargetsOfType ( > [in] BSTR type, > [out, size_is(,*nTargets)] IUnknown ***targets, > > [out, retval] long *nTargets ) > > 2) > // Fetch either one or all targets depending on the maxTargets parameter. > // Typically maxTargets will be 1 but if maxTargets is 0 the server will > return all available targets, using nTargets to indicate how many were > returned. > HRESULT IAccessible2_2::relationTargetsOfType ( > [in] BSTR type, > [in] long maxTargets, > [out, size_is(,*nTargets)] IUnknown ***targets, > > [out, retval] long *nTargets ) > > That maxTargets parameter could be a boolean but as a long it provides the > option of asking for the first n targets. > > In both cases the server would allocate the array, using CoTaskMemAlloc. The > client would use CoTaskMemFree to free the array. > > Pete > > > On 3/5/12 10:25 PM, Alexander Surkov wrote: > > Basically that's what Jamie said. We need to make sure the server > doesn't do extra work when nobody needs it. So I'm fine with Jamie > proposal to pass the desired targets amount. > Alex. > > On Tue, Mar 6, 2012 at 1:19 PM, Alexander Surkov > <[email protected]> wrote: > > ARIA tends to expose multiple targets especially stuffs like > aria-labelledby. I don't have statistics though. But the point is if > AT needs only one targets then the server shouldn't spend a time to > check whether there are other targets. In other words we can end up > with single target but the server can do a lot of computation to > figure out this. > > Thank you. > Alex. > > > On Tue, Mar 6, 2012 at 6:31 AM, James Teh <[email protected]> wrote: > > On 6/03/2012 7:20 AM, Pete Brunet wrote: > > Jamie, Since the server allocates the array, are there any issues for AT > regarding the method I proposed? > > Not directly for ATs. However, fetching multiple targets might be expensive > and slow on the server side; if I recall correctly, Alex has concurred with > this. Obviously, if the server is slow, the client slows down too. The idea > was to allow clients who only want one target to just fetch one target > without incurring a performance penalty on the server side. > > Alex, how often are there actually multiple targets for a single relation in > Mozilla itself? > > > Jamie > > -- > James Teh > Director, NV Access Limited > Email: [email protected] > Web site: http://www.nvaccess.org/ > Phone: +61 7 5667 8372 > _______________________________________________ > Accessibility-ia2 mailing list > [email protected] > https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 > > _______________________________________________ > Accessibility-ia2 mailing list > [email protected] > https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 > > > -- > Pete Brunet > > a11ysoft - Accessibility Architecture and Development > (512) 467-4706 (work), (512) 689-4155 (cell) > Skype: pete.brunet > IM: ptbrunet (AOL, Google), [email protected] (MSN) > http://www.a11ysoft.com/about/ > Ionosphere: WS4G > > _______________________________________________ > Accessibility-ia2 mailing list > [email protected] > https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2 > _______________________________________________ Accessibility-ia2 mailing list [email protected] https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
