AX: iOS: Need to expose whether object is a dialog element
authorcfleizach@apple.com <cfleizach@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 7 Jun 2016 22:45:53 +0000 (22:45 +0000)
committercfleizach@apple.com <cfleizach@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 7 Jun 2016 22:45:53 +0000 (22:45 +0000)
https://bugs.webkit.org/show_bug.cgi?id=158487
<rdar://problem/26678218>

Reviewed by Joanmarie Diggs.

Expose whether an object is a dialog type. This will allow decisions higher up the stack to be made in regards to where to move VoiceOver focus.

* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityIsDialog]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@201774 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm

index 5647dcd..febcfcf 100644 (file)
@@ -1,3 +1,16 @@
+2016-06-07  Chris Fleizach  <cfleizach@apple.com>
+
+        AX: iOS: Need to expose whether object is a dialog element
+        https://bugs.webkit.org/show_bug.cgi?id=158487
+        <rdar://problem/26678218>
+
+        Reviewed by Joanmarie Diggs.
+
+        Expose whether an object is a dialog type. This will allow decisions higher up the stack to be made in regards to where to move VoiceOver focus.
+
+        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
+        (-[WebAccessibilityObjectWrapper accessibilityIsDialog]):
+
 2016-06-07  Alex Christensen  <achristensen@webkit.org>
 
         Fix Yosemite build.
index 8ce06fa..7ef3da7 100644 (file)
@@ -501,6 +501,15 @@ static AccessibilityObjectWrapper* AccessibilityUnignoredAncestor(AccessibilityO
     return m_object->language();
 }
 
+- (BOOL)accessibilityIsDialog
+{
+    if (![self _prepareAccessibilityCall])
+        return NO;
+
+    AccessibilityRole roleValue = m_object->roleValue();
+    return roleValue == ApplicationDialogRole || roleValue == ApplicationAlertDialogRole;
+}
+
 - (BOOL)_accessibilityIsLandmarkRole:(AccessibilityRole)role
 {
     switch (role) {