Commit Graph

524 Commits

Author SHA1 Message Date
Morgan Reschenberg
897cbb0e6e Bug 1688490: Gather moxParent directly instead of querying the parent of our gecko accessible r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D102965
2021-01-26 21:12:11 +00:00
Eitan Isaacson
92f8f50dd8 Bug 1688680 - Don't include AXTextStateSync in read-only collapsed text selection events. r=morgan.
Differential Revision: https://phabricator.services.mozilla.com/D102948
2021-01-25 17:58:52 +00:00
Eitan Isaacson
81befd069d Bug 1686832 - Cache MULTI_LINE in mozAccessible. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D101842
2021-01-22 20:42:26 +00:00
Eitan Isaacson
135c36619d Bug 1686995 - Add AXTextSelectionDirection and AXTextSelectionGranularity to text selection events. r=morgan
.. and also add AXTextSelectionChangedFocus and AXTextStateSync when needed.

Differential Revision: https://phabricator.services.mozilla.com/D102509
2021-01-22 21:12:56 +00:00
Morgan Reschenberg
09060aa168 Bug 1686164: Implement ignoreWithParent for context menu items and submenus. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D101652
2021-01-21 19:58:13 +00:00
Brindusan Cristian
ff8e5cb389 Backed out changeset 2860943a09a3 (bug 1686164) for build bustages at mozSelectableElements.mm. CLOSED TREE 2021-01-21 10:58:18 +02:00
Morgan Reschenberg
fdab0ce3d7 Bug 1686164: Implement ignoreWithParent for context menu items and submenus. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D101652
2021-01-21 08:42:02 +00:00
Butkovits Atila
477b1bc69a Backed out changeset ea36fa2936a2 (bug 1686164) for causing failures on test_controls.html. CLOSED TREE 2021-01-20 08:43:35 +02:00
Morgan Reschenberg
1baf91ec07 Bug 1686164: Implement ignoreWithParent for context menu items and submenus. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D101652
2021-01-19 22:04:52 +00:00
Eitan Isaacson
720902efa2 Bug 1686839 - Apply MustPrune dynamically and not at creation time. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D101853
2021-01-19 17:15:05 +00:00
Marco Zehe
eede5be7ec Bug 1687480 - Fire NSAccessibility notifications for expanding and collapsing rows, r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D102308
2021-01-19 16:53:38 +00:00
Eitan Isaacson
09c48de881 Bug 1686827 - GeckoTextMarker is lesser than if child's offset is greater or equal. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D101835
2021-01-15 19:18:46 +00:00
Eitan Isaacson
a5ce58cf1a Bug 1625953 - P2: Introduce support for aria-controls and aria-flowto in mac. r=morgan
This is via AXARIAControls and AXLinkedUIElements respectively.

Differential Revision: https://phabricator.services.mozilla.com/D101085
2021-01-15 17:22:56 +00:00
Eitan Isaacson
515ee847be Bug 1625953 - P1: Introduce getRelationsByType for mozAccessible. r=morgan
A small refactor to make all of the relations getting easier.

Differential Revision: https://phabricator.services.mozilla.com/D101084
2021-01-15 17:22:49 +00:00
Dorel Luca
9e9b090ec4 Backed out 2 changesets (bug 1625953) for Eslint failure
Backed out changeset 33fa80e826a8 (bug 1625953)
Backed out changeset 36da5d89bc8a (bug 1625953)
2021-01-15 06:37:54 +02:00
Eitan Isaacson
0c9ddcad81 Bug 1625953 - P2: Introduce support for aria-controls and aria-flowto in mac. r=morgan
This is via AXARIAControls and AXLinkedUIElements respectively.

Depends on D101084

Differential Revision: https://phabricator.services.mozilla.com/D101085
2021-01-08 00:22:25 +00:00
Eitan Isaacson
1dcdfb0a26 Bug 1625953 - P1: Introduce getRelationsByType for mozAccessible. r=morgan
A small refactor to make all of the relations getting easier.

Differential Revision: https://phabricator.services.mozilla.com/D101084
2021-01-08 00:19:04 +00:00
Morgan Reschenberg
c19d6d89b4 Bug 1682865: Map roles::EDITCOMBOBOX to mozTextAccessible r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D101407
2021-01-11 22:04:13 +00:00
Morgan Reschenberg
2bc463ad54 Bug 1681292: Ensure menu items correctly expose AXVisibleChildren and AXChildren r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D99949
2021-01-07 21:33:21 +00:00
Morgan Reschenberg
29a8164b84 Bug 1680589: Make AXDisclosing settable on outline rows r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D101053
2021-01-07 21:29:27 +00:00
Markus Stange
18e3c81cf5 Bug 1684896 - For the static NSDictionary MacSelectorMap objects, use function-local statics rather than globals. r=morgan
This means that the NSDictionaries will be constructed the first time the
wrapper function is called, and not at C++ static initializer time.
This avoids false positive warnings when running with the environment variables
`OBJC_DEBUG_MISSING_POOLS=YES LIBDISPATCH_DEBUG_MISSING_POOLS=NO`.

Differential Revision: https://phabricator.services.mozilla.com/D100976
2021-01-07 17:53:39 +00:00
Eitan Isaacson
c21730a605 Bug 1682985 - Support aria-busy with AXElementBusy and AXElementBusyChanged. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D100838
2021-01-06 17:23:45 +00:00
Sylvestre Ledru
b58ddc19df Bug 1519636 - Reformat recent changes to the Google coding style r=andi
Updated with Debian clang-format version 11.0.1-1

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D100934
2021-01-06 17:17:23 +00:00
Markus Stange
5cd8830a74 Bug 1683723 - Replace deprecated Cocoa enum constants with their modern replacements. r=spohl
I ran the following command:

```
rg -l 'NSAlphaShiftKeyMask' . | xargs sed -i '' -e 's/NSAlphaShiftKeyMask/NSEventModifierFlagCapsLock/g'
rg -l 'NSAlternateKeyMask' . | xargs sed -i '' -e 's/NSAlternateKeyMask/NSEventModifierFlagOption/g'
rg -l 'NSAnyEventMask' . | xargs sed -i '' -e 's/NSAnyEventMask/NSEventMaskAny/g'
rg -l 'NSApplicationDefined' . | xargs sed -i '' -e 's/NSApplicationDefined/NSEventTypeApplicationDefined/g'
rg -l 'NSBorderlessWindowMask' . | xargs sed -i '' -e 's/NSBorderlessWindowMask/NSWindowStyleMaskBorderless/g'
rg -l 'NSCenterTextAlignment' . | xargs sed -i '' -e 's/NSCenterTextAlignment/NSTextAlignmentCenter/g'
rg -l 'NSClosableWindowMask' . | xargs sed -i '' -e 's/NSClosableWindowMask/NSWindowStyleMaskClosable/g'
rg -l 'NSCommandKeyMask' . | xargs sed -i '' -e 's/NSCommandKeyMask/NSEventModifierFlagCommand/g'
rg -l 'NSCompositeCopy' . | xargs sed -i '' -e 's/NSCompositeCopy/NSCompositingOperationCopy/g'
rg -l 'NSControlKeyMask' . | xargs sed -i '' -e 's/NSControlKeyMask/NSEventModifierFlagControl/g'
rg -l 'NSDeviceIndependentModifierFlagsMask' . | xargs sed -i '' -e 's/NSDeviceIndependentModifierFlagsMask/NSEventModifierFlagDeviceIndependentFlagsMask/g'
rg -l 'NSFlagsChanged' . | xargs sed -i '' -e 's/NSFlagsChanged/NSEventTypeFlagsChanged/g'
rg -l 'NSFullScreenWindowMask' . | xargs sed -i '' -e 's/NSFullScreenWindowMask/NSWindowStyleMaskFullScreen/g'
rg -l 'NSFullSizeContentViewWindowMask' . | xargs sed -i '' -e 's/NSFullSizeContentViewWindowMask/NSWindowStyleMaskFullSizeContentView/g'
rg -l 'NSFunctionKeyMask' . | xargs sed -i '' -e 's/NSFunctionKeyMask/NSEventModifierFlagFunction/g'
rg -l 'NSHelpKeyMask' . | xargs sed -i '' -e 's/NSHelpKeyMask/NSEventModifierFlagHelp/g'
rg -l 'NSKeyDown' . | xargs sed -i '' -e 's/NSKeyDown/NSEventTypeKeyDown/g'
rg -l 'NSKeyUp' . | xargs sed -i '' -e 's/NSKeyUp/NSEventTypeKeyUp/g'
rg -l 'NSLeftMouseDownMask' . | xargs sed -i '' -e 's/NSLeftMouseDownMask/NSEventMaskLeftMouseDown/g'
rg -l 'NSLeftMouseDown' . | xargs sed -i '' -e 's/NSLeftMouseDown/NSEventTypeLeftMouseDown/g'
rg -l 'NSLeftMouseDragged' . | xargs sed -i '' -e 's/NSLeftMouseDragged/NSEventTypeLeftMouseDragged/g'
rg -l 'NSLeftMouseUp' . | xargs sed -i '' -e 's/NSLeftMouseUp/NSEventTypeLeftMouseUp/g'
rg -l 'NSMiniaturizableWindowMask' . | xargs sed -i '' -e 's/NSMiniaturizableWindowMask/NSWindowStyleMaskMiniaturizable/g'
rg -l 'NSMiniControlSize' . | xargs sed -i '' -e 's/NSMiniControlSize/NSControlSizeMini/g'
rg -l 'NSMouseEntered' . | xargs sed -i '' -e 's/NSMouseEntered/NSEventTypeMouseEntered/g'
rg -l 'NSMouseExited' . | xargs sed -i '' -e 's/NSMouseExited/NSEventTypeMouseExited/g'
rg -l 'NSMouseMoved' . | xargs sed -i '' -e 's/NSMouseMoved/NSEventTypeMouseMoved/g'
rg -l 'NSNumericPadKeyMask' . | xargs sed -i '' -e 's/NSNumericPadKeyMask/NSEventModifierFlagNumericPad/g'
rg -l 'NSOtherMouseDownMask' . | xargs sed -i '' -e 's/NSOtherMouseDownMask/NSEventMaskOtherMouseDown/g'
rg -l 'NSOtherMouseDown' . | xargs sed -i '' -e 's/NSOtherMouseDown/NSEventTypeOtherMouseDown/g'
rg -l 'NSOtherMouseDragged' . | xargs sed -i '' -e 's/NSOtherMouseDragged/NSEventTypeOtherMouseDragged/g'
rg -l 'NSOtherMouseUp' . | xargs sed -i '' -e 's/NSOtherMouseUp/NSEventTypeOtherMouseUp/g'
rg -l 'NSRegularControlSize' . | xargs sed -i '' -e 's/NSRegularControlSize/NSControlSizeRegular/g'
rg -l 'NSResizableWindowMask' . | xargs sed -i '' -e 's/NSResizableWindowMask/NSWindowStyleMaskResizable/g'
rg -l 'NSRightMouseDown' . | xargs sed -i '' -e 's/NSRightMouseDown/NSEventTypeRightMouseDown/g'
rg -l 'NSRightMouseDragged' . | xargs sed -i '' -e 's/NSRightMouseDragged/NSEventTypeRightMouseDragged/g'
rg -l 'NSRightMouseUp' . | xargs sed -i '' -e 's/NSRightMouseUp/NSEventTypeRightMouseUp/g'
rg -l 'NSRightTextAlignment' . | xargs sed -i '' -e 's/NSRightTextAlignment/NSTextAlignmentRight/g'
rg -l 'NSScrollWheelMask' . | xargs sed -i '' -e 's/NSScrollWheelMask/NSEventMaskScrollWheel/g'
rg -l 'NSScrollWheel' . | xargs sed -i '' -e 's/NSScrollWheel/NSEventTypeScrollWheel/g'
rg -l 'NSShiftKeyMask' . | xargs sed -i '' -e 's/NSShiftKeyMask/NSEventModifierFlagShift/g'
rg -l 'NSSmallControlSize' . | xargs sed -i '' -e 's/NSSmallControlSize/NSControlSizeSmall/g'
rg -l 'NSTabletPointEventSubtype' . | xargs sed -i '' -e 's/NSTabletPointEventSubtype/NSEventSubtypeTabletPoint/g'
rg -l 'NSTitledWindowMask' . | xargs sed -i '' -e 's/NSTitledWindowMask/NSWindowStyleMaskTitled/g'
```

Then I removed changes to third-party webrtc code, removed a comment in accessible/mac/mozAccessible.mm,
and performed some manual replacements in native_mouse_mac_window.xhtml.

Differential Revision: https://phabricator.services.mozilla.com/D100260
2021-01-05 21:17:11 +00:00
Eitan Isaacson
9e19999a57 Bug 1681909 - P3: Implement e10s post search filter and test. r=morgan
The test adds fission testing as well.

Differential Revision: https://phabricator.services.mozilla.com/D100732
2021-01-05 20:35:37 +00:00
Eitan Isaacson
4537ab3655 Bug 1681909 - P2: Implement post filter for non-e10s case. r=morgan
Introducing this as a separate patch to simplify this changeset and first introduce a straightforward-ish implementation.

Differential Revision: https://phabricator.services.mozilla.com/D100731
2021-01-05 20:35:35 +00:00
Eitan Isaacson
ca8fda7434 Bug 1681909 - P1: Add IPC stubs for ApplyPostSearchFilter. r=morgan,ipc-reviewers,mccr8
Applying a bulk filter on accessibles in content process allows us to avoid a potentially large (and variable) number of IPC sync calls to retrieve the accessible names. I chose to implement this as a "post filter" and not to actually do the entire search in content because it would cause a lot of duplication of code for non-IPC searching, and we wouldn't have the flexibility to combine a text search with any arbitrary search key as the API requires.

I also generalized the RangeTypes.h header to PlatformExtTypes so it can be used to define filter types as well.

Differential Revision: https://phabricator.services.mozilla.com/D100730
2021-01-05 20:35:22 +00:00
Eitan Isaacson
c2532de498 Bug 1680329 - Add AXTextStateChangeType to selection events. r=morgan
It seems that VoiceOver depends on that property to know if a selection is be extended or moved. This manifests in several places in Slack when the user combines VO navigation with Slack's keyboard navigation.

Also changed where we retrieve the editable ancestor to simplify the notification dispatching block.

Differential Revision: https://phabricator.services.mozilla.com/D100452
2021-01-04 22:37:46 +00:00
Eitan Isaacson
3ad026b52e Bug 1677934 - Check for null when getting leaf for text marker. r=morgan
This doesn't happen often. I can't find a reproducable case to test with. This happens with rapidly mutating content and is the result of some kind of race.

Differential Revision: https://phabricator.services.mozilla.com/D100174
2021-01-04 17:48:50 +00:00
Eitan Isaacson
4364371432 Bug 1681072 - Don't recurse into link if it is in more than one offset. r=MarcoZ
This is a safeguard for endless recursion in HyperTextIterator::NormalizeForward. Will catch similar corruptions found in bug 1682692.

Differential Revision: https://phabricator.services.mozilla.com/D99926
2020-12-17 06:09:49 +00:00
Eitan Isaacson
2fcbbfc201 Bug 1681166 - Check selection is valid before cropping it in mozTextAccessible. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D99942
2020-12-16 21:36:12 +00:00
Morgan Reschenberg
a8d528a678 Bug 1664894: Remove logging r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D99933
2020-12-16 20:10:13 +00:00
Marco Zehe
c191381e18 Bug 1682247 - Post an AXTitleChanged notification if the Mac layer is notified of a name change event, r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D99664
2020-12-16 06:49:57 +00:00
Eitan Isaacson
f248fdbd3a Bug 1680277 - 3/3: Use AXTextArea for multiline and aria text boxes. r=morgan,MarcoZ
By spec, it would need to be an area for aria-multiline=true and a field for aria-multiline=false. Chrome seems to assign all aria text boxes to areas. For some reason this allows VO to recognize links when editing. Webkit doesn't need this, for some reason and can get links announces in AXTextField as well.

Depends on D99312

Differential Revision: https://phabricator.services.mozilla.com/D99313
2020-12-11 10:29:15 +00:00
Eitan Isaacson
e4ae2df9df Bug 1680277 - 2/3: Use previous offset for calculating element at marker. r=morgan
This is consistent with how WebKit does it: if offset is between two accessibles,
return the previous one.

Differential Revision: https://phabricator.services.mozilla.com/D99312
2020-12-11 05:10:52 +00:00
Eitan Isaacson
b65404fb2c Bug 1680277 - 1/3: Add editable and focusable ancestor getters. r=morgan
For focusable ancestor, just use editable ancestor since the IPC toll
on finding closest focusable ancestor isn't worth it.

Differential Revision: https://phabricator.services.mozilla.com/D99311
2020-12-11 05:10:44 +00:00
Dorel Luca
cab44f4e66 Backed out 3 changesets (bug 1680277) for Browser-chrome failures in browser/mac/browser_rotor.js. CLOSED TREE
Backed out changeset 4ad2bcdda94c (bug 1680277)
Backed out changeset bb00472c7a1f (bug 1680277)
Backed out changeset 5bbfaf673d39 (bug 1680277)
2020-12-11 04:21:45 +02:00
Eitan Isaacson
64d2a266cd Bug 1680277 - 3/3: Use AXTextArea for multiline and aria text boxes. r=morgan
By spec, it would need to be an area for aria-multiline=true and a field for aria-multiline=false. Chrome seems to assign all aria text boxes to areas. For some reason this allows VO to recognize links when editing. Webkit doesn't need this, for some reason and can get links announces in AXTextField as well.

Depends on D99312

Differential Revision: https://phabricator.services.mozilla.com/D99313
2020-12-10 19:00:05 +00:00
Eitan Isaacson
d19edae3f4 Bug 1680277 - 2/3: Use use previous offset for calculating element at marker. r=morgan
This is consistent with how WebKit does it: if offset is between two accessibles,
return the previous one.

Depends on D99311

Differential Revision: https://phabricator.services.mozilla.com/D99312
2020-12-10 18:24:58 +00:00
Eitan Isaacson
2020ec8b53 Bug 1680277 - 1/3: Add editable and focusable ancestor getters. r=morgan
For focusable ancestor, just use editable ancestor since the IPC toll
on finding closest focusable ancestor isn't worth it.

Differential Revision: https://phabricator.services.mozilla.com/D99311
2020-12-10 23:47:01 +00:00
Morgan Reschenberg
b96b198d6d Bug 1649720: Ensure XUL trees expose their internal columns to VoiceOver r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D97227
2020-12-10 00:15:38 +00:00
Razvan Maries
ffdb6a4d93 Backed out changeset 8a7e15d51a4c (bug 1649720) for perma failures on browser_outline_xul.js. CLOSED TREE 2020-12-09 01:35:04 +02:00
Morgan Reschenberg
27bc6bee14 Bug 1649720: Ensure XUL trees expose their internal columns to VoiceOver r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D97227
2020-12-08 19:33:34 +00:00
Morgan Reschenberg
ba5c7a67de Bug 1664894: Track VoiceOver under A11Y_INSTANTIATORS telemetry r=eeejay,yzen
Differential Revision: https://phabricator.services.mozilla.com/D98697
2020-12-07 22:14:30 +00:00
Eitan Isaacson
d1d2546744 Bug 1625178 - Support aria-roledescription in mac. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D98669
2020-12-03 20:39:39 +00:00
Marco Zehe
73147045b1 Bug 1678015 - Expose assertive live region attributes for ARIA alerts on Mac, r=Jamie,eeejay
This is done via an ifdef in the ARIAMap. Provisions, however, are there to simply remove the ifdef and if clauses from here and the test file to enable this on other platforms once alert double-speaking and other unwanted side effects are fixed on said platforms.

Differential Revision: https://phabricator.services.mozilla.com/D97584
2020-12-02 20:54:41 +00:00
Eitan Isaacson
d32f05448a Bug 1679957 - Text range from accessible should return inner offsets for hypertexts. r=morgan
XUL documents have a bunch of non-hypetext accessibles in their heirarchy. So you can't assume that a hyperlink's parent is a hypertext. To get around that, when we construct ranges for elements they should be internal ranges when possible.

Differential Revision: https://phabricator.services.mozilla.com/D98394
2020-12-01 23:24:17 +00:00
Eitan Isaacson
30e07c3569 Bug 1413307 - Dispatch AXValueChanged on checkbox/radio state changes. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D98260
2020-12-01 09:29:56 +00:00
Eitan Isaacson
c86df09ea1 Bug 1679075 - Don't go past empty input field in HyperTextIterator::Next. r=morgan
The normalize function was putting the current container/offset past the end boundary. This caused overruns with getting the text for the range of the input object, and some unexpected invalid ranges.

Differential Revision: https://phabricator.services.mozilla.com/D98236
2020-11-30 20:46:15 +00:00
Morgan Reschenberg
f8e270839e Bug 1649714: Remove menuPopUp's ignore parent for XUL comboboxes and combobox lists. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D97471
2020-11-22 22:14:53 +00:00
Eitan Isaacson
1624b5c00a Bug 1675301 - Don't return web area as result when searching backwards from root group. r=morgan
It seems that VO mistakenly thinks the web area is a descendant of itself. This causes all kinds of cyclical parent child relationships that makes VO over-query us.

This patch remedies that by not returning the web area when do an immediate child search starting from the root group - in any direction.

Differential Revision: https://phabricator.services.mozilla.com/D97819
2020-11-21 04:14:44 +00:00
Eitan Isaacson
cf517da0a4 Bug 1676662 - Prepend list bullet when getting range at start of list item. r=morgan
Safari has an inconsistent way to deal with list bullets in text.
If a given range has a list or list item nested inside it - but it is not
at the beginning, the bullet will not be returned as part of the text.But if the range begins at the start
of a list item, the preceding bullet is included. For example, given the following list:

* First Item
* Second Item

If the range is [irst Item], the text for that range should return as "irst Item",
but if the range is [First it], the returned text is "* First it".

This patch emulates that inconsistency by removing the list item considerations
in the text segments iterator, and instead prepending a bullet if needed.

Differential Revision: https://phabricator.services.mozilla.com/D97717
2020-11-21 04:14:08 +00:00
Eitan Isaacson
9fc76e7928 Bug 1672700 - Make mozTextAccessible attribute getters use GeckoTextMarker. r=morgan
This allows `contenteditable` textboxes to work correctly with flattened text values.

The attribute setters, aside from AXValue, don't work in Chrome or Safari with aria textboxes,
so those are not a high priority. These include:
- AXSelectedText
- AXSelectedTextRange
- AXVisibleCharacterRange

In addition, AXVisibleCharacterRange's getter doesn't function as expected in Chrome or Safari either, so I didn't touch it.

Differential Revision: https://phabricator.services.mozilla.com/D97629
2020-11-21 04:13:45 +00:00
Bogdan Tara
6387fb5923 Backed out changeset 612035c577d2 (bug 1649714) for browser_popupbutton.js failures CLOSED TREE
DONTBUILD
2020-11-20 09:16:18 +02:00
Morgan Reschenberg
7814f780f3 Bug 1649714: Remove menuPopUp's ignore parent for XUL comboboxes and combobox lists. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D97471
2020-11-20 06:13:43 +00:00
Morgan Reschenberg
944f8f156b Bug 1649711: Map rich list box item to selectable acc class r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D96906
2020-11-16 18:27:26 +00:00
Eitan Isaacson
673de157fa Bug 1198336 - P4: Post AXLiveRegionChanged when live regions change. r=morgan
VoiceOver seems to do all the heavy lifting of figuring out what portion of the
live region should be read.

Depends on D96293

Differential Revision: https://phabricator.services.mozilla.com/D96294
2020-11-16 20:16:52 +00:00
Eitan Isaacson
5eee7bf4ed Bug 1198336 - P3: Implement AXLiveRegionSearchKey. r=morgan
I think VoiceOver uses this to pull in all live regions so it
can check for deletions when they change later on.

Depends on D96292

Differential Revision: https://phabricator.services.mozilla.com/D96293
2020-11-16 20:16:44 +00:00
Eitan Isaacson
56f38afb59 Bug 1198336 - P2: Implement live region AX attributes and AXLiveRegionCreated notification. r=morgan
We use an ivar boolean flag to cache the existance of a live region. This lets us
hide the live region AX attributes and avoid sync round trips to content.

Depends on D96291

Differential Revision: https://phabricator.services.mozilla.com/D96292
2020-11-16 20:16:41 +00:00
Eitan Isaacson
df739e1daf Bug 1198336 - P1: Introduce live region added/removed events. r=Jamie,morgan
VoiceOver pre-caches live region data and does its own deltas to
know what to parts of a subtree changed, and what to announce
based on AXARIAAtomic and AXARIARelevant.

I added a removed event as well. This will help us cache a "live region"
flag in the main process and avoid sync round trips for attributes when not needed.

Differential Revision: https://phabricator.services.mozilla.com/D96291
2020-11-16 20:16:33 +00:00
Butkovits Atila
119d8f1aa7 Backed out 4 changesets (bug 1198336) for bustage on rules.mk. CLOSED TREE
Backed out changeset 26ad5bb8e1ed (bug 1198336)
Backed out changeset 852dc98e8cf5 (bug 1198336)
Backed out changeset 823511f4191b (bug 1198336)
Backed out changeset 67f5a42ed170 (bug 1198336)
2020-11-13 11:06:12 +02:00
Eitan Isaacson
b538315d73 Bug 1198336 - P4: Post AXLiveRegionChanged when live regions change. r=morgan
VoiceOver seems to do all the heavy lifting of figuring out what portion of the
live region should be read.

Depends on D96293

Differential Revision: https://phabricator.services.mozilla.com/D96294
2020-11-13 03:49:11 +00:00
Eitan Isaacson
09d4370beb Bug 1198336 - P3: Implement AXLiveRegionSearchKey. r=morgan
I think VoiceOver uses this to pull in all live regions so it
can check for deletions when they change later on.

Depends on D96292

Differential Revision: https://phabricator.services.mozilla.com/D96293
2020-11-13 03:49:04 +00:00
Eitan Isaacson
7edd107586 Bug 1198336 - P2: Implement live region AX attributes and AXLiveRegionCreated notification. r=morgan
We use an ivar boolean flag to cache the existance of a live region. This lets us
hide the live region AX attributes and avoid sync round trips to content.

Depends on D96291

Differential Revision: https://phabricator.services.mozilla.com/D96292
2020-11-13 03:48:53 +00:00
Eitan Isaacson
ae837aea6e Bug 1198336 - P1: Introduce live region added/removed events. r=Jamie,morgan
VoiceOver pre-caches live region data and does its own deltas to
know what to parts of a subtree changed, and what to announce
based on AXARIAAtomic and AXARIARelevant.

I added a removed event as well. This will help us cache a "live region"
flag in the main process and avoid sync round trips for attributes when not needed.

Differential Revision: https://phabricator.services.mozilla.com/D96291
2020-11-13 04:04:45 +00:00
Morgan Reschenberg
dbc30ace84 Bug 1676878: Modify moxLabel to not strip first character for outlines r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D96895
2020-11-12 23:40:02 +00:00
Morgan Reschenberg
e45400e5b3 Bug 1644810: Implement accessible subclasses for AXOutline and AXOutlineItem r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D96074
2020-11-12 06:16:58 +00:00
Csoregi Natalia
6ddec72329 Backed out 4 changesets (bug 1198336) for causing leaks. CLOSED TREE
Backed out changeset faa35ea77d35 (bug 1198336)
Backed out changeset 821f94bae182 (bug 1198336)
Backed out changeset ee78c1e8cc3b (bug 1198336)
Backed out changeset 2c56e36b869d (bug 1198336)
2020-11-12 01:46:52 +02:00
Eitan Isaacson
29037361ba Bug 1198336 - P4: Post AXLiveRegionChanged when live regions change. r=morgan
VoiceOver seems to do all the heavy lifting of figuring out what portion of the
live region should be read.

Differential Revision: https://phabricator.services.mozilla.com/D96294
2020-11-11 21:12:46 +00:00
Eitan Isaacson
5950c43ca4 Bug 1198336 - P3: Implement AXLiveRegionSearchKey. r=morgan
I think VoiceOver uses this to pull in all live regions so it
can check for deletions when they change later on.

Differential Revision: https://phabricator.services.mozilla.com/D96293
2020-11-11 21:12:33 +00:00
Eitan Isaacson
61086eeb1a Bug 1198336 - P2: Implement live region AX attributes and AXLiveRegionCreated notification. r=morgan
We use an ivar boolean flag to cache the existance of a live region. This lets us
hide the live region AX attributes and avoid sync round trips to content.

Differential Revision: https://phabricator.services.mozilla.com/D96292
2020-11-11 21:12:26 +00:00
Eitan Isaacson
4757842fcf Bug 1198336 - P1: Introduce live region added/removed events. r=Jamie,morgan
VoiceOver pre-caches live region data and does its own deltas to
know what to parts of a subtree changed, and what to announce
based on AXARIAAtomic and AXARIARelevant.

I added a removed event as well. This will help us cache a "live region"
flag in the main process and avoid sync round trips for attributes when not needed.

Differential Revision: https://phabricator.services.mozilla.com/D96291
2020-11-11 21:12:18 +00:00
Butkovits Atila
7c83560854 Backed out 4 changesets (bug 1198336) for bustages on rules.mk. CLOSED TREE
Backed out changeset 8399406e5f2e (bug 1198336)
Backed out changeset 7a2dbe67b6a6 (bug 1198336)
Backed out changeset fd45661dd659 (bug 1198336)
Backed out changeset 68cf7e4b16f2 (bug 1198336)
2020-11-11 02:40:30 +02:00
Eitan Isaacson
eb929d7c1e Bug 1676509 - Remove AXTitle from list item groups. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D96632
2020-11-10 23:14:59 +00:00
Eitan Isaacson
cf73c1aba7 Bug 1676517 - Improve MacAccessibility logging. r=morgan
We should log attribute setting or action performing. We also probably should log AXRole, AXSubrole, AXSize and AXPosition in debug mode, just verbose.

Differential Revision: https://phabricator.services.mozilla.com/D96635
2020-11-10 23:13:52 +00:00
Eitan Isaacson
75c203c933 Bug 1198336 - P4: Post AXLiveRegionChanged when live regions change. r=morgan
VoiceOver seems to do all the heavy lifting of figuring out what portion of the
live region should be read.

Differential Revision: https://phabricator.services.mozilla.com/D96294
2020-11-10 23:07:45 +00:00
Eitan Isaacson
f40a9c9d15 Bug 1198336 - P3: Implement AXLiveRegionSearchKey. r=morgan
I think VoiceOver uses this to pull in all live regions so it
can check for deletions when they change later on.

Differential Revision: https://phabricator.services.mozilla.com/D96293
2020-11-10 23:07:38 +00:00
Eitan Isaacson
5a81554d4c Bug 1198336 - P2: Implement live region AX attributes and AXLiveRegionCreated notification. r=morgan
We use an ivar boolean flag to cache the existance of a live region. This lets us
hide the live region AX attributes and avoid sync round trips to content.

Differential Revision: https://phabricator.services.mozilla.com/D96292
2020-11-10 23:07:30 +00:00
Eitan Isaacson
85740d386d Bug 1198336 - P1: Introduce live region added/removed events. r=Jamie,morgan
VoiceOver pre-caches live region data and does its own deltas to
know what to parts of a subtree changed, and what to announce
based on AXARIAAtomic and AXARIARelevant.

I added a removed event as well. This will help us cache a "live region"
flag in the main process and avoid sync round trips for attributes when not needed.

Differential Revision: https://phabricator.services.mozilla.com/D96291
2020-11-10 23:07:20 +00:00
Eitan Isaacson
cbc4bcfaba Bug 1675292 - Add 'application' root group when body gets role of application. r=morgan
Both chrome and safari preserve the AXWebArea with no subroles, and apply the application subrole to the root group. Not doing so apparently breaks web applications badly.

Differential Revision: https://phabricator.services.mozilla.com/D96475
2020-11-10 17:49:01 +00:00
smolnar
17d3157e82 Backed out 1 changesets (bug 1675292) for causing failures in browser_roles_elements. CLOSED TREE DONTBUILD
Backed out changeset f4cdad3fae02 (bug 1675292)
2020-11-10 09:12:15 +02:00
Eitan Isaacson
6ac3c7496b Bug 1675292 - Add 'application' root group when body gets role of application. r=morgan
Both chrome and safari preserve the AXWebArea with no subroles, and apply the application subrole to the root group. Not doing so apparently breaks web applications badly.

Differential Revision: https://phabricator.services.mozilla.com/D96475
2020-11-09 23:53:00 +00:00
Eitan Isaacson
e8112d4ccd Bug 1672694 - P2: Don't fire AXSelectedTextChanged if target is not selectable. r=morgan
This causes VoiceOver to mess with `AXFocused` and as a result redirect the VO cursor.

Differential Revision: https://phabricator.services.mozilla.com/D95784
2020-11-09 17:55:20 +00:00
Eitan Isaacson
03f2c847ea Bug 1674273 - Consider a hyperlink with no hypertext parent as a root. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D95817
2020-11-09 17:06:44 +00:00
Razvan Maries
fd7d890c94 Backed out 2 changesets (bug 1672694) for Lint failures on browser_text_selection.js and perma failures on browser_accessibility_node.js. CLOSED TREE
Backed out changeset 0f340ea56805 (bug 1672694)
Backed out changeset b222e4ff438f (bug 1672694)
2020-11-04 03:15:17 +02:00
Eitan Isaacson
f80fe575c5 Bug 1672694 - P2: Don't fire AXSelectedTextChanged if target is not selectable. r=morgan
This causes VoiceOver to mess with `AXFocused` and as a result redirect the VO cursor.

Differential Revision: https://phabricator.services.mozilla.com/D95784
2020-11-04 00:26:27 +00:00
Eitan Isaacson
33d5e972fd Bug 1674196 - Don't return children columns in layout tables. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D95228
2020-10-30 04:42:18 +00:00
Eitan Isaacson
ef1779b14c Bug 1672776 - Return nil TextMarker(Range) if GeckoTextMarker(Range) is invalid. r=morgan
It seems like the GeckoTextMarker::Range can sometimes return invalid ranges.
We need to check if they are valid or not before marshalling them.

Differential Revision: https://phabricator.services.mozilla.com/D95230
2020-10-30 04:41:20 +00:00
Eitan Isaacson
617e00d069 Bug 1672803 - Add AXMozDebugDescription and override NSObject description when logging. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D94473
2020-10-28 20:22:02 +00:00
Ricky Stewart
02a7b4ebdf Bug 1654103: Standardize on Black for Python code in mozilla-central.
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-26 18:34:53 +00:00
Bogdan Tara
da1098d4aa Backed out 10 changesets (bug 1654103, bug 1672023, bug 1518999) for PanZoomControllerTest.touchEventForResult gv-junit failures CLOSED TREE
Backed out changeset ff3fb0b4a512 (bug 1672023)
Backed out changeset e7834b600201 (bug 1654103)
Backed out changeset 807893ca8069 (bug 1518999)
Backed out changeset 13e6b92440e9 (bug 1518999)
Backed out changeset 8b2ac5a6c98a (bug 1518999)
Backed out changeset 575748295752 (bug 1518999)
Backed out changeset 65f07ce7b39b (bug 1518999)
Backed out changeset 4bb80556158d (bug 1518999)
Backed out changeset 8ac8461d7bd7 (bug 1518999)
Backed out changeset e8ba13ee17f5 (bug 1518999)
2020-10-24 03:36:18 +03:00
Ricky Stewart
c0cea3b0fa Bug 1654103: Standardize on Black for Python code in mozilla-central. r=remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,devtools-backward-compat-reviewers,jgilbert,preferences-reviewers,sylvestre,maja_zf,webcompat-reviewers,denschub,ntim,whimboo,sparky
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-23 20:40:42 +00:00
Eitan Isaacson
0e6061d30d Bug 1672243 - Introduce AXIndexForChildUIElement and implement AXTopLevelUIElement. r=MarcoZ
AXTopLevelUIElement is not really testable because it doesn't give a useful result in
headless mode. Since it is a clone of AXWindow, this shouldn't be much of an issue.

Differential Revision: https://phabricator.services.mozilla.com/D94154
2020-10-22 17:12:39 +00:00
Dorel Luca
1ff59cb7a3 Backed out changeset 7558c8821a07 (bug 1654103) for multiple failures. CLOSED TREE 2020-10-22 03:51:06 +03:00
Ricky Stewart
50762dacab Bug 1654103: Standardize on Black for Python code in mozilla-central. r=remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,devtools-backward-compat-reviewers,jgilbert,preferences-reviewers,sylvestre,maja_zf,webcompat-reviewers,denschub,ntim,whimboo,sparky
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-21 21:27:27 +00:00
Morgan Reschenberg
c5ff480218 Bug 1668101: Support same/different type naviagation with VO r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D91833
2020-10-15 16:42:14 +00:00
Eitan Isaacson
2e476d423a Bug 1671049 - Invalidate cached ARIA role and role in mozAccessible when role changes. r=morgan
Besides the ARIA role invalidation, this fixes an issue where the mozAccessible's role is also incorrect when the aria role changes on a body tag.

Depends on D93439

Differential Revision: https://phabricator.services.mozilla.com/D93440
2020-10-14 00:04:49 +00:00
Eitan Isaacson
c548ecd683 Bug 1671049 - Cache proxy ARIA role in mozAccessible. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D93439
2020-10-14 00:04:54 +00:00
Eitan Isaacson
7a572196df Bug 1669821 - Implement search predicate API on virtual root. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D92820
2020-10-07 20:34:21 +00:00
Eitan Isaacson
f050b91638 Bug 1669599 - Support AXEditableAncestor and make it text event target. r=morgan
Depends on D92689

Differential Revision: https://phabricator.services.mozilla.com/D92690
2020-10-07 00:13:34 +00:00