Hi all,

Currently, IAccessible2 inherits from IAccessible. However, this has 
been slated for removal in a future version, as noted in the spec:
> Although the IAccessible2 IDL is currently coded such that IAccessible2 is a 
> subclass of MSAA's IAccessible, none of MSAA's IAccessible methods are 
> overridden or extended. In order to allow future removal of the inheritance, 
> Assistive Technologies (ATs) should not rely on that inheritance.
Pete has also mentioned this several times on the list and during calls.

Unfortunately, NVDA does currently rely on this inheritance. (Perhaps 
our implementation predated this advice or perhaps we just missed it; 
I'm not sure.) While we've been aware of this in the past,
This has never been a problem, as all current production implementations 
simply extend their existing IAccessible objects by adding an 
IAccessible2 interface. However, the new IAccessible2 implementation now 
in Eclipse 3.6 prereleases does not do this, instead providing a 
completely separate object for IAccessible2. IAccessible methods return 
E_NOTIMPL.

My question is: why is it considered an error that IAccessible2 inherits 
from IAccessible? In many ways, this inheritance actually makes sense to 
me; IAccessible2 provides additional functionality which supplements 
IAccessible. You can't have IAccessible without IAccessible2. So why 
kill the inheritance? Is there any disadvantage to maintaining the 
inheritance of IAccessible?

We can certainly fix NVDA if necessary, but no production implementation 
currently requires this, so I'm wondering whether this aspect of the 
spec needs to change.

Thanks.

Jamie

-- 
James Teh
Vice President
NV Access Inc, ABN 61773362390
Email: ja...@nvaccess.org
Web site: http://www.nvaccess.org/
_______________________________________________
Accessibility-ia2 mailing list
Accessibility-ia2@lists.linuxfoundation.org
https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2

Reply via email to