From bogus@does.not.exist.com Fri Mar 21 11:08:18 2008 From: bogus@does.not.exist.com () Date: Fri, 21 Mar 2008 18:08:18 -0000 Subject: No subject Message-ID: value for invalid children? Xing, Is this what Workplace does? Pete Brunet IBM Accessibility Architecture and Development 11501 Burnet Road, MS 9022E004, Austin, TX 78758 Voice: (512) 838-4594, TL 678-4594, Fax: (512) 838-9666 Ionosphere: WS4G_______________________________________________ Accessibility-ia2 mailing list Accessibility-ia2 at lists.freestandards.org http://lists.freestandards.org/mailman/listinfo/accessibility-ia2 --=_alternative 000CF58786257260_= Content-Type: text/html; charset="US-ASCII"
Harald, Xing confirms that this is true.

Pete Brunet
                                                                         

IBM Accessibility Architecture and Development
11501 Burnet Road, MS 9022E004, Austin, TX 78758
Voice: (512) 838-4594, TL 678-4594, Fax: (512) 838-9666
Ionosphere: WS4G



Pete Brunet/Austin/IBM at IBMUS
Sent by: accessibility-ia2-bounces at lists.freestandards.org

12/21/2006 12:49 AM

To
Accessibility-ia2 at lists.freestandards.org
cc
Subject
[Accessibility-ia2] -1 from IAccessible2::indexInParent()






From bogus@does.not.exist.com Fri Mar 21 11:08:18 2008 From: bogus@does.not.exist.com () Date: Fri, 21 Mar 2008 18:08:18 -0000 Subject: No subject Message-ID: return value for invalid children?


Xing, Is this what Workplace does?


Pete Brunet

                                                                       

IBM Accessibility Architecture and Development
11501 Burnet Road, MS 9022E004, Austin, TX 78758
Voice: (512) 838-4594, TL 678-4594, Fax: (512) 838-9666
Ionosphere: WS4G
_______________________________________________
Accessibility-ia2 mailing list
Accessibility-ia2 at lists.freestandards.org
http://lists.freestandards.org/mailman/listinfo/accessibility-ia2

--=_alternative 000CF58786257260_=-- From bogus@does.not.exist.com Fri Mar 21 11:08:18 2008 From: bogus@does.not.exist.com () Date: Fri, 21 Mar 2008 18:08:18 -0000 Subject: No subject Message-ID: The IA2 specification means that the AT will be able to interface with the = application purely through the API and will not need to go under the=20 covers. This is at least the intent, the problem obviously is if the=20 application includes an artefact that is not defined in the IA2=20 specification. For example the SL client includes a whole variety of=20 artefacts?avatars, landscape, objects etc.?that are not defined in IA2 at=20 the moment. ... The next step must be to look at what other artefacts should be defined=20 and included in the IA2 specification. SL and other multiverses that are=20 in existence must be an important area to look into so that AT does not=20 lag too far behind the rest of technology. The great benefits of IA2,=20 being an open standard, is that it can be extended as required by the=20 market. In the case of multiverses the specification should not only=20 include the IA2 API for the AT but also a standard for proper 'tagging' of = the artefacts. IA2 has IAccessible2::extendedRole which can be used to pass "custom"=20 roles, i.e. roles not listed in the list of roles in the IA2 IDL. The AT=20 can know about these either because the custom control's behavior is known = to the AT through prior work or via some means to describe the role such=20 as RDF. The means to describe behavior is a subject area that has not=20 been discussed much at this point. --=_alternative 005E9EA48625726D_= Content-Type: text/html; charset="ISO-8859-1" Content-Transfer-Encoding: quoted-printable
http://www.it-analysis.com/blogs/Abr= ahams=5FAccessibility/2007/1/iaccessible2=5Ffor=5Fdummies.html

From that...

The IA2 specification means that the AT will be able to interface with the application purely through the API and will not need to go under the covers. This is at least the intent, the problem obviously is if the application includes an artefact that is not defined in the IA2 specification. For example the SL client includes a whole variety of artefacts—avatars, landscape, objects etc.—t= hat are not defined in IA2 at the moment.
...
The next step must be to look at what other artefacts should be defined and included in the IA2 specification. SL and other multiverses that are in existence must be an important area to look into so that AT does not lag too far behind the rest of technology. The great benefits of IA2, being an open standard, is that it can be extend= ed as required by the market. In the case of multiverses the specification should not only include the IA2 API for the AT but also a standard for proper 'tagging' of the artefacts.

IA2 has IAccessible2::extendedRole w= hich can be used to pass "custom" roles, i.e. roles not listed in the list of roles in the IA2 IDL.  The AT can know about these either because the custom control's behavior is known to the AT through prior work or via some means to describe the role such as RDF.  The means to describe behavior is a subject area that has not been discussed much at this point. --=_alternative 005E9EA48625726D_=-- From brunet at us.ibm.com Mon Mar 3 23:41:17 2008 From: brunet at us.ibm.com (Pete Brunet) Date: Tue, 4 Mar 2008 01:41:17 -0600 Subject: [Accessibility-ia2] Agenda for the Open Accessibility IA2 meeting - March 04, 2008 Message-ID: The IA2 meeting will be held this week again at 3 PM CST, i.e. GMT - 6. That's 5 AM in Irkutsk, 6 AM in Japan, 8 AM in Eastern Australia, and 10 PM in Germany. Note that USA and Canada switch to daylight savings time this coming Sunday - so don't miss your flight to CSUN! The callin numbers follow. (Note that Japan has been added to the list.) The passcode is listed in your meeting invitation. If you don't have the passcode contact me on the IRC channel or on IM. My IMs are ptbrunet on AIM (or yahoo or google talk) or brunet at us.ibm.com on MSN. The IRC channel is irc://irc.freestandards.org/ia2 SIP softphone access is via dialing telecon after connecting to telecon at a11y.org. This bridges into the US toll free number. Instructions at: https://lists.linux-foundation.org/pipermail/accessibility-ia2/2007-March/000195.html The agenda is at: http://www.linux-foundation.org/en/Accessibility/IAccessible2/Agenda/20080304 The minutes from the last meeting are at : http://www.linux-foundation.org/en/Accessibility/IAccessible2/Minutes/20080219 If you are new to the list and have not received a meeting invitation please let me know so I can add you to the invitation list. Pete Brunet IBM Accessibility Architecture and Development 11501 Burnet Road, MS 9022E004, Austin, TX 78758 Voice: (512) 838-4594, Cell: (512) 689-4155 Ionosphere: WS4G_______________________________________________ Accessibility-ia2 mailing list Accessibility-ia2 at lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.linux-foundation.org/pipermail/accessibility-ia2/attachments/20080304/abacd21f/attachment.htm From andgonza at adobe.com Tue Mar 4 06:08:00 2008 From: andgonza at adobe.com (Andres Gonzalez) Date: Tue, 4 Mar 2008 06:08:00 -0800 Subject: [Accessibility-ia2] regrets. RE: Agenda for the Open Accessibility IA2 meeting -March 04, 2008 In-Reply-To: References: Message-ID: <6E488C5EF2A61C48947FD8E37411386D023E86B4@namail3.corp.adobe.com> have a conflict with another meeting at this time. --Andres. ________________________________ From: accessibility-ia2-bounces at lists.linux-foundation.org [mailto:accessibility-ia2-bounces at lists.linux-foundation.org] On Behalf Of Pete Brunet Sent: Monday, March 03, 2008 11:41 PM To: Accessibility-ia2 at lists.freestandards.org Subject: [Accessibility-ia2] Agenda for the Open Accessibility IA2 meeting -March 04, 2008 The IA2 meeting will be held this week again at 3 PM CST, i.e. GMT - 6. That's 5 AM in Irkutsk, 6 AM in Japan, 8 AM in Eastern Australia, and 10 PM in Germany. Note that USA and Canada switch to daylight savings time this coming Sunday - so don't miss your flight to CSUN! The callin numbers follow. (Note that Japan has been added to the list.) The passcode is listed in your meeting invitation. If you don't have the passcode contact me on the IRC channel or on IM. My IMs are ptbrunet on AIM (or yahoo or google talk) or brunet at us.ibm.com on MSN. The IRC channel is irc://irc.freestandards.org/ia2 SIP softphone access is via dialing telecon after connecting to telecon at a11y.org. This bridges into the US toll free number. Instructions at: https://lists.linux-foundation.org/pipermail/accessibility-ia2/2007-Marc h/000195.html The agenda is at: http://www.linux-foundation.org/en/Accessibility/IAccessible2/Agenda/200 80304 The minutes from the last meeting are at : http://www.linux-foundation.org/en/Accessibility/IAccessible2/Minutes/20 080219 If you are new to the list and have not received a meeting invitation please let me know so I can add you to the invitation list. Pete Brunet IBM Accessibility Architecture and Development 11501 Burnet Road, MS 9022E004, Austin, TX 78758 Voice: (512) 838-4594, Cell: (512) 689-4155 Ionosphere: WS4G_______________________________________________ Accessibility-ia2 mailing list Accessibility-ia2 at lists.linux-foundation.org https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.linux-foundation.org/pipermail/accessibility-ia2/attachments/20080304/75ebdf04/attachment.htm From mick at kulgan.net Wed Mar 19 06:58:09 2008 From: mick at kulgan.net (Michael Curran) Date: Thu, 20 Mar 2008 00:58:09 +1100 Subject: [Accessibility-ia2] registering a proxy dll In-Reply-To: References: Message-ID: <47E11BF1.1020707@kulgan.net> Hi all, For a long while now, I have been aware of a limitation of IAccessible2, when used in a portable situation with an out-of-process AT. For example: where either the AT is on a usb key, or both the AT and the application are on a USB key. In this example USB key is really talking about the fact that the product is not installed on the system, it could be on a read-only drive, and it may have very limited user privilages. both NVDA and Accessibility Probe are examples of out-of-process ATs. When asking for an IAccessible2 object from an application over a process boundary, a IA2 proxy dll must be registered in order for the OS to understand how to martial the information. Up until now both NVDA developers and Accessibility Probe developers were under the impression that you have to register the IAccessible2 dll in the registry using regsvr32. And of course to do this, you probably need elevated user privilages which usually means doing this at install time. However, thanks to a particular person on the IA2 panel at CSUN, I now have a much clearer idea on how to solve this issue. The steps to make an interface usable with out registering the dll are as follows: *Load the DLL library in to the process with something like LoadLibrary or CoLoadLibrary. *Look up the DllGetClassObject function in this dll with GetProcAddress. *Call the DllGetClassObject function giving it IID_IAccessible2, IID_IUnknown, and a pointer to an IUnknown (which will receive the newly instanciated class object). This class object is a class factory which can create all the IAccessible2 interfaces. *Call CoRegisterClassObject, giving it IID_IAccessible2, the IUnknown you got from DllGetClassObject, CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, and a pointer to a long (where a special registration cooky can be stored for later use). This step lets your process know about this class object. All requests to create IAccessible2 interfaces will go to this class object. *Finally call CoRegisterPSClsid for each of the IAccessible2 interface IIDs, and IID_IAccessible2. This step tells your process that for any of these IIDs, use the class object that was registered under the IID of IID_IAccessible2. There is another step, that you need to perform once you are finnished with IAccessible2 (probably when your process is about to terminate) and that is: *Call CoRevokeClassObject, giving it that registration cooky you got from CoRegisterClassObject. This unregisters the class object from your process, and also makes sure it gets cleaned up etc. However, all these steps must be executed in each apartment that needs to access or create IAccessible2 objects. So this means that the steps need to be performed both in the AT and in the application. This also indirectly means that the IA2 proxy dll must not only be included with the AT, but also included with the application as well. I have been trying to work out a way so that the application does not need to perform these steps, but I don't think it is possible. It seems both the AT and the application must understand the martialling techniques for all the interfaces. Here is a bit of c++ code which clearly shows how to make IA2 work in a process: IA2DllHandle=LoadLibrary(L"ia2.dll"); LPFNGETCLASSOBJECT IA2Dll_DllGetClassObject=(LPFNGETCLASSOBJECT)GetProcAddress(IA2DllHandle,"DllGetClassObject"); IA2Dll_DllGetClassObject(IID_IAccessible2,IID_IUnknown,(LPVOID*)&IA2DllPunk); CoRegisterClassObject(IID_IAccessible2,IA2DllPunk,CLSCTX_LOCAL_SERVER,REGCLS_MULTIPLEUSE,(LPDWORD)&IA2RegCooky); */ CoRegisterPSClsid(IID_IAccessible2,IID_IAccessible2); CoRegisterPSClsid(IID_IAccessibleAction,IID_IAccessible2); CoRegisterPSClsid(IID_IAccessibleApplication,IID_IAccessible2); CoRegisterPSClsid(IID_IAccessibleComponent,IID_IAccessible2); CoRegisterPSClsid(IID_IAccessibleEditableText,IID_IAccessible2); CoRegisterPSClsid(IID_IAccessibleHypertext,IID_IAccessible2); CoRegisterPSClsid(IID_IAccessibleImage,IID_IAccessible2); CoRegisterPSClsid(IID_IAccessibleRelation,IID_IAccessible2); CoRegisterPSClsid(IID_IAccessibleTable,IID_IAccessible2); CoRegisterPSClsid(IID_IAccessibleText,IID_IAccessible2); CoRegisterPSClsid(IID_IAccessibleValue,IID_IAccessible2); I do strongly believe it is important for ATs such as NVDA to be able to access IAccessible2 applications (such as Firefox3) even if NVDA is run off a USB key. Blind and vision impaired people are wanting a truely portable screen reader more and more, so they can simply go up to any computer (whether it be at a university or a friend's house or perhaps a net cafe, and wack in their USB key and be able to use the system). NVDA is fully portable except for IAcessible2 support. As I have also noted, this does also effect Accessibility probe, which currently needs you to manually register actf-ia2.dll before you can view IAccessible2 objects. We have two options about how to move forward in making sure that out-of-process ATs can use IAccessible2 portably: 1. The AT sets up IA2 support in its own process, and the application also sets up IA2 support in its own process (example: NVDA, and Firefox3). This means two copies of the dll, and a change of code to both NVDA and Firefox3. 2. The AT sets up IA2 support in its own process, but then injects a small bit of code in to the application, which sets up IA2 support in the application, for the application. This means there only needs to be one copy of the dll, and no change needs to be made to the application. However the code that the AT uses to force IA2 to be set up in the application could be more complex than it needs to be, plus its another lot of injection that doesn't really have to happen. Note that for any process the AT wants to access, it must first inject and set up IA2, before it can then in its own process access IA2 from the application. In my opinion this is rather inefficient and a lot more work than it has to be. However I can also see how changes to applications can also be problematic. I have tested the IA2 setup code in both NVDA, and by injection, firefox3, and the code definitely works; ia2 dll does not have to be registered. However I must point out that the change I made to NVDA was very hackish, and it rode on the back of some virtualBuffer code, so I only got IA2 support when NVDA rendered documents. My point is that although I know the method works, I would certainly be happyer seeing each application set up IA2 itself. I think this is an issue we need to talk about in great detail. Many people have asked me why does NVDA not totally go in-process (which would fix the IA2 issue). The answer is: we may one day. But if we do it would be such a massive change that the project would not be called NVDA, it would also no longer be written in Python. But, the fact still remains that not just NVDA is affected by this problem. What are peoples thoughts on this issue? Does anyone know of any ways we can improve the code, or completely remove the need for the application having to setup IA2 in its own process? Mick Pete Brunet wrote: > > Mick, I couldn't find anything like CoRegisterPS or CoRegisterProxyStub > that Glen mentioned during the IA2 panel. > > I found DllRegisterServer and the REGISTER_PROXY_DLL macro but haven't > taken the time to read the docs to get a feel for if that would be of > any help. > > I also wonder if you can just directly add keys to the registry using > RegCreateKeyEx, RegSetValueEx, RegCloseKey? > > I also wonder about the proxy DLL. I searched the registry with regedit > and found one entry > HKEY_CLASSES_ROOT\CLSID\{01C20F2B-3DD2-400F-949F-AD00BDAB1D41}\InProcServer32 > > where the key name is (Default) and the value is > C:\WINDOWS\system32\IAccessible2Proxy.dll and the GUID in the key name > is the one for IAccessibleHyperLink. But why don't I see the GUIDs for > all the other interfaces? > > Do you know of a tool that could inspect the proxy DLL and dump out the > interface names, method names, and method signatures? > > *Pete Brunet* > > IBM Accessibility Architecture and Development > 11501 Burnet Road, MS 9022E004, Austin, TX 78758 > Voice: (512) 838-4594, Cell: (512) 689-4155 > Ionosphere: WS4G From steve at fullmeasure.co.uk Wed Mar 19 07:36:37 2008 From: steve at fullmeasure.co.uk (Steve Lee) Date: Wed, 19 Mar 2008 14:36:37 +0000 Subject: [Accessibility-ia2] registering a proxy dll In-Reply-To: <47E11BF1.1020707@kulgan.net> References: <47E11BF1.1020707@kulgan.net> Message-ID: <6a4dbccf0803190736i3d36def6o629429a80dc5dce@mail.gmail.com> > I do strongly believe it is important for ATs such as NVDA to be able to > access IAccessible2 applications (such as Firefox3) even if NVDA is run > off a USB key. Blind and vision impaired people are wanting a truely > portable screen reader more and more, so they can simply go up to any > computer (whether it be at a university or a friend's house or perhaps a > net cafe, and wack in their USB key and be able to use the system). NVDA > is fully portable except for IAcessible2 support. I agree. Don't you just love the registry and COM ;-) > I think this is an issue we need to talk about in great detail. It's hairy. > What are peoples thoughts on this issue? > Does anyone know of any ways we can improve the code, or completely > remove the need for the application having to setup IA2 in its own process? I'm *really* rusty on this but as you point out cross apartment calls require marshalling (it assumed it could be across a network) and so both sides need to know the rules. That's either done automatically via the registry, the way you have or the very low level IMarshal. You might be able loose the DLL if you use the files created from MIDL. But then you have to use them on both side too :-( That's a build time dependency rather than run time so that has pros and cons as the 2 sides are built separately. Sorry, that's really not any help.... I did find this when trying to remind myself. http://www.codeproject.com/KB/COM/minmarshal.aspx?df=100&forumid=295088&exp=0&select=1673643 Good luck -- Steve Lee -- Open Source Assistive Technology Software www.fullmeasure.co.uk From eitan at ascender.com Tue Mar 25 15:10:30 2008 From: eitan at ascender.com (Eitan Isaacson) Date: Tue, 25 Mar 2008 15:10:30 -0700 Subject: [Accessibility-ia2] GTK+ IA2 Bridge Message-ID: <1206483030.6570.14.camel@lifebook> Hi Folks. I did a bit of research, probably never enough. And I haven't seen anybody mention any kind of plan or effort to make a GTK+ module that will bridge it's native ATK support to AI2. Am I wrong? If the stars align, I plan to spend the next few months doing just this. I already learned a lot from FF3's accessible module, and the very useful wiki pages. Maybe OOo 3.0 has something to offer too? What would the benefit be? It would provide a good open source toolkit with cross platform accessibility, making it a compelling choice for applications that need such stuff. There is already a bunch of applications that use this toolkit in Windows, and are currently inaccessible. GTK+ could be the second cross-platform accessible toolkit after XUL. Anybody want to burst my bubble? Eitan. From steve at fullmeasure.co.uk Wed Mar 26 00:28:05 2008 From: steve at fullmeasure.co.uk (Steve Lee) Date: Wed, 26 Mar 2008 07:28:05 +0000 Subject: [Accessibility-ia2] GTK+ IA2 Bridge In-Reply-To: <1206483030.6570.14.camel@lifebook> References: <1206483030.6570.14.camel@lifebook> Message-ID: <6a4dbccf0803260028k387d6567y374cb85f19017301@mail.gmail.com> This is interesting. GTK and XUL are quite different in style so probably attract different developers. As GNOME is driving a11y work it make sense to have an easy route to other platforms to reach the biggest user base. From my limited use of it GTK is OK on Windows, One thought, when I got the GTK based Jambu OSK code going on windows I had to ferret around a lot get various bits together before it worked. To be really attractive cross platform that needs to be simplified if it has not already. Perhaps some market research to see which apps exist now that would be of interest when accessible on Windows? And with which IA2 enabled ATs? How about py1A2 as well for porting ATs? ;-) Steve On 25/03/2008, Eitan Isaacson wrote: > Hi Folks. > > I did a bit of research, probably never enough. And I haven't seen > anybody mention any kind of plan or effort to make a GTK+ module that > will bridge it's native ATK support to AI2. Am I wrong? > > If the stars align, I plan to spend the next few months doing just this. > I already learned a lot from FF3's accessible module, and the very > useful wiki pages. Maybe OOo 3.0 has something to offer too? > > What would the benefit be? It would provide a good open source toolkit > with cross platform accessibility, making it a compelling choice for > applications that need such stuff. > > There is already a bunch of applications that use this toolkit in > Windows, and are currently inaccessible. GTK+ could be the second > cross-platform accessible toolkit after XUL. > > Anybody want to burst my bubble? > > Eitan. > > _______________________________________________ > Accessibility-ia2 mailing list > Accessibility-ia2 at lists.linux-foundation.org > https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2 > -- Steve Lee -- Open Source Assistive Technology Software www.fullmeasure.co.uk