AX: VoiceOver in iOS not announcing generic WAI-ARIA region, even if labelled properly
authorcfleizach@apple.com <cfleizach@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 17 Jun 2015 23:20:27 +0000 (23:20 +0000)
committercfleizach@apple.com <cfleizach@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 17 Jun 2015 23:20:27 +0000 (23:20 +0000)
https://bugs.webkit.org/show_bug.cgi?id=146066

Reviewed by Darin Adler.

Source/WebCore:

Allow the region role to identify as a landmark type.

Updated test: platform/ios-simulator/accessibility/landmark-types.html

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

LayoutTests:

* platform/ios-simulator/accessibility/landmark-type-expected.txt:
* platform/ios-simulator/accessibility/landmark-type.html:

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

LayoutTests/ChangeLog
LayoutTests/platform/ios-simulator/accessibility/landmark-type-expected.txt
LayoutTests/platform/ios-simulator/accessibility/landmark-type.html
Source/WebCore/ChangeLog
Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm

index b4e826b..10a1bff 100644 (file)
@@ -1,3 +1,13 @@
+2015-06-17  Chris Fleizach  <cfleizach@apple.com>
+
+        AX: VoiceOver in iOS not announcing generic WAI-ARIA region, even if labelled properly
+        https://bugs.webkit.org/show_bug.cgi?id=146066
+
+        Reviewed by Darin Adler.
+
+        * platform/ios-simulator/accessibility/landmark-type-expected.txt:
+        * platform/ios-simulator/accessibility/landmark-type.html:
+
 2015-06-17  Simon Fraser  <simon.fraser@apple.com>
 
         REGRESSION (r173283-r173296): Amazon.com front page has no caret in the search field
index 37c085c..dc47ba2 100644 (file)
@@ -1,3 +1,5 @@
+non landmark
+text
 text
 text
 This tests that landmarks return their type as part of the AX label.
@@ -6,7 +8,12 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 
 PASS main.description is 'AXLabel: main'
+PASS main.childAtIndex(0).traits != nonLandmarkText.traits is true
 PASS banner.description is 'AXLabel: banner'
+PASS banner.childAtIndex(0).traits != nonLandmarkText.traits is true
+PASS region.description is 'AXLabel: testregion, region'
+PASS region.childAtIndex(0).traits != nonLandmarkText.traits is true
+PASS region.childAtIndex(0).traits == main.childAtIndex(0).traits is true
 PASS successfullyParsed is true
 
 TEST COMPLETE
index 04d82e5..ae44204 100644 (file)
@@ -8,6 +8,10 @@ var successfullyParsed = false;
 </head>
 <body id="body">
 
+<div role="group" id="group">
+non landmark
+</div>
+
 <div role="main" id="main">
 text
 </div>
@@ -16,6 +20,10 @@ text
 text
 </div>
 
+<div role="region" id="region" aria-label="testregion">
+text
+</div>
+
 <p id="description"></p>
 <div id="console"></div>
 
@@ -25,11 +33,23 @@ text
 
     if (window.accessibilityController) {
 
+        // The traits of an object inside a landmark will be different from those not in a landmark,
+        // so we can use that to determine if an object is marked as a landmark.
+        var nonLandmarkText = accessibilityController.accessibleElementById("group").childAtIndex(0);
+
         var main = accessibilityController.accessibleElementById("main");
         shouldBe("main.description", "'AXLabel: main'");
+        shouldBeTrue("main.childAtIndex(0).traits != nonLandmarkText.traits");
 
         var banner = accessibilityController.accessibleElementById("banner");
         shouldBe("banner.description", "'AXLabel: banner'");
+        shouldBeTrue("banner.childAtIndex(0).traits != nonLandmarkText.traits");
+
+        var region = accessibilityController.accessibleElementById("region");
+        shouldBe("region.description", "'AXLabel: testregion, region'");
+        shouldBeTrue("region.childAtIndex(0).traits != nonLandmarkText.traits");
+
+        shouldBeTrue("region.childAtIndex(0).traits == main.childAtIndex(0).traits");
     }
 
     successfullyParsed = true;
index d5ad0c1..1d6320d 100644 (file)
@@ -1,3 +1,17 @@
+2015-06-17  Chris Fleizach  <cfleizach@apple.com>
+
+        AX: VoiceOver in iOS not announcing generic WAI-ARIA region, even if labelled properly
+        https://bugs.webkit.org/show_bug.cgi?id=146066
+
+        Reviewed by Darin Adler.
+
+        Allow the region role to identify as a landmark type.
+
+        Updated test: platform/ios-simulator/accessibility/landmark-types.html
+
+        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
+        (-[WebAccessibilityObjectWrapper _accessibilityIsLandmarkRole:]):
+
 2015-06-17  Simon Fraser  <simon.fraser@apple.com>
 
         REGRESSION (r173283-r173296): Amazon.com front page has no caret in the search field
index ad5cfc5..dd46853 100644 (file)
@@ -433,16 +433,17 @@ static AccessibilityObjectWrapper* AccessibilityUnignoredAncestor(AccessibilityO
 - (BOOL)_accessibilityIsLandmarkRole:(AccessibilityRole)role
 {
     switch (role) {
-        case LandmarkApplicationRole:
-        case LandmarkBannerRole:
-        case LandmarkComplementaryRole:
-        case LandmarkContentInfoRole:
-        case LandmarkMainRole:
-        case LandmarkNavigationRole:
-        case LandmarkSearchRole:
-            return YES;
-        default:
-            return NO;
+    case DocumentRegionRole:
+    case LandmarkApplicationRole:
+    case LandmarkBannerRole:
+    case LandmarkComplementaryRole:
+    case LandmarkContentInfoRole:
+    case LandmarkMainRole:
+    case LandmarkNavigationRole:
+    case LandmarkSearchRole:
+        return YES;
+    default:
+        return NO;
     }    
 }