Skip to content

Make UIA in MS Word optional again, through an Advanced Settings category#9200

Merged
michaelDCurran merged 7 commits into
masterfrom
configureUIAInMSWord
Jan 31, 2019
Merged

Make UIA in MS Word optional again, through an Advanced Settings category#9200
michaelDCurran merged 7 commits into
masterfrom
configureUIAInMSWord

Conversation

@michaelDCurran

Copy link
Copy Markdown
Member

Link to issue number:

None.

Summary of the issue:

NVDA switched to using UI Automation to access Microsoft Word document controls by default for Office 2016/365, however Office's UIA support is still not 100% complete.
This should be left optional for 2019.1 at least.

Description of how this pull request fixes the issue:

UIA is no longer used by default in MS Word. However, there is now a new Advanced Settings category in NVDA's settings dialog which contains a checkbox to turn this on for testing this feature out.
The Advanced Settings category also contains all other config options previously not in the GUI. these include caret movement timeout, and the Debug log categories.

Testing performed:

Tested each option in the Advanced settings category to ensure that their setting is remembered when opening the Settings dialog again, and that the option is truly activated / deactivated in NVDA itself.

Known issues with pull request:

Although there is a panel caption warning the user to be careful with these settings, it is not automatically read by NVDA when tabbing from the categories list into the settings themselves. This is similar to the Document Formatting settings caption which is also not read.

Change log entry:

New features:
A new Advanced Settings category has been added to NVDA's Settings dialog, including an option to try out NVDA's new support for Microsoft Word via the Microsoft UI Automation API.

…eady. Rather, still allow it to be used byased on the useInMSwordWhenAvailable config option.
…tains all config options that were previously not accessible from the GUI. this includes:

Use UIA in MS Word, caret movement timeout, and the debug log categories.
Comment thread source/gui/settingsDialogs.py Outdated
"louis",
"timeSinceInput",
):
checkbox=debugLogGroup.addItem(wx.CheckBox(self, label=key))

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have you considered making this a checkable list? You can use the keyboard layouts list as an example.

Comment thread user_docs/en/userGuide.t2t Outdated

+++ Advanced Settings +++
Warning! The settings in this category are for advanced users and may cause NVDA to not function correctly if configured in the wrong way.
Only make changes to these settings if you are sure you know what you are doing or if you have been specifically instrructed to by an NVDA developer.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

instrructed = instructed

@LeonarddeR LeonarddeR left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code looks ok, just some user guide things

Comment thread user_docs/en/userGuide.t2t Outdated

==== Use UI automation to access Microsoft Word document controls when available ====
When this option is enabled, NVDA will try to use the Microsoft UI Automation accessibility api in order to fetch information from Microsoft Word document controls.
this includes in Microsoft Word itself, and also the Microsoft Outlook message viewer and composer.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't start with a capital T

Suggested change
this includes in Microsoft Word itself, and also the Microsoft Outlook message viewer and composer.
This includes documents in Microsoft Word itself, and also the Microsoft Outlook message viewer and composer.

Comment thread user_docs/en/userGuide.t2t Outdated
==== Use UI automation to access Microsoft Word document controls when available ====
When this option is enabled, NVDA will try to use the Microsoft UI Automation accessibility api in order to fetch information from Microsoft Word document controls.
this includes in Microsoft Word itself, and also the Microsoft Outlook message viewer and composer.
For the most recent versions of Microsoft Office 2016/365 running on windows 10, UI Automation support is complete enough to provide access to Microsoft Word documents almost on par with NvDA's existing Microsoft Word support, with the added advantage that responsiveness is majorly increased.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you mean with "on par"? I assume it's a typo? Also, note the lower case v in NvDA's

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@LeonarddeR "on par" is used in golf, and at least quite commonly in Australia, apparently comes from Latin to mean equal to. As a suggestion, the phrase "feature parity" might be preferable.

Comment thread user_docs/en/userGuide.t2t Outdated
If you find that NVDA seems to be incorrectly tracking the caret E.g. it seems to be always one character behind or is repeating lines, then you may wish to try increasing this value.

==== Debug logging categories ====
The checkboxes in this group allow you to enable specific categories of debug messages in NVDA's log.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is now a list instead of a group, though the list has its own group

@DrSooom

DrSooom commented Jan 29, 2019

Copy link
Copy Markdown

Describing hwIo, audioDucking, gui, louis and timeSinceInput in the User Guide would be nice.

@LeonarddeR

Copy link
Copy Markdown
Collaborator

@DrSooom: I don't think it will add anything useful. These are debug flags that should usually only be set when a developer asks you. If a user doesn't know what they mean, it is probably not necessary for that user to consider checking them.

@DrSooom

DrSooom commented Jan 29, 2019

Copy link
Copy Markdown

@LeonarddeR: That's right, but the user should be able to control and understand the developer's choice. In the end he always can (and should) read the log file before sending/uploading it. So updating this wiki article should be enough.

I'm not sure if the User Guide contains links to wiki articles. If not, then the User Guide is already okay.

Edit: And maybe parts of the wiki article Log Files and Crash Dumps should be updated too.

Comment thread source/_UIAHandler.py
return True
if (
versionMajor<minMSWordUIAVersion.major
or versionMajor==minMSWordUIAVersion.major and versionMinor==minMSWordUIAVersion.minor and versionBuild<minMSWordUIAVersion.build

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should leave in place checks that exclude versions that we know will not work. Though this should be reflected in the user guide; "This setting will not enable UIA in MS Word versions below 16.0.9000"

@michaelDCurran

michaelDCurran commented Jan 29, 2019 via email

Copy link
Copy Markdown
Member Author

@michaelDCurran michaelDCurran merged commit 9983e3f into master Jan 31, 2019
@nvaccessAuto nvaccessAuto added this to the 2019.1 milestone Jan 31, 2019
michaelDCurran added a commit that referenced this pull request Jan 31, 2019
…e improvements due to UIA support. This was disabled by default in #9200.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants