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
Conversation
…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.
…r the root element.
…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.
…here appropriate.
… 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.
…d switch to focus mode.
…ng with quicknav. UIATextInfo._getControlFieldForObject: Restore old behaviour for name.
…operty if available.
… is not equal to name.
…fetching landmarks.
…phics, if they can be invoked.
…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.
…nt in certain situations.
…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.
… to help braille presentation.
…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.
These last commits look fine to me. |
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
Hi, Perhaps a consistency problem: In Edge, you can use browse mode to move between lists but not list items. STR:
Expected: You can navigate between list items. Setup:
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
""" | ||
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. |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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?
Fixes #6292.
Fixes #5987.
Fixes #6168.