Commit Graph

8392 Commits

Author SHA1 Message Date
Eitan Isaacson
3267d4f31f Bug 1639048 - Don't traverse into labels. r=Jamie
Labels are often used as primary click targets for related inputs. If
they are styled to certain bounds, but contain overflowing text for a11y
with a color of "transparent", the synthesized click will happen outside
the bounds of the label.

If we skip text leafs with "color: transparent", we will skip labels
altogether. Instead, lets land on labels when traversing, and ignore
its subtree.

Differential Revision: https://phabricator.services.mozilla.com/D77898
2020-06-22 22:03:58 +00:00
Narcis Beleuzu
aaf25b6782 Backed out changeset b408bd393d95 (bug 1639048) for gv-junit failures on test.AccessibilityTest.testCheckbox . CLOSED TREE 2020-06-22 23:41:28 +03:00
Eitan Isaacson
06217d0c54 Bug 1639048 - Don't traverse into labels. r=Jamie
Labels are often used as primary click targets for related inputs. If
they are styled to certain bounds, but contain overflowing text for a11y
with a color of "transparent", the synthesized click will happen outside
the bounds of the label.

If we skip text leafs with "color: transparent", we will skip labels
altogether. Instead, lets land on labels when traversing, and ignore
its subtree.

Differential Revision: https://phabricator.services.mozilla.com/D77898
2020-06-22 18:16:30 +00:00
Emilio Cobos Álvarez
b9b9e38dd9 Bug 1646224 - Use mozilla::Length rather than nscoord to store font sizes. r=heycam,jfkthame
This avoids arbitrary precision loss when computing REM units and so on,
which is particularly important if we ever change the base of our app
units (but useful regardless).

Differential Revision: https://phabricator.services.mozilla.com/D79928
2020-06-22 09:45:40 +00:00
Dorel Luca
d4c820fa0f Backed out changeset 3671a57712e4 (bug 1646780) for Browser-chrome failures in webrtc/browser_devices_get_user_media_tear_off_tab.js 2020-06-19 04:22:23 +03:00
Gijs Kruitbosch
f457ccd655 Bug 1646780 - use a template to wrap the identity popup while it's not needed, r=johannh
Differential Revision: https://phabricator.services.mozilla.com/D78894
2020-06-19 00:02:11 +00:00
Edgar Chen
4d53288bec Bug 1635784 - Part 1: IsRemoteTarget should take fission OOP iframe into account; r=smaug
And add IsTopLevelRemoteTarget for the original usage.

Differential Revision: https://phabricator.services.mozilla.com/D79441
2020-06-18 20:38:34 +00:00
Eitan Isaacson
29f8f3833e Bug 1645817 - Use overlay scrollbars win browser resolution test. r=kats
Using overlay scrollbars will avoid the need to account for the trimmed
space that is introduced after an overflowing zoom caused by scrollbars.

Differential Revision: https://phabricator.services.mozilla.com/D80102
2020-06-18 11:21:41 +00:00
Cosmin Sabou
65d75a47f3 Backed out changeset 299e19193e11 (bug 1646224) for causing font related failures. CLOSED TREE 2020-06-18 18:26:51 +03:00
Emilio Cobos Álvarez
090e3d2409 Bug 1646224 - Use mozilla::Length rather than nscoord to store font sizes. r=heycam,jfkthame
This avoids arbitrary precision loss when computing REM units and so on,
which is particularly important if we ever change the base of our app
units (but useful regardless).

Differential Revision: https://phabricator.services.mozilla.com/D79928
2020-06-18 13:55:03 +00:00
Emilio Cobos Álvarez
011d524740 Bug 1646336 - Don't unnecessarily lose precision in nsComputedDOMStyle. r=hiro
We're converting to nscoord in some places unnecessarily, reducing the
precision of the computed value we return.

This makes some tests unnecessarily fail if we change the base of
nscoord.

Differential Revision: https://phabricator.services.mozilla.com/D79996
2020-06-18 00:42:47 +00:00
James Teh
02ae717477 Bug 1630208 part 4: Re-enable accessible/tests/browser/hittest/browser_test_zoom_text.js. r=yzen
The intermittent leak has been fixed, so we can now re-enable this.

Differential Revision: https://phabricator.services.mozilla.com/D79782
2020-06-17 18:42:48 +00:00
James Teh
9d61ef8210 Bug 1630208 part 3: Clean up the remote XPC document accessible cache on shutdown. r=yzen
The cache should already be empty by this point unless there's a bug, but we should still clean up regardless.
Also, the hashtable itself was previously never cleaned up even if it was empty.

Differential Revision: https://phabricator.services.mozilla.com/D79781
2020-06-17 18:42:30 +00:00
James Teh
6a5821c667 Bug 1630208 part 2: Drop events for DocAccessibleParents which are already shut down. r=yzen
We can receive IPC events after a DocAccessibleParent is shut down if the BrowserParent is in the process of being destroyed (probably the tab closed) but there are still events in the IPC queue.
Most Recv*Event methods in BrowserParent check mShutdown, but a few don't.
For the events that don't, if the event is for a document, we'll successfully fire the platform event, and then successfully get and cache an xpcAccessibleDocument.
However, that xpcAccessibleDocument will never be removed from the cache because it's already shut down, so NotifyOfRemoteDocShutdown (which would normally remove it from the XPC cache) won't get called.
This results in a leaked object.
Thus, it's important that all Recv*Event methods drop the event if mShutdown is true.
This patch adds that check to the methods which didn't have it already.

Differential Revision: https://phabricator.services.mozilla.com/D79780
2020-06-17 18:40:42 +00:00
James Teh
dffc53d36b Bug 1630208 part 1: Assert that we don't add a shut down DocAccessibleParent to the remote XPC cache in DocManager::GetXPCDocument. r=yzen
We really want to know about this because the document will never be removed from the cache, since NotifyOfRemoteDocShutdown (which would normally remove it from the XPC cache) won't get called.

Differential Revision: https://phabricator.services.mozilla.com/D79779
2020-06-17 18:37:58 +00:00
Brindusan Cristian
f93d2c823e Backed out changeset 2011f0091ccf (bug 1646336) for dt failures at browser_accessibility_print_to_json.js. CLOSED TREE 2020-06-18 03:17:34 +03:00
Emilio Cobos Álvarez
24a7deb2a4 Bug 1646336 - Don't unnecessarily lose precision in nsComputedDOMStyle. r=hiro
We're converting to nscoord in some places unnecessarily, reducing the
precision of the computed value we return.

This makes some tests unnecessarily fail if we change the base of
nscoord.

Differential Revision: https://phabricator.services.mozilla.com/D79996
2020-06-17 22:30:14 +00:00
Kris Maglione
3bda67deab Bug 1638153: Part 2 - Fix uses of .rootTreeItem to get top browser window. r=geckoview-reviewers,nika,snorp
Differential Revision: https://phabricator.services.mozilla.com/D75429
2020-06-17 17:17:16 +00:00
Marco Zehe
1bb00164a8 Bug 1330659 - Expose the HTML dialog element to accessibility APIs, r=Jamie
This patch exposes the dialog element as a HyperTextAccessible with role DIALOG and enables the test after flipping the pref temporarily. Once the pref is on by default, the if block should be removed and the test run always.

Differential Revision: https://phabricator.services.mozilla.com/D79798
2020-06-17 05:22:05 +00:00
Simon Giesecke
3fef818588 Bug 1645339 - Use range-based for with nsTObserverArray in accessible. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D79494
2020-06-16 10:14:32 +00:00
Morgan Reschenberg
10236aef18 Bug 1630391: Add telemetry test for backplate and a11y theme scalars. r=chutten,yzen
Differential Revision: https://phabricator.services.mozilla.com/D72184
2020-06-12 17:02:45 +00:00
James Teh
c384807ed4 Bug 1645067: Set the top level DocAccessibleChild as early as possible. r=MarcoZ
Otherwise, if we're replacing a previous top level doc, we might refer to the old top level doc during initialization.

Differential Revision: https://phabricator.services.mozilla.com/D79398
2020-06-12 07:11:02 +00:00
Emilio Cobos Álvarez
ef3d21048d Bug 1640623 - Use enum classes for LookAndFeel int and float IDs. r=jmathies,geckoview-reviewers,esawin
Differential Revision: https://phabricator.services.mozilla.com/D76694
2020-06-11 11:27:43 +00:00
Eitan Isaacson
31b2dc735d Bug 1643168 - block moxSetFocused: on non-focusable accessibles. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D78160
2020-06-10 17:34:30 +00:00
Bogdan Tara
2c49516739 Backed out changeset b1ea583f8cb8 (bug 1630391) for browser_HCM_telemetry.js failures CLOSED TREE 2020-06-11 01:06:00 +03:00
Morgan Reschenberg
ea3409c4f8 Bug 1630391: Add telemetry test for backplate and a11y theme scalars. r=chutten,yzen
Differential Revision: https://phabricator.services.mozilla.com/D72184
2020-06-10 20:40:33 +00:00
James Teh
0b42799e46 Bug 1644323: For in-process iframes in content processes, use the emulated window set on the top level DocAccessibleChild (if any). r=MarcoZ
When window emulation is enabled, the emulated window is set on the top level DocAccessibleChild.
However, it isn't set on child documents (in-process iframes).
Therefore, when querying the window handle, we need to check for an emulated window handle on the top level document and return that if present.
This fixes the window handle returned by IAccessible2::get_windowHandle.

Note that the window handle used when firing events was already correct, as that is determined in the parent process.
In the parent process, the emulated window was already being propagated down to child DocAccessibleParents by BrowserParent::RecvPDocAccessibleConstructor.

Differential Revision: https://phabricator.services.mozilla.com/D79035
2020-06-10 07:11:31 +00:00
James Teh
26c591b2c1 Bug 1573630: Remove usage of nsIDocShellTreeItem in nsCoreUtils::IsTopLevelContentDocInProcess. r=MarcoZ
This usage of nsIDocShellTreeItem is safe, but nsIDocShellTreeItem is going away and it's trivial to convert this to use BrowsingContext.
As a bonus, the code is also shorter and more readable.

Differential Revision: https://phabricator.services.mozilla.com/D79022
2020-06-10 05:03:07 +00:00
James Teh
97cb27b85a Bug 1634591: Rename nsCoreUtils::IsTabDocument to IsTopLevelContentDocInProcess. Rename DocAccessible::eTabDocument to eTopLevelContentDocInProcess. r=MarcoZ
This also adds some assertions where these are used in the Windows code, as it would be bad if that code ran in an OOP iframe document.

Differential Revision: https://phabricator.services.mozilla.com/D79021
2020-06-10 05:03:05 +00:00
James Teh
26861090f2 Bug 1644319: Move code specific to DocAccessibles out of AccessibleWrap::get_accParent and into DocAccessibleWrap::get_accParent. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D79020
2020-06-10 05:02:58 +00:00
Csoregi Natalia
81b315c91b Backed out changeset c15ccd143f32 (bug 1630391) for failures on browser_HCM_telemetry.js. CLOSED TREE 2020-06-10 03:07:24 +03:00
Morgan Reschenberg
564e7c4295 Bug 1630391: Add telemetry test for backplate and a11y theme scalars. r=chutten,yzen
Differential Revision: https://phabricator.services.mozilla.com/D72184
2020-06-09 21:56:01 +00:00
Dorel Luca
31ee7a3080 Backed out changeset 498dee65dcf8 (bug 1643168) for Browser-chrome failures browser/mac/browser_focus.js. CLOSED TREE 2020-06-08 20:28:05 +03:00
Eitan Isaacson
97fb862d37 Bug 1643168 - block moxSetFocused: on non-focusable accessibles. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D78160
2020-06-08 15:47:11 +00:00
Simon Giesecke
0011473324 Bug 1644079 - Fix invalid array index access in ia2Accessible::get_selectionRanges. r=MarcoZ
Since loops that modify the array are error-prone, this is changed to use
nsTArray::RemoveElementsBy instead.

Differential Revision: https://phabricator.services.mozilla.com/D78641
2020-06-08 09:14:56 +00:00
Simon Giesecke
ebbc7ae838 Bug 1642989 - Use RemoveLastElements instead of RemoveElementsAt where possible. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D78049
2020-06-08 08:50:15 +00:00
Simon Giesecke
13502cf27c Bug 1642991 - Use RemoveElementsBy where easily possible. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D78055
2020-06-08 09:01:48 +00:00
James Teh
b1c5fca60f Bug 1547657: Null check frame in HyperTextAccessible::TextBounds. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D78631
2020-06-08 05:11:23 +00:00
James Teh
58a574a9c2 Bug 1642568: accessible/tests/mochitest/role/test_aria.html: Wait for a11y load when opening the chrome window. r=MarcoZ
Even though we previously waited for the DOM load event, the a11y tree probably wasn't ready yet.

Differential Revision: https://phabricator.services.mozilla.com/D78630
2020-06-08 05:06:39 +00:00
Morgan Reschenberg
3083026d43 Bug 1641932: Add Mac subroles to role map. r=eeejay
Differential Revision: https://phabricator.services.mozilla.com/D77500
2020-06-05 03:45:44 +00:00
James Teh
c45ca37cf4 Bug 1151648: Construct accessible objects for SVG elements which have title or desc. r=MarcoZ,yzen
According to SVG Accessibility API Mappings, an SVG element which has title or desc element must be exposed.
https://w3c.github.io/svg-aam/#include_elements
Previously, we didn't expose <g> elements at all even if they had a title/desc, and we unconditionally exposed some other SVG elements even when they didn't.

This removes the Dev Tools A11y Panel code which explicitly allowed unlabelled descendants of role="img" <svg> elements, since we don't create descendants if they don't have a label now anyway.
The associated tests had to be tweaked as well, since now we don't create unlabelled descendants.

Original patch by Takeshi Kurosawa.

Differential Revision: https://phabricator.services.mozilla.com/D77763
2020-06-03 13:18:38 +00:00
Eitan Isaacson
add69c1749 Bug 1642033 - Refactor mozTextAccessible to use MOX api. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D77564
2020-06-03 21:15:43 +00:00
Zeke Medley
533e723a19 Bug 1642448 - Replace remaining NSAssert statements in accessible/mac/ with MOZ_ASSERT's. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D77874
2020-06-02 20:40:37 +00:00
Eitan Isaacson
ccfae4a0f0 Bug 1642030 - Support testing of parameterized attributes in Mac mochitests. r=morgan
Depends on D77559

Differential Revision: https://phabricator.services.mozilla.com/D77562
2020-06-02 04:20:38 +00:00
Eitan Isaacson
4523f18d89 Bug 1642024 - Remove method-based NSAccessibility support from XPCOM mac a11y interface. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D77559
2020-06-01 19:48:43 +00:00
Eitan Isaacson
c3aa4bdf8c Bug 1641984 - Implement MOX parameterized attribute getters. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D77563
2020-06-02 04:57:14 +00:00
Csoregi Natalia
88d27d2500 Backed out changeset f2da1b325e97 (bug 1151648) for failures on browser_accessibility_text_label_audit.js. CLOSED TREE 2020-06-02 13:17:30 +03:00
James Teh
bfaf8c5057 Bug 1151648: Construct accessible objects for SVG elements which have title or desc. r=MarcoZ
According to SVG Accessibility API Mappings, an SVG element which has title or desc element must be exposed.
https://w3c.github.io/svg-aam/#include_elements
Previously, we didn't expose <g> elements at all even if they had a title/desc, and we unconditionally exposed some other SVG elements even when they didn't.

Original patch by Takeshi Kurosawa.

Differential Revision: https://phabricator.services.mozilla.com/D77763
2020-06-02 06:59:31 +00:00
James Teh
0003a43cd3 Bug 1642480: Null check content in nsAccUtils::IsARIALive. r=MarcoZ
Differential Revision: https://phabricator.services.mozilla.com/D77748
2020-06-02 05:56:22 +00:00
James Teh
d82ab85438 Bug 1642258: Allow role="alert" on the body of chrome documents (but not content documents). r=MarcoZ
Also fixes a typo in an existing test that meant we weren't actually testing as intended.

Differential Revision: https://phabricator.services.mozilla.com/D77628
2020-06-02 05:53:52 +00:00