WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
141893
AX: iOS: scrollable elements do not allow 3-finger swipe (with VoiceOver)
https://bugs.webkit.org/show_bug.cgi?id=141893
Summary
AX: iOS: scrollable elements do not allow 3-finger swipe (with VoiceOver)
Michael Johnston
Reported
2015-02-23 00:03:18 PST
Elements which have overflow: scroll; + -webkit-overflow-scrolling: touch; do not work with the 3-finger swipe gesture when VoiceOver is enabled. This worked in iOS 7. Expected result: VoiceOver should announce "Page N of M" where N is the current page and M is the total number of pages determined by scroll height Actual result: VoiceOver announces "Page 1 of 1" regardless of the scroll height
Attachments
patch
(45.94 KB, patch)
2015-07-20 16:36 PDT
,
chris fleizach
no flags
Details
Formatted Diff
Diff
patch
(45.94 KB, patch)
2015-07-21 10:23 PDT
,
chris fleizach
no flags
Details
Formatted Diff
Diff
patch
(45.53 KB, patch)
2015-07-21 14:39 PDT
,
chris fleizach
mario
: review+
Details
Formatted Diff
Diff
Show Obsolete
(2)
View All
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2015-02-23 00:03:47 PST
<
rdar://problem/19918933
>
chris fleizach
Comment 2
2015-07-20 16:36:39 PDT
Created
attachment 257143
[details]
patch
chris fleizach
Comment 3
2015-07-21 10:23:31 PDT
Created
attachment 257185
[details]
patch
chris fleizach
Comment 4
2015-07-21 14:39:52 PDT
Created
attachment 257204
[details]
patch
Mario Sanchez Prada
Comment 5
2015-07-24 02:37:36 PDT
Comment on
attachment 257204
[details]
patch View in context:
https://bugs.webkit.org/attachment.cgi?id=257204&action=review
Overall looks good to me (and I like the idea of moving that into AccessibilityObject, too). Setting r+ with just a few small comments below...
> Source/WebCore/ChangeLog:15 > + (WebCore::AccessibilityObject::scrollToGlobalPoint):
It does not look like you modified this
> Source/WebCore/ChangeLog:21 > + (WebCore::AccessibilityObject::lastKnownIsIgnoredValue):
Same for this one (not modified)
> Source/WebCore/ChangeLog:24 > + (WebCore::AccessibilityObject::getScrollableAreaIfScrollable): > + (WebCore::AccessibilityObject::scrollTo):
Ditto for these two.
> Source/WebCore/accessibility/AccessibilityObject.cpp:2538 > + for (; scrollers.second && !(scrollers.first = scrollers.second->getScrollableAreaIfScrollable()); scrollers.second = scrollers.second->parentObject()) { }
I find this line a bit hard to read. What about this: // Search up the parent chain until we find the first one that's scrollable. scrollers.first = nullptr; scrollers.second = parentObject(); while (!scrollers.first && scrollers.second) { scrollers.first = scrollers.second->getScrollableAreaIfScrollable()); scrollers.second = scrollers.second->parentObject()); } Or even: // Search up the parent chain until we find the first one that's scrollable. scrollers.first = nullptr; for (scrollers.second = parentObject(); !scrollers.first && scrollers.second; scrollers.second = scrollers.second->parentObject()) scrollers.first = scrollers.second->getScrollableAreaIfScrollable());
> Source/WebCore/accessibility/AccessibilityObject.cpp:2565 > + std::pair<ScrollableArea*, AccessibilityObject*> scrollers; > + scrollAreaAndAncestor(scrollers); > + if (!scrollers.first)
It looks like you could put these three lines in a separate function returning a ScrollableArea*, and use it from this and the previous two functions (but not from scrollByPage, as you also need the .second element there)
> Tools/DumpRenderTree/mac/AccessibilityNotificationHandler.mm:183 > - JSObjectCallAsFunction([mainFrame globalContext], m_notificationFunctionCallback, 0, 2, arguments, 0); > + JSObjectCallAsFunction([mainFrame globalContext], m_notificationFunctionCallback, 0, 3, arguments, 0);
Nice catch
chris fleizach
Comment 6
2015-07-24 16:28:21 PDT
http://trac.webkit.org/changeset/187371
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug