Diff
Modified: branches/safari-602-branch/LayoutTests/ChangeLog (204070 => 204071)
--- branches/safari-602-branch/LayoutTests/ChangeLog 2016-08-03 06:15:59 UTC (rev 204070)
+++ branches/safari-602-branch/LayoutTests/ChangeLog 2016-08-03 06:16:04 UTC (rev 204071)
@@ -1,5 +1,19 @@
2016-08-02 Babak Shafiei <[email protected]>
+ Merge r203955. rdar://problem/27629346
+
+ 2016-07-31 Nan Wang <[email protected]>
+
+ AX: Add a check for touch event listener on iOS accessibility object
+ https://bugs.webkit.org/show_bug.cgi?id=160388
+
+ Reviewed by Chris Fleizach.
+
+ * accessibility/ios-simulator/has-touch-event-listener-expected.txt: Added.
+ * accessibility/ios-simulator/has-touch-event-listener.html: Added.
+
+2016-08-02 Babak Shafiei <[email protected]>
+
Merge r203982. rdar://problem/27547583
2016-08-01 Eric Carlson <[email protected]>
Added: branches/safari-602-branch/LayoutTests/accessibility/ios-simulator/has-touch-event-listener-expected.txt (0 => 204071)
--- branches/safari-602-branch/LayoutTests/accessibility/ios-simulator/has-touch-event-listener-expected.txt (rev 0)
+++ branches/safari-602-branch/LayoutTests/accessibility/ios-simulator/has-touch-event-listener-expected.txt 2016-08-03 06:16:04 UTC (rev 204071)
@@ -0,0 +1,13 @@
+button
+link
+Makes sure that we can check if an AXObject has touch event listener.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS button.boolAttributeValue('AXHasTouchEventListener') is true
+PASS link.boolAttributeValue('AXHasTouchEventListener') is true
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: branches/safari-602-branch/LayoutTests/accessibility/ios-simulator/has-touch-event-listener.html (0 => 204071)
--- branches/safari-602-branch/LayoutTests/accessibility/ios-simulator/has-touch-event-listener.html (rev 0)
+++ branches/safari-602-branch/LayoutTests/accessibility/ios-simulator/has-touch-event-listener.html 2016-08-03 06:16:04 UTC (rev 204071)
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+<script>
+var successfullyParsed = false;
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function click() {}
+
+</script>
+</head>
+<body>
+
+<div role="button" id="button" _ontouchstart_="chick();"">button</div>
+<div role="link" _ontouchend_="chick();"><div id="link">link</div></div>
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+
+ description("Makes sure that we can check if an AXObject has touch event listener.");
+
+ if (window.accessibilityController) {
+ var button = accessibilityController.accessibleElementById("button");
+ var link = accessibilityController.accessibleElementById("link");
+ shouldBeTrue("button.boolAttributeValue('AXHasTouchEventListener')");
+ shouldBeTrue("link.boolAttributeValue('AXHasTouchEventListener')");
+ }
+
+ successfullyParsed = true;
+</script>
+
+<script src=""
+
+</body>
+</html>
+
Modified: branches/safari-602-branch/Source/WebCore/ChangeLog (204070 => 204071)
--- branches/safari-602-branch/Source/WebCore/ChangeLog 2016-08-03 06:15:59 UTC (rev 204070)
+++ branches/safari-602-branch/Source/WebCore/ChangeLog 2016-08-03 06:16:04 UTC (rev 204071)
@@ -1,5 +1,31 @@
2016-08-02 Babak Shafiei <[email protected]>
+ Merge r203955. rdar://problem/27629346
+
+ 2016-07-31 Nan Wang <[email protected]>
+
+ AX: Add a check for touch event listener on iOS accessibility object
+ https://bugs.webkit.org/show_bug.cgi?id=160388
+
+ Reviewed by Chris Fleizach.
+
+ dispatchTouchEvent() is not working correctly within AXPress() sometimes. Need to
+ investigate it more in the future. Now, adding a check for the touch event listener
+ on the object's node so that iOS can handle dispatching the touch event instead.
+
+ Test: accessibility/ios-simulator/has-touch-event-listener.html
+
+ * accessibility/AccessibilityObject.h:
+ * accessibility/ios/AccessibilityObjectIOS.mm:
+ (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
+ (WebCore::AccessibilityObject::hasTouchEventListener):
+ * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
+ (appendStringToResult):
+ (-[WebAccessibilityObjectWrapper _accessibilityHasTouchEventListener]):
+ (-[WebAccessibilityObjectWrapper _accessibilityValueIsAutofilled]):
+
+2016-08-02 Babak Shafiei <[email protected]>
+
Merge r203984. rdar://problem/27409854
2016-08-01 Eric Carlson <[email protected]>
Modified: branches/safari-602-branch/Source/WebCore/accessibility/AccessibilityObject.cpp (204070 => 204071)
--- branches/safari-602-branch/Source/WebCore/accessibility/AccessibilityObject.cpp 2016-08-03 06:15:59 UTC (rev 204070)
+++ branches/safari-602-branch/Source/WebCore/accessibility/AccessibilityObject.cpp 2016-08-03 06:16:04 UTC (rev 204071)
@@ -922,6 +922,7 @@
UserGestureIndicator gestureIndicator(ProcessingUserGesture, document);
+ // FIXME: dispatchTouchEvent() is not dispatching the touch event correctly.
bool dispatchedTouchEvent = dispatchTouchEvent();
if (!dispatchedTouchEvent)
pressElement->accessKeyAction(true);
Modified: branches/safari-602-branch/Source/WebCore/accessibility/AccessibilityObject.h (204070 => 204071)
--- branches/safari-602-branch/Source/WebCore/accessibility/AccessibilityObject.h 2016-08-03 06:15:59 UTC (rev 204070)
+++ branches/safari-602-branch/Source/WebCore/accessibility/AccessibilityObject.h 2016-08-03 06:16:04 UTC (rev 204071)
@@ -1040,6 +1040,7 @@
#if PLATFORM(IOS)
int accessibilityPasswordFieldLength();
+ bool hasTouchEventListener() const;
#endif
// allows for an AccessibilityObject to update its render tree or perform
Modified: branches/safari-602-branch/Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm (204070 => 204071)
--- branches/safari-602-branch/Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm 2016-08-03 06:15:59 UTC (rev 204070)
+++ branches/safari-602-branch/Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm 2016-08-03 06:16:04 UTC (rev 204071)
@@ -26,6 +26,7 @@
#import "config.h"
#import "AccessibilityObject.h"
#import "AccessibilityRenderObject.h"
+#import "EventNames.h"
#import "HTMLInputElement.h"
#import "RenderObject.h"
#import "WAKView.h"
@@ -80,7 +81,16 @@
{
return DefaultBehavior;
}
-
+
+bool AccessibilityObject::hasTouchEventListener() const
+{
+ for (Node* node = this->node(); node; node = node->parentNode()) {
+ if (node->hasEventListeners(eventNames().touchstartEvent) || node->hasEventListeners(eventNames().touchendEvent))
+ return true;
+ }
+ return false;
+}
+
} // WebCore
#endif // HAVE(ACCESSIBILITY) && PLATFORM(IOS)
Modified: branches/safari-602-branch/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm (204070 => 204071)
--- branches/safari-602-branch/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm 2016-08-03 06:15:59 UTC (rev 204070)
+++ branches/safari-602-branch/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm 2016-08-03 06:16:04 UTC (rev 204071)
@@ -949,6 +949,14 @@
[result appendString:string];
}
+- (BOOL)_accessibilityHasTouchEventListener
+{
+ if (![self _prepareAccessibilityCall])
+ return NO;
+
+ return m_object->hasTouchEventListener();
+}
+
- (BOOL)_accessibilityValueIsAutofilled
{
if (![self _prepareAccessibilityCall])
Modified: branches/safari-602-branch/Tools/ChangeLog (204070 => 204071)
--- branches/safari-602-branch/Tools/ChangeLog 2016-08-03 06:15:59 UTC (rev 204070)
+++ branches/safari-602-branch/Tools/ChangeLog 2016-08-03 06:16:04 UTC (rev 204071)
@@ -1,3 +1,19 @@
+2016-08-02 Babak Shafiei <[email protected]>
+
+ Merge r203955. rdar://problem/27629346
+
+ 2016-07-31 Nan Wang <[email protected]>
+
+ AX: Add a check for touch event listener on iOS accessibility object
+ https://bugs.webkit.org/show_bug.cgi?id=160388
+
+ Reviewed by Chris Fleizach.
+
+ * DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
+ (AccessibilityUIElement::boolAttributeValue):
+ * WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
+ (WTR::AccessibilityUIElement::boolAttributeValue):
+
2016-07-31 Babak Shafiei <[email protected]>
Merge r203842. rdar://problem/27553464
Modified: branches/safari-602-branch/Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm (204070 => 204071)
--- branches/safari-602-branch/Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm 2016-08-03 06:15:59 UTC (rev 204070)
+++ branches/safari-602-branch/Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm 2016-08-03 06:16:04 UTC (rev 204071)
@@ -95,6 +95,7 @@
- (NSUInteger)accessibilityARIAColumnIndex;
- (UIAccessibilityTraits)_axContainedByFieldsetTrait;
- (id)_accessibilityFieldsetAncestor;
+- (BOOL)_accessibilityHasTouchEventListener;
// TextMarker related
- (NSArray *)textMarkerRange;
@@ -667,6 +668,8 @@
bool AccessibilityUIElement::boolAttributeValue(JSStringRef attribute)
{
+ if (JSStringIsEqualToUTF8CString(attribute, "AXHasTouchEventListener"))
+ return [m_element _accessibilityHasTouchEventListener];
return false;
}
Modified: branches/safari-602-branch/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm (204070 => 204071)
--- branches/safari-602-branch/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm 2016-08-03 06:15:59 UTC (rev 204070)
+++ branches/safari-602-branch/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm 2016-08-03 06:16:04 UTC (rev 204071)
@@ -72,6 +72,7 @@
- (NSUInteger)accessibilityARIAColumnIndex;
- (UIAccessibilityTraits)_axContainedByFieldsetTrait;
- (id)_accessibilityFieldsetAncestor;
+- (BOOL)_accessibilityHasTouchEventListener;
// TextMarker related
- (NSArray *)textMarkerRange;
@@ -379,6 +380,8 @@
bool AccessibilityUIElement::boolAttributeValue(JSStringRef attribute)
{
+ if (JSStringIsEqualToUTF8CString(attribute, "AXHasTouchEventListener"))
+ return [m_element _accessibilityHasTouchEventListener];
return false;
}