[Accessibility-ia2] IEnumVARIANT vs arrays

Pete Brunet pete at a11ysoft.com
Tue Mar 6 05:35:05 UTC 2012


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
> <surkov.alexander at gmail.com> 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 <jamie at nvaccess.org> 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: jamie at nvaccess.org
>>> Web site: http://www.nvaccess.org/
>>> Phone: +61 7 5667 8372
>>> _______________________________________________
>>> Accessibility-ia2 mailing list
>>> Accessibility-ia2 at lists.linuxfoundation.org
>>> https://lists.linuxfoundation.org/mailman/listinfo/accessibility-ia2
> _______________________________________________
> Accessibility-ia2 mailing list
> Accessibility-ia2 at lists.linuxfoundation.org
> 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), ptbrunet at live.com (MSN)
http://www.a11ysoft.com/about/
Ionosphere: WS4G
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/accessibility-ia2/attachments/20120305/73a4b9cd/attachment-0001.html>


More information about the Accessibility-ia2 mailing list