Bug 193414 - AX: Support returning relative frames for accessibility
Summary: AX: Support returning relative frames for accessibility
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: Other
Hardware: All All
: P2 Normal
Assignee: chris fleizach
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2019-01-14 15:41 PST by chris fleizach
Modified: 2019-01-20 21:37 PST (History)
12 users (show)

See Also:


Attachments
patch (33.51 KB, patch)
2019-01-14 16:32 PST, chris fleizach
ews-watchlist: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from ews106 for mac-highsierra-wk2 (2.91 MB, application/zip)
2019-01-14 17:28 PST, EWS Watchlist
no flags Details
Archive of layout-test-results from ews103 for mac-highsierra (2.61 MB, application/zip)
2019-01-14 17:35 PST, EWS Watchlist
no flags Details
Archive of layout-test-results from ews112 for mac-highsierra (2.53 MB, application/zip)
2019-01-14 18:49 PST, EWS Watchlist
no flags Details
Archive of layout-test-results from ews204 for win-future (13.40 MB, application/zip)
2019-01-14 21:27 PST, EWS Watchlist
no flags Details
patch (35.04 KB, patch)
2019-01-16 10:03 PST, chris fleizach
no flags Details | Formatted Diff | Diff
patch (31.18 KB, patch)
2019-01-16 10:13 PST, chris fleizach
no flags Details | Formatted Diff | Diff
patch (34.67 KB, patch)
2019-01-16 16:44 PST, chris fleizach
no flags Details | Formatted Diff | Diff
patch (34.89 KB, patch)
2019-01-17 12:39 PST, chris fleizach
no flags Details | Formatted Diff | Diff
patch (35.37 KB, patch)
2019-01-17 13:12 PST, chris fleizach
no flags Details | Formatted Diff | Diff
patch (27.83 KB, patch)
2019-01-17 15:15 PST, chris fleizach
ews-watchlist: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from ews104 for mac-highsierra-wk2 (2.72 MB, application/zip)
2019-01-17 16:28 PST, EWS Watchlist
no flags Details
patch (34.88 KB, patch)
2019-01-17 17:38 PST, chris fleizach
no flags Details | Formatted Diff | Diff
patch (34.61 KB, patch)
2019-01-17 17:42 PST, chris fleizach
zalan: review+
Details | Formatted Diff | Diff
landing patch (34.98 KB, patch)
2019-01-20 00:09 PST, chris fleizach
no flags Details | Formatted Diff | Diff
landing patch (36.92 KB, patch)
2019-01-20 14:12 PST, chris fleizach
no flags Details | Formatted Diff | Diff
Archive of layout-test-results from ews123 for ios-simulator-wk2 (2.44 MB, application/zip)
2019-01-20 16:04 PST, EWS Watchlist
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description chris fleizach 2019-01-14 15:41:10 PST
Currently, when VoiceOver requests a frame of an element, WebKit has to synchronously send a message back to Safari to provide the final conversions.

This has some drawbacks

1) It blocks the WebProcess rendering thread while this call is made
2) It potentially does unnecessary work, if VO doesn't actually need the full frame (perhaps it's just fetching a parent to check a property)
3) It makes it hard to cache the frame, because the containing window may change or rotate and we'd have to empty the cache on those events

We can instead offer an AXRelativeFrame which is in "Page" space. The final conversion can be done by VoiceOver only when it needs it
Comment 1 Radar WebKit Bug Importer 2019-01-14 15:42:56 PST
<rdar://problem/47268501>
Comment 2 chris fleizach 2019-01-14 16:32:59 PST
Created attachment 359097 [details]
patch
Comment 3 EWS Watchlist 2019-01-14 16:36:10 PST
Attachment 359097 [details] did not pass style-queue:


ERROR: Source/WebKit/UIProcess/API/mac/WKView.mm:815:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/mac/WKView.mm:822:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4025:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4032:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 4 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 4 EWS Watchlist 2019-01-14 17:28:42 PST
Comment on attachment 359097 [details]
patch

Attachment 359097 [details] did not pass mac-wk2-ews (mac-wk2):
Output: https://webkit-queues.webkit.org/results/10751184

New failing tests:
accessibility/mac/relative-frame.html
Comment 5 EWS Watchlist 2019-01-14 17:28:43 PST
Created attachment 359104 [details]
Archive of layout-test-results from ews106 for mac-highsierra-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews106  Port: mac-highsierra-wk2  Platform: Mac OS X 10.13.6
Comment 6 EWS Watchlist 2019-01-14 17:35:52 PST
Comment on attachment 359097 [details]
patch

Attachment 359097 [details] did not pass mac-ews (mac):
Output: https://webkit-queues.webkit.org/results/10751267

New failing tests:
accessibility/plugin.html
accessibility/mac/bounds-for-range.html
accessibility/image-link.html
accessibility/table-attributes.html
accessibility/mac/internal-link-anchors.html
accessibility/mac/document-links.html
accessibility/table-with-rules.html
accessibility/table-one-cell.html
accessibility/table-sections.html
accessibility/table-cells.html
accessibility/image-map2.html
accessibility/table-cell-spans.html
accessibility/mac/aria-columnrowheaders.html
accessibility/transformed-element.html
accessibility/math-multiscript-attributes.html
accessibility/internal-link-anchors2.html
accessibility/lists.html
Comment 7 EWS Watchlist 2019-01-14 17:35:54 PST
Created attachment 359106 [details]
Archive of layout-test-results from ews103 for mac-highsierra

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews103  Port: mac-highsierra  Platform: Mac OS X 10.13.6
Comment 8 EWS Watchlist 2019-01-14 18:49:50 PST
Comment on attachment 359097 [details]
patch

Attachment 359097 [details] did not pass mac-debug-ews (mac):
Output: https://webkit-queues.webkit.org/results/10751923

New failing tests:
accessibility/plugin.html
accessibility/mac/bounds-for-range.html
accessibility/image-link.html
accessibility/mac/internal-link-anchors.html
accessibility/mac/document-links.html
accessibility/table-with-rules.html
accessibility/math-multiscript-attributes.html
accessibility/table-one-cell.html
accessibility/table-cells.html
accessibility/table-sections.html
accessibility/table-cell-spans.html
accessibility/image-map2.html
accessibility/lists.html
accessibility/transformed-element.html
accessibility/mac/aria-columnrowheaders.html
accessibility/internal-link-anchors2.html
accessibility/table-attributes.html
Comment 9 EWS Watchlist 2019-01-14 18:49:52 PST
Created attachment 359117 [details]
Archive of layout-test-results from ews112 for mac-highsierra

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews112  Port: mac-highsierra  Platform: Mac OS X 10.13.6
Comment 10 EWS Watchlist 2019-01-14 21:27:32 PST
Comment on attachment 359097 [details]
patch

Attachment 359097 [details] did not pass win-ews (win):
Output: https://webkit-queues.webkit.org/results/10753841

New failing tests:
webanimations/leak-document-with-web-animation.html
Comment 11 EWS Watchlist 2019-01-14 21:27:44 PST
Created attachment 359134 [details]
Archive of layout-test-results from ews204 for win-future

The attached test failures were seen while running run-webkit-tests on the win-ews.
Bot: ews204  Port: win-future  Platform: CYGWIN_NT-6.1-2.10.0-0.325-5-3-x86_64-64bit
Comment 12 chris fleizach 2019-01-16 10:03:40 PST
Created attachment 359275 [details]
patch
Comment 13 chris fleizach 2019-01-16 10:13:10 PST
Created attachment 359276 [details]
patch
Comment 14 EWS Watchlist 2019-01-16 10:15:25 PST
Attachment 359276 [details] did not pass style-queue:


ERROR: Source/WebKit/UIProcess/API/mac/WKView.mm:815:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/mac/WKView.mm:822:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4025:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4032:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 4 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 15 chris fleizach 2019-01-16 16:44:11 PST
Created attachment 359335 [details]
patch
Comment 16 EWS Watchlist 2019-01-16 16:46:31 PST
Attachment 359335 [details] did not pass style-queue:


ERROR: Source/WebKit/UIProcess/API/mac/WKView.mm:815:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/mac/WKView.mm:822:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4026:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4033:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 4 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 17 chris fleizach 2019-01-17 12:39:12 PST
Created attachment 359405 [details]
patch
Comment 18 EWS Watchlist 2019-01-17 12:41:26 PST
Attachment 359405 [details] did not pass style-queue:


ERROR: Source/WebKit/UIProcess/API/mac/WKView.mm:815:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/mac/WKView.mm:822:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4026:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4033:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 4 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 19 chris fleizach 2019-01-17 13:12:49 PST
Created attachment 359408 [details]
patch
Comment 20 EWS Watchlist 2019-01-17 13:15:47 PST
Attachment 359408 [details] did not pass style-queue:


ERROR: Source/WebKit/UIProcess/API/mac/WKView.mm:815:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/mac/WKView.mm:822:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4026:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4033:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 4 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 21 chris fleizach 2019-01-17 15:15:11 PST
Created attachment 359421 [details]
patch
Comment 22 EWS Watchlist 2019-01-17 15:16:21 PST
Attachment 359421 [details] did not pass style-queue:


ERROR: Source/WebKit/UIProcess/API/mac/WKView.mm:815:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/mac/WKView.mm:822:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4026:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4033:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 4 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 23 EWS Watchlist 2019-01-17 16:28:48 PST
Comment on attachment 359421 [details]
patch

Attachment 359421 [details] did not pass mac-wk2-ews (mac-wk2):
Output: https://webkit-queues.webkit.org/results/10788847

New failing tests:
accessibility/plugin.html
accessibility/mac/bounds-for-range.html
accessibility/image-link.html
accessibility/table-attributes.html
accessibility/mac/internal-link-anchors.html
accessibility/internal-link-anchors2.html
accessibility/mac/document-links.html
accessibility/table-with-rules.html
accessibility/mac/document-attributes.html
accessibility/table-one-cell.html
accessibility/table-sections.html
accessibility/table-cells.html
accessibility/image-map2.html
accessibility/table-cell-spans.html
accessibility/mac/aria-columnrowheaders.html
accessibility/transformed-element.html
accessibility/math-multiscript-attributes.html
accessibility/parent-delete.html
accessibility/lists.html
Comment 24 EWS Watchlist 2019-01-17 16:28:50 PST
Created attachment 359423 [details]
Archive of layout-test-results from ews104 for mac-highsierra-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews104  Port: mac-highsierra-wk2  Platform: Mac OS X 10.13.6
Comment 25 chris fleizach 2019-01-17 17:38:56 PST
Created attachment 359434 [details]
patch
Comment 26 chris fleizach 2019-01-17 17:42:55 PST
Created attachment 359435 [details]
patch
Comment 27 EWS Watchlist 2019-01-17 17:44:19 PST
Attachment 359435 [details] did not pass style-queue:


ERROR: Source/WebKit/UIProcess/API/mac/WKView.mm:815:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/mac/WKView.mm:822:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4026:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4033:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 4 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 28 zalan 2019-01-18 11:42:07 PST
Comment on attachment 359435 [details]
patch

nit; when I move some old code around, I tend to modernize it (some lines could use a bit of auto)
Comment 29 chris fleizach 2019-01-19 23:40:47 PST
(In reply to zalan from comment #28)
> Comment on attachment 359435 [details]
> patch
> 
> nit; when I move some old code around, I tend to modernize it (some lines
> could use a bit of auto)

will do. thanks
Comment 30 chris fleizach 2019-01-20 00:09:57 PST
Created attachment 359636 [details]
landing patch
Comment 31 EWS Watchlist 2019-01-20 00:12:39 PST
Attachment 359636 [details] did not pass style-queue:


ERROR: Source/WebKit/UIProcess/API/mac/WKView.mm:815:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/mac/WKView.mm:822:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4047:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4054:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 4 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 32 WebKit Commit Bot 2019-01-20 01:18:50 PST
Comment on attachment 359636 [details]
landing patch

Clearing flags on attachment: 359636

Committed r240209: <https://trac.webkit.org/changeset/240209>
Comment 33 WebKit Commit Bot 2019-01-20 01:18:55 PST
All reviewed patches have been landed.  Closing bug.
Comment 34 Michael Catanzaro 2019-01-20 10:37:23 PST
Reverted r240209 for reason:

Broke GTK/WPE injected bundle

Committed r240212: <https://trac.webkit.org/changeset/240212>
Comment 35 Michael Catanzaro 2019-01-20 10:39:01 PST
Apologies for the rollout. This broke the GTK/WPE test bots (and probably other ports too). Problem is:

** (WebKitWebProcess:68170): WARNING **: 03:40:34.935: Error loading the injected bundle (/home/slave/webkitgtk/gtk-linux-64-release-tests/build/WebKitBuild/Release/lib/libTestRunnerInjectedBundle.so): /home/slave/webkitgtk/gtk-linux-64-release-tests/build/WebKitBuild/Release/lib/libTestRunnerInjectedBundle.so: undefined symbol: _ZN3WTR22AccessibilityUIElement33stringDescriptionOfAttributeValueEP14OpaqueJSString

Would it be reasonable to add an empty default implementation for non-Apple ports, or do we need more work here?
Comment 36 chris fleizach 2019-01-20 10:49:00 PST
(In reply to Michael Catanzaro from comment #35)
> Apologies for the rollout. This broke the GTK/WPE test bots (and probably
> other ports too). Problem is:
> 
> ** (WebKitWebProcess:68170): WARNING **: 03:40:34.935: Error loading the
> injected bundle
> (/home/slave/webkitgtk/gtk-linux-64-release-tests/build/WebKitBuild/Release/
> lib/libTestRunnerInjectedBundle.so):
> /home/slave/webkitgtk/gtk-linux-64-release-tests/build/WebKitBuild/Release/
> lib/libTestRunnerInjectedBundle.so: undefined symbol:
> _ZN3WTR22AccessibilityUIElement33stringDescriptionOfAttributeValueEP14OpaqueJ
> SString
> 
> Would it be reasonable to add an empty default implementation for non-Apple
> ports, or do we need more work here?

That would be reasonable. Why doesn't this fail in EWS? It seems completely unreasonable that I can pass a patch in EWS and have it rolled out do to an unknowable dependency?

Could you instead work to put in a fix rather than rollout? How will I even test a GTK change if the EWS bots won't build it?
Comment 37 Michael Catanzaro 2019-01-20 12:43:46 PST
(In reply to chris fleizach from comment #36)
> That would be reasonable. Why doesn't this fail in EWS? It seems completely
> unreasonable that I can pass a patch in EWS and have it rolled out do to an
> unknowable dependency?

Problem is it did build, it just fails to dlopen at runtime. Only Mac EWS run tests. :(

> Could you instead work to put in a fix rather than rollout? How will I even
> test a GTK change if the EWS bots won't build it?

I don't understand the code, so I don't know if that would be correct. If just a default implementation would suffice, I would just try adding one and relanding.
Comment 38 chris fleizach 2019-01-20 14:12:22 PST
Created attachment 359651 [details]
landing patch
Comment 39 EWS Watchlist 2019-01-20 14:15:18 PST
Attachment 359651 [details] did not pass style-queue:


ERROR: Source/WebKit/UIProcess/API/mac/WKView.mm:815:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/mac/WKView.mm:822:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4047:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:4054:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 4 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 40 EWS Watchlist 2019-01-20 16:04:13 PST
Comment on attachment 359651 [details]
landing patch

Attachment 359651 [details] did not pass ios-sim-ews (ios-simulator-wk2):
Output: https://webkit-queues.webkit.org/results/10822441

New failing tests:
imported/w3c/web-platform-tests/webrtc/simplecall.https.html
Comment 41 EWS Watchlist 2019-01-20 16:04:15 PST
Created attachment 359656 [details]
Archive of layout-test-results from ews123 for ios-simulator-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews123  Port: ios-simulator-wk2  Platform: Mac OS X 10.13.6
Comment 42 WebKit Commit Bot 2019-01-20 17:26:44 PST
Comment on attachment 359651 [details]
landing patch

Clearing flags on attachment: 359651

Committed r240219: <https://trac.webkit.org/changeset/240219>
Comment 43 WebKit Commit Bot 2019-01-20 17:26:46 PST
All reviewed patches have been landed.  Closing bug.
Comment 44 Michael Catanzaro 2019-01-20 21:37:45 PST
That worked, thanks!