Skip to content

IAccessibles are needlessly being created for some cases of IAccessible NVDA object next/previous/firstChild/children properties #16

@nvaccessAuto

Description

@nvaccessAuto

Reported by mdcurran on 2007-11-21 03:21
MSAA accNavigate returns either an IAccessible pointer, or a childID. NVDA's IAccessibleHandler wraps these functions but makes them return (IAccessiblePointer,childID) each time,r ather than just one or the other. The issue with this is that when an IAccessible NVDA object calls accNavigate to go next/previous/firstChild, it receives back both IAccessiblePointer and childID, and then uses complex and sometimes time consuming logic to work out whether or not this is a good move, as in are we in a window, are we jumping to another one etc. Its also posible that a long the line another IAccessiblePointer is being created for the final NVDA object when it may not have to be. If accNavigate just returned either the childID or IAccessiblePointer, but not both, NVDA objects could suppress the complex logic if only the child ID changed, as the old IAccessiblePointer clearly can be used. This also goes for MSAA AccessibleChildren, in that NVDA wraps this function so it returns a list of IAccessiblePointer,childID pares, really it should return just a list of either IAccessiblePointers, or childIDs, but not pares of both. This change should also apply to the IAccessible accFocus property.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions