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

Initial support for Windows 10 anniversary versions of both Microsoft Edge and Windows 10 Mail. #6271

merged 63 commits into from Nov 2, 2016


Copy link

@michaelDCurran michaelDCurran commented Aug 16, 2016

Fixes #6292.
Fixes #5987.
Fixes #6168.

…icknav to work correctly in Edge browse mode.
* GetChildren / GetEnclosingElement zoom to the deepest control at the start. Therefore we must take this into acocunt.
…e end that are incorrectly placed there by Edge (E.g. expanding to line before a list, table etc includes the list or table).
…thus we no longer need to blindly allow all UIA focus events on the root container.

This also allows remembering of the caret position when alt tabbing away and back again.
… linked, bold, italic, underline, strike through, super/subScript).
…ue per object by adding UIA's runtime ID to the controlField.

E.g. Arrowing down from one list to another at the same level use to class the controlField for each list as being the same list.
…t is not needed and stops us from correctly chopping the extra elements accideintally included by Edge at the end of lines.
…on't need to collect information about their root element at all. In deed, _getTextWithFields_unbalanced shuold *not* recurse after its root element. Stops an infinit loop when dealing with aria-hidden text.
…ng with quicknav.

UIATextInfo._getControlFieldForObject: Restore old behaviour for name.
…n embedded child (checkbox etc) at the beginning. This stops skipping out of the document when a control is inside a label, and standardizes this check with similar checks in other parts of the code.
…_getTextWithFields_unbalanced which allows for a substantial removal of duplicate code.
…tributeValue rather than findAttribute.

Using findAttribute was never totally accurate in all situations, and its speed was based on the size of the document rather than how far the next heading was. In most cases moving by heading is now faster. In a few cases it may have become slower, though it is now more in line with Narrator.
…s, and the unit is either line or paragraph or the reason is focus, always announce headings in intial formatting even if the heading level has not changed.

Edge exposes its headings via formatting and many users are confused as to why headings are not announced again when repeting the same line like in other browsers.
…ntrol such as as a checkbox does not include the control in its children or enclosing element. Also ensure these controls are focused with using quicknav / arrowing.
jcsteh approved these changes Sep 23, 2016
…he next line when expanding to line/paragraph. Other code already handled 90% of usecases. This code fixed one and introduced one. For now minimal is better.
Copy link

@jcsteh jcsteh commented Sep 27, 2016

These last commits look fine to me.

Copy link

@beqabeqa473 beqabeqa473 commented Sep 27, 2016

hi all.

when reading text in edge with arrow keys, small chunks are displayed on each line compared to ff.

is it something that should be improved?

…TextRange::getEnclosingElement is not implemented (File Explorer search, Win 7 start menu search)

Fixes #6411
michaelDCurran added a commit that referenced this pull request Sep 29, 2016
michaelDCurran added a commit that referenced this pull request Sep 30, 2016
Copy link

@josephsl josephsl commented Oct 14, 2016


Perhaps a consistency problem: In Edge, you can use browse mode to move between lists but not list items.


  1. Open What's New in Edge.
  2. Try navigating between list items (I).

Expected: You can navigate between list items.
Actual: NVDA says, "not supported in this document".


  • NVDA version: next.13643 )EdgeRS1 applied)
  • Windows version: Version 1607 (build 14393)


* UIATextInfo: When fetching formatted text, firstly try fetching formatting for the entire chunk, and only falling back to splitting by unit if a mixed attribute is found. Also, allow subclasses to override the UIA format units to be tried when splitting.
* Catch COMError when trying to fetch the selection with IUIAutomationTextRange::getSelection and raise RuntimeError as expected by the rest of NVDA.

Fixes #6454
Copy link
Member Author

@michaelDCurran michaelDCurran commented Oct 18, 2016

Updated to fix #6454. @jcsteh could you please review.

jcsteh approved these changes Oct 18, 2016
Yields format fields and text for the given UI Automation text range, split up by the first available UI Automation text unit that does not result in mixed attribute values.
@param textRange: the UI Automation text range to walk.
@type textRange: L{UIAHandler.IUIAutomationTextRange}
@param formatConfig: the types of formatting requested.
@ type formatConfig: a dictionary of NVDA document formatting configuration keys with values set to true for those types that should be fetched.
@param UIAFormatUnits: the UI Automation text units (in order of resolution) that should be used to split the text such that formatting won't have mixed values.
@type UIAFormatUnits: List of UI Automation Text Units
@param UIAFormatUnits: the UI Automation text units (in order of resolution) that should be used to split the text such that formatting won't have mixed values. If None, then self.UIAFormatUnits will be used.

This comment has been minimized.


jcsteh Oct 18, 2016

This needs to be clarified to specify the behaviour for the three cases: a list of units, None or an empty list of units.


This comment has been minimized.


jcsteh Oct 18, 2016

Can we have a comment here saying that this will try the entire range first before any units?

michaelDCurran added a commit that referenced this pull request Oct 19, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

6 participants