[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

cfleizach at apple.com cfleizach at apple.com
Wed Apr 7 23:11:05 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit d276a4b151c2d6417b0abe2a900f01ad9f05d7de
Author: cfleizach at apple.com <cfleizach at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Oct 28 02:56:17 2009 +0000

    ARIA menu/menu item need AXRoleDescription
    https://bugs.webkit.org/show_bug.cgi?id=30804
    
    Reviewed by Darin Adler.
    
    WebCore:
    
    Make sure that role descriptions will default to the system's first, before
    returning an unknown role.
    
    Test: platform/mac/accessibility/aria-menu-role-descriptions.html
    
    * accessibility/mac/AccessibilityObjectWrapper.mm:
    (-[AccessibilityObjectWrapper roleDescription]):
    
    LayoutTests:
    
    * platform/mac/accessibility/aria-menu-role-descriptions-expected.txt: Added.
    * platform/mac/accessibility/aria-menu-role-descriptions.html: Added.
    * platform/mac/accessibility/table-with-aria-role-expected.txt:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@50195 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 5c27fb4..64a503d 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,14 @@
+2009-10-27  Chris Fleizach  <cfleizach at apple.com>
+
+        Reviewed by Darin Adler.
+
+        ARIA menu/menu item need AXRoleDescription
+        https://bugs.webkit.org/show_bug.cgi?id=30804
+
+        * platform/mac/accessibility/aria-menu-role-descriptions-expected.txt: Added.
+        * platform/mac/accessibility/aria-menu-role-descriptions.html: Added.
+        * platform/mac/accessibility/table-with-aria-role-expected.txt:
+
 2009-10-27  Steve Block  <steveblock at google.com>
 
         Reviewed by Darin Adler.
diff --git a/LayoutTests/platform/mac/accessibility/aria-menu-role-descriptions-expected.txt b/LayoutTests/platform/mac/accessibility/aria-menu-role-descriptions-expected.txt
new file mode 100644
index 0000000..15e1394
--- /dev/null
+++ b/LayoutTests/platform/mac/accessibility/aria-menu-role-descriptions-expected.txt
@@ -0,0 +1,12 @@
+menu item
+This makes sure that AXMenu and AXMenuItem have role descriptions.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS menuRole.length > 0 is true
+PASS menuItemRole.length > 0 is true
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/platform/mac/accessibility/aria-menu-role-descriptions.html b/LayoutTests/platform/mac/accessibility/aria-menu-role-descriptions.html
new file mode 100644
index 0000000..0e9623b
--- /dev/null
+++ b/LayoutTests/platform/mac/accessibility/aria-menu-role-descriptions.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../../fast/js/resources/js-test-style.css">
+<script>
+var successfullyParsed = false;
+</script>
+<script src="../../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body id="body">
+
+<div role="menu" tabindex="0" id="menu">
+<div role="menuitem" tabindex="0" id="menuitem">menu item</div>
+</div>
+
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+
+    description("This makes sure that AXMenu and AXMenuItem have role descriptions.");
+
+    if (window.accessibilityController) {
+
+          var menu = document.getElementById("menu");
+          menu.focus();
+
+          menu = accessibilityController.focusedElement;
+          var menuRole = menu.attributeValue("AXRoleDescription");
+          shouldBe("menuRole.length > 0", "true");
+
+          var menuItem = menu.childAtIndex(0);
+          var menuItemRole = menuItem.attributeValue("AXRoleDescription");
+          shouldBe("menuItemRole.length > 0", "true");
+    }
+
+    successfullyParsed = true;
+</script>
+
+<script src="../../../fast/js/resources/js-test-post.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/platform/mac/accessibility/table-with-aria-role-expected.txt b/LayoutTests/platform/mac/accessibility/table-with-aria-role-expected.txt
index eae6726..1d8ed06 100644
--- a/LayoutTests/platform/mac/accessibility/table-with-aria-role-expected.txt
+++ b/LayoutTests/platform/mac/accessibility/table-with-aria-role-expected.txt
@@ -41,7 +41,7 @@ AXRequired: 0
 
 ------------
 AXRole: AXMenu
-AXRoleDescription: (null)
+AXRoleDescription: menu
 AXChildren: <array of size 6>
 AXParent: <AXMenu>
 AXEnabled: 1
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 641365f..858c65d 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,18 @@
+2009-10-27  Chris Fleizach  <cfleizach at apple.com>
+
+        Reviewed by Darin Adler.
+
+        ARIA menu/menu item need AXRoleDescription
+        https://bugs.webkit.org/show_bug.cgi?id=30804
+
+        Make sure that role descriptions will default to the system's first, before
+        returning an unknown role.
+
+        Test: platform/mac/accessibility/aria-menu-role-descriptions.html
+
+        * accessibility/mac/AccessibilityObjectWrapper.mm:
+        (-[AccessibilityObjectWrapper roleDescription]):
+
 2009-10-27  Geoffrey Garen  <ggaren at apple.com>
 
         Qt build fix: migrated away from API that no longer exists.
diff --git a/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm b/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm
index e56e77c..58e5018 100644
--- a/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm
+++ b/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm
@@ -1102,21 +1102,7 @@ static NSString* roleValueToNSString(AccessibilityRole value)
     if (m_object->isAttachment())
         return [[self attachmentView] accessibilityAttributeValue:NSAccessibilityRoleDescriptionAttribute];
     
-    // FIXME 3447564: It would be better to call some AppKit API to get these strings
-    // (which would be the best way to localize them)
-    
     NSString* axRole = [self role];
-    if ([axRole isEqualToString:NSAccessibilityButtonRole])
-        return NSAccessibilityRoleDescription(NSAccessibilityButtonRole, [self subrole]);
-    
-    if ([axRole isEqualToString:NSAccessibilityPopUpButtonRole])
-        return NSAccessibilityRoleDescription(NSAccessibilityPopUpButtonRole, [self subrole]);
-
-    if ([axRole isEqualToString:NSAccessibilityStaticTextRole])
-        return NSAccessibilityRoleDescription(NSAccessibilityStaticTextRole, [self subrole]);
-
-    if ([axRole isEqualToString:NSAccessibilityImageRole])
-        return NSAccessibilityRoleDescription(NSAccessibilityImageRole, [self subrole]);
     
     if ([axRole isEqualToString:NSAccessibilityGroupRole]) {
         switch (m_object->roleValue()) {
@@ -1157,42 +1143,6 @@ static NSString* roleValueToNSString(AccessibilityRole value)
         }
     }        
     
-    if ([axRole isEqualToString:NSAccessibilityCheckBoxRole])
-        return NSAccessibilityRoleDescription(NSAccessibilityCheckBoxRole, [self subrole]);
-
-    if ([axRole isEqualToString:NSAccessibilityRadioButtonRole])
-        return NSAccessibilityRoleDescription(NSAccessibilityRadioButtonRole, [self subrole]);
-
-    if ([axRole isEqualToString:NSAccessibilityRadioGroupRole])
-        return NSAccessibilityRoleDescription(NSAccessibilityRadioGroupRole, [self subrole]);
-
-    if ([axRole isEqualToString:NSAccessibilityTextFieldRole])
-        return NSAccessibilityRoleDescription(NSAccessibilityTextFieldRole, [self subrole]);
-
-    if ([axRole isEqualToString:NSAccessibilityTextAreaRole])
-        return NSAccessibilityRoleDescription(NSAccessibilityTextAreaRole, [self subrole]);
-
-    if ([axRole isEqualToString:NSAccessibilityListRole])
-        return NSAccessibilityRoleDescription(NSAccessibilityListRole, [self subrole]);
-    
-    if ([axRole isEqualToString:NSAccessibilityTableRole])
-        return NSAccessibilityRoleDescription(NSAccessibilityTableRole, [self subrole]);
-
-    if ([axRole isEqualToString:NSAccessibilityRowRole])
-        return NSAccessibilityRoleDescription(NSAccessibilityRowRole, [self subrole]);
-
-    if ([axRole isEqualToString:NSAccessibilityColumnRole])
-        return NSAccessibilityRoleDescription(NSAccessibilityColumnRole, [self subrole]);
-
-    if ([axRole isEqualToString:NSAccessibilityCellRole])
-        return NSAccessibilityRoleDescription(NSAccessibilityCellRole, [self subrole]);
-
-    if ([axRole isEqualToString:NSAccessibilitySliderRole])
-        return NSAccessibilityRoleDescription(NSAccessibilitySliderRole, [self subrole]);
-
-    if ([axRole isEqualToString:NSAccessibilityValueIndicatorRole])
-        return NSAccessibilityRoleDescription(NSAccessibilityValueIndicatorRole, [self subrole]);
-
     if ([axRole isEqualToString:@"AXWebArea"])
         return AXWebAreaText();
     
@@ -1207,20 +1157,13 @@ static NSString* roleValueToNSString(AccessibilityRole value)
 
     if ([axRole isEqualToString:@"AXHeading"])
         return AXHeadingText();
-        
-    if ([axRole isEqualToString:(NSString*)kAXMenuBarItemRole] ||
-        [axRole isEqualToString:NSAccessibilityMenuRole])
-        return nil;
 
-    if ([axRole isEqualToString:NSAccessibilityMenuButtonRole])
-        return NSAccessibilityRoleDescription(NSAccessibilityMenuButtonRole, [self subrole]);
-    
-    if ([axRole isEqualToString:NSAccessibilityToolbarRole])
-        return NSAccessibilityRoleDescription(NSAccessibilityToolbarRole, [self subrole]);
+    // We should try the system default role description for all other roles.
+    // If we get the same string back, then as a last resort, return unknown.
+    NSString* defaultRoleDescription = NSAccessibilityRoleDescription(axRole, [self subrole]);
+    if (![defaultRoleDescription isEqualToString:axRole])
+        return defaultRoleDescription;
 
-    if ([axRole isEqualToString:NSAccessibilitySplitterRole])
-        return NSAccessibilityRoleDescription(NSAccessibilitySplitterRole, [self subrole]);
-    
     return NSAccessibilityRoleDescription(NSAccessibilityUnknownRole, nil);
 }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list