Re: Firefox 4 beta 8 -> get_accChild() returns E_INVALIDARG

Sylvain <[email protected]> Tue, 1 Feb 2011 05:33:15 -0800 (PST)
Newsgroups gmane.comp.mozilla.accessibility
Organization http://groups.google.com
Message-ID <57db856a-4031-4609-ac02-54bfae90c8fa@k38g2000vbn.googlegroups.com>
Hi David,

You told me "We'll let you know when the fix has landed in the nightly
build". Il there any news?

Thanks!

Sylvain

On 11 jan, 16:04, David Bolter <[email protected]> wrote:
> Sylvain,
>
> Thanks very much for reporting this bug to us. Alexander has filed and
> fixed! We'll let you know when the fix has landed in the nightly build.
>
> Cheers,
> David
>
> On 11/01/11 1:56 AM, Sylvain wrote:
>
>
>
> > Hi Alexander,
>
> > Here is the html page:www.swsso.fr/demo/
>
> > If you explore this page with a tool such as inspect32.exe (free
> > Microsoft tool), you can see that the content window has 6 childs.
> > The first 5 childs are<BR>  objects.
> > The 6th is a form object. Inspect32 succeeds getting this object
> > because it uses accNavigate method.
>
> > I would like to get this object with a simple loop form 1 to 6
> > invoking the get_accChild() method:
> > - 1 to 5 returns OK (<BR>  objects).
> > - 6 returns E_INVALID_ARG.
>
> > Hope this helps.
>
> > Thank you.
>
> > Sylvain
>
> > On 11 jan, 04:06, Alexander Surkov<[email protected]>  wrote:
> >> Hi, Sylvain.
>
> >> I could suppose beta 6 and beta 8 expose different accessible trees
> >> making your code fail. As David said we need a test case to see what
> >> happens. I don't really think it's trivial as you assumed.
>
> >> Thank you.
> >> Alex.
>
> >> On Mon, Jan 10, 2011 at 10:08 PM, Sylvain<[email protected]>  wrote:
> >>> Hi all,
> >>> This code was OK on beta 6, but fails on beta 8 (not tested on beta
> >>> 7). This code simply tries to get the first child of an object:
> >>> hr=AccessibleObjectFromWindow(w,(DWORD)OBJID_CLIENT,IID_IAccessible,
> >>> (void**)&pTopAccessible);
> >>> hr=pTopAccessible->accNavigate(0x1009,vtStart,&vtResult); //
> >>> NAVRELATION_EMBEDS = 0x1009
> >>> pIDispatch=(IDispatch*)vtResult.lVal;
> >>> hr=pIDispatch->QueryInterface(IID_IAccessible, (void**)&pAccessible);
> >>> hr=pAccessible->get_accChildCount(&lCount);
> >>> //  ==>  value of lCount is 6 in my example
> >>> vtChild.vt=VT_I4;
> >>> vtChild.lVal=1;
> >>> hr=pAccessible->get_accChild(vtChild,&pIDispatch); =>  hr=S_OK
> >>> ...
> >>> vtChild.lVal=6;
> >>> hr=pAccessible->get_accChild(vtChild,&pIDispatch); =>  hr=E_INVALIDARG!
> >>> Do you have an idea? Not sure, but I guess there is a bug in the
> >>> Firefox code: I suppose there is a test like this in the
> >>> get_accChild() method:
> >>> if (vtChild.lVal>= lCount) return E_INVALIDARG; // where lCount is
> >>> the number of childs.
> >>> As the childs are 1 based and not 0 based, the right code should be:
> >>> if (vtChild.lVal>  lCount) return E_INVALIDARG; // where lCount is the
> >>> number of childs.
> >>> Thanks!
> >>> Sylvain
> >>> _______________________________________________
> >>> dev-accessibility mailing list
> >>> [email protected]
> >>>https://lists.mozilla.org/listinfo/dev-accessibility
> > _______________________________________________
> > dev-accessibility mailing list
> > [email protected]
> >https://lists.mozilla.org/listinfo/dev-accessibility