Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stop using MS Edge specific code for Internet Explorer edit fields. #10652

Merged
merged 2 commits into from
Jan 29, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion source/NVDAObjects/UIA/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -853,7 +853,11 @@ def findOverlayClasses(self,clsList):
# Windows 8.x toast, although a form of tool tip, is covered separately.
elif UIAControlType==UIAHandler.UIA_ToolTipControlTypeId:
clsList.append(ToolTip)
elif self.UIAElement.cachedFrameworkID in ("InternetExplorer","MicrosoftEdge"):
elif(
self.UIAElement.cachedFrameworkID in ("InternetExplorer", "MicrosoftEdge")
Copy link
Member

Choose a reason for hiding this comment

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

I'm pretty confident that Internet Explorer can be removed here, as that would only be true for the mshtml implementation, not edgeHTML. And, we would want this fix for any mshtml embedding, not just the Internet Explorer application.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Removing InternetExplorer from there would break Edge on older builds of Windows 10 (it is used at least on 1507, 1511 and possibly Anniversary Update) as an FrameworkID. The fact that UIA is used for Internet Explorer controls on Windows 7 is however strange, because this is not occurring on Windows 10, I am not sure why.
Would it be acceptable to simply add Internet Explorer_Server to the bad UIA class names when running on anything lower than Windows 10?

# But not for Internet Explorer
and not self.appModule.appName == 'iexplore'
):
from . import edge
if UIAClassName in ("Internet Explorer_Server","WebView") and self.role==controlTypes.ROLE_PANE:
clsList.append(edge.EdgeHTMLRootContainer)
Expand Down