Re: Firefox 4 beta 8 -> get_accChild() returns E_INVALIDARG
Sylvain <[email protected]> Mon, 10 Jan 2011 22:56:51 -0800 (PST)
| Newsgroups | gmane.comp.mozilla.accessibility |
|---|---|
| Organization | http://groups.google.com |
| Message-ID | <f70163d4-a66a-4651-8dbd-770f30fd6024@i41g2000vbn.googlegroups.com> |
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