Title: [206190] trunk
Revision
206190
Author
n_w...@apple.com
Date
2016-09-20 17:27:38 -0700 (Tue, 20 Sep 2016)

Log Message

AX: AppleVisUser: VO can't navigate web dialogs iOS10
https://bugs.webkit.org/show_bug.cgi?id=162322

Reviewed by Chris Fleizach.

Source/WebCore:

When using VoiceOver to navigate a web dialog's children, we were setting focus
onto the focusable parent in accessibilityElementDidBecomeFocused. When the focusable
parent is the dialog, it will cause the VO cursor jumping back and forward. Fixed it
by not setting focus on web dialogs in such case.

Test: accessibility/ios-simulator/dialog-did-become-focused.html

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

LayoutTests:

* accessibility/ios-simulator/dialog-did-become-focused-expected.txt: Added.
* accessibility/ios-simulator/dialog-did-become-focused.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (206189 => 206190)


--- trunk/LayoutTests/ChangeLog	2016-09-21 00:27:17 UTC (rev 206189)
+++ trunk/LayoutTests/ChangeLog	2016-09-21 00:27:38 UTC (rev 206190)
@@ -1,3 +1,13 @@
+2016-09-20  Nan Wang  <n_w...@apple.com>
+
+        AX: AppleVisUser: VO can't navigate web dialogs iOS10
+        https://bugs.webkit.org/show_bug.cgi?id=162322
+
+        Reviewed by Chris Fleizach.
+
+        * accessibility/ios-simulator/dialog-did-become-focused-expected.txt: Added.
+        * accessibility/ios-simulator/dialog-did-become-focused.html: Added.
+
 2016-09-20  Zalan Bujtas  <za...@apple.com>
 
         REGRESSION (r204552): Athlete search on Strava gives bad rendering.

Added: trunk/LayoutTests/accessibility/ios-simulator/dialog-did-become-focused-expected.txt (0 => 206190)


--- trunk/LayoutTests/accessibility/ios-simulator/dialog-did-become-focused-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/accessibility/ios-simulator/dialog-did-become-focused-expected.txt	2016-09-21 00:27:38 UTC (rev 206190)
@@ -0,0 +1,14 @@
+Alert Box
+
+Alert text
+
+This tests that accessibilityElementDidBecomeFocused on elements inside a dialog won't set focus onto the dialog.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS dialog === document.activeElement is false
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/accessibility/ios-simulator/dialog-did-become-focused.html (0 => 206190)


--- trunk/LayoutTests/accessibility/ios-simulator/dialog-did-become-focused.html	                        (rev 0)
+++ trunk/LayoutTests/accessibility/ios-simulator/dialog-did-become-focused.html	2016-09-21 00:27:38 UTC (rev 206190)
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<body id="body">
+
+<div id="dialog" role="alertdialog" tabindex="0">
+<p id="title">Alert Box</p><p id="text">Alert text</p>
+</div>
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+
+    description("This tests that accessibilityElementDidBecomeFocused on elements inside a dialog won't set focus onto the dialog.");
+
+    var callbackCount = 0;
+    if (window.accessibilityController) {
+    
+        var dialog = document.getElementById("dialog");
+        var text = accessibilityController.accessibleElementById("text");
+        
+        // Test that VO focus onto the dialog's children won't set focus to the dialog itself.
+        text.assistiveTechnologySimulatedFocus();
+        shouldBeFalse("dialog === document.activeElement");
+    }
+    
+</script>
+
+<script src=""
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (206189 => 206190)


--- trunk/Source/WebCore/ChangeLog	2016-09-21 00:27:17 UTC (rev 206189)
+++ trunk/Source/WebCore/ChangeLog	2016-09-21 00:27:38 UTC (rev 206190)
@@ -1,3 +1,20 @@
+2016-09-20  Nan Wang  <n_w...@apple.com>
+
+        AX: AppleVisUser: VO can't navigate web dialogs iOS10
+        https://bugs.webkit.org/show_bug.cgi?id=162322
+
+        Reviewed by Chris Fleizach.
+
+        When using VoiceOver to navigate a web dialog's children, we were setting focus
+        onto the focusable parent in accessibilityElementDidBecomeFocused. When the focusable
+        parent is the dialog, it will cause the VO cursor jumping back and forward. Fixed it
+        by not setting focus on web dialogs in such case.
+
+        Test: accessibility/ios-simulator/dialog-did-become-focused.html
+
+        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
+        (-[WebAccessibilityObjectWrapper accessibilityElementDidBecomeFocused]):
+
 2016-09-20  Keith Rollin  <krol...@apple.com>
 
         Add new logging for network resource loading

Modified: trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm (206189 => 206190)


--- trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm	2016-09-21 00:27:17 UTC (rev 206189)
+++ trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm	2016-09-21 00:27:38 UTC (rev 206190)
@@ -1891,6 +1891,12 @@
             // webkit.org/b/162041 Taking focus onto elements inside a details node will cause VO focusing onto random items.
             if ([self detailParentForObject:object])
                 break;
+            
+            // webkit.org/b/162322 When a dialog is focusable, allowing focusing onto the dialog node will cause VO cursor jumping
+            // back and forward while navigating its children.
+            if ([object->wrapper() accessibilityIsDialog])
+                break;
+            
             object->setFocused(true);
             break;
         }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to