Skip to content

UIA handler (backward compatibility): unify public and private modules under a package #10916

@josephsl

Description

@josephsl

Hi,

The following should wait until work on next incompatible version of NVDA begins:

Is your feature request related to a problem? Please describe.

For years, UIA handler module was split into two parts: a publicly accessible module (UIAHandler.py) and a private module (_UIAHandler.py). This split was necessary in 2011 in order for NVDA to run without UI Automation client support (namely on Windows XP, Server 2003, and old releases of Windows Vista and Server 2008). Additionally, private UIA handler module wasn't used if UIA was forcefully disabled. Lastly, other accessibility API handlers such as JAB and IAccessible are contained inside one module.

Describe the solution you'd like

Unify public and private UIA handler modules into one file.

Describe alternatives you've considered

Leave the UIA handler arrangement as is.

Additional context

Consider that:

  1. NVDA supports Windows 7, Server 2008 R2 and later, which comes with a bit more robust UIA support than old Windows releases, but not up to the level as seen with Windows 8/Server 2012 and later.
  2. If UIA is forcefully disabled, an error is raised.
  3. Other accessibility API handlers are housed inside one file per API, whereas UIA is split in two. This means majority of UIA support improvements are housed inside the private module, with the public module importing everything.

As this proposal deals with an important accessibility API handler, I propose this change as a backwards incompatible change.

Thanks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No 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