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
merged 63 commits into from Nov 2, 2016

Conversation

michaelDCurran
Copy link
Member

@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.
…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.
@jcsteh
Copy link
Contributor

jcsteh commented Sep 27, 2016

These last commits look fine to me.

@beqabeqa473
Copy link
Contributor

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
@josephsl
Copy link
Collaborator

Hi,

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

STR:

  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".

Setup:

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

Thanks.

* 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
@michaelDCurran
Copy link
Member Author

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

"""
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.
Copy link
Contributor

Choose a reason for hiding this comment

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

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

unit=UIAFormatUnits[0]
furtherUIAFormatUnits=UIAFormatUnits[1:]
else:
unit=None
Copy link
Contributor

Choose a reason for hiding this comment

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

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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants