Unreviewed, rolling out r246958.
authortsavell@apple.com <tsavell@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 1 Jul 2019 21:07:31 +0000 (21:07 +0000)
committertsavell@apple.com <tsavell@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 1 Jul 2019 21:07:31 +0000 (21:07 +0000)
Broke inspector/dom/getAccessibilityPropertiesForNode.html

Reverted changeset:

"Enhance support of aria-haspopup per ARIA 1.1 specification."
https://bugs.webkit.org/show_bug.cgi?id=199216
https://trac.webkit.org/changeset/246958

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

23 files changed:
LayoutTests/ChangeLog
LayoutTests/accessibility/button-with-aria-haspopup-role-expected.txt
LayoutTests/accessibility/button-with-aria-haspopup-role.html
LayoutTests/accessibility/ios-simulator/button-with-aria-haspopup-role-expected.txt
LayoutTests/accessibility/ios-simulator/button-with-aria-haspopup-role.html
Source/WebCore/ChangeLog
Source/WebCore/accessibility/AccessibilityObject.cpp
Source/WebCore/accessibility/AccessibilityObject.h
Source/WebCore/accessibility/AccessibilityRenderObject.cpp
Source/WebCore/accessibility/atk/WebKitAccessible.cpp
Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm
Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
Tools/ChangeLog
Tools/DumpRenderTree/AccessibilityUIElement.cpp
Tools/DumpRenderTree/AccessibilityUIElement.h
Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm
Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm
Tools/DumpRenderTree/win/AccessibilityUIElementWin.cpp
Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h
Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl
Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm
Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm
Tools/WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp

index 30ec455..d8ae8e4 100644 (file)
@@ -1,3 +1,15 @@
+2019-07-01  Truitt Savell  <tsavell@apple.com>
+
+        Unreviewed, rolling out r246958.
+
+        Broke inspector/dom/getAccessibilityPropertiesForNode.html
+
+        Reverted changeset:
+
+        "Enhance support of aria-haspopup per ARIA 1.1 specification."
+        https://bugs.webkit.org/show_bug.cgi?id=199216
+        https://trac.webkit.org/changeset/246958
+
 2019-07-01  Eric Carlson  <eric.carlson@apple.com>
 
         [iOS] Exiting from fullscreen scrolls to top of page
index ee799f2..8b91b02 100644 (file)
@@ -3,26 +3,16 @@ This tests the platform role exposed for buttons with aria-haspopup
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-test1 AXRole: AXButton for aria-haspopup = (null)
-AX popupValue = 'false'
-test2 AXRole: AXPopUpButton for aria-haspopup = 'true'
-AX popupValue = 'menu'
-test3 AXRole: AXButton for aria-haspopup = 'false'
-AX popupValue = 'false'
-test4 AXRole: AXPopUpButton for aria-haspopup = 'dialog'
-AX popupValue = 'dialog'
-test5 AXRole: AXPopUpButton for aria-haspopup = 'grid'
-AX popupValue = 'grid'
-test6 AXRole: AXPopUpButton for aria-haspopup = 'listbox'
-AX popupValue = 'listbox'
-test7 AXRole: AXPopUpButton for aria-haspopup = 'menu'
-AX popupValue = 'menu'
-test8 AXRole: AXPopUpButton for aria-haspopup = 'tree'
-AX popupValue = 'tree'
-test9 AXRole: AXButton for aria-haspopup = 'foo'
-AX popupValue = 'false'
-test10 AXRole: AXButton for aria-haspopup = ''
-AX popupValue = 'false'
+test1 AXRole: AXButton for aria-haspopup=(null)
+test2 AXRole: AXPopUpButton for aria-haspopup='true'
+test3 AXRole: AXButton for aria-haspopup='false'
+test4 AXRole: AXPopUpButton for aria-haspopup='dialog'
+test5 AXRole: AXPopUpButton for aria-haspopup='grid'
+test6 AXRole: AXPopUpButton for aria-haspopup='listbox'
+test7 AXRole: AXPopUpButton for aria-haspopup='menu'
+test8 AXRole: AXPopUpButton for aria-haspopup='tree'
+test9 AXRole: AXButton for aria-haspopup='foo'
+test10 AXRole: AXButton for aria-haspopup=''
 PASS successfullyParsed is true
 
 TEST COMPLETE
index abd8a02..06ff97e 100644 (file)
     description("This tests the platform role exposed for buttons with aria-haspopup");
     if (window.accessibilityController) {
         for (var i = 1; i <= 10; i++) {
-            var element = document.getElementById("test" + i)
+           var element = document.getElementById("test" + i)
             var popup = element.hasAttribute("aria-haspopup") ? "'" + element.getAttribute("aria-haspopup") + "'" : "(null)";
             var axElement = accessibilityController.accessibleElementById("test" + i);
-            debug("test" + i + " " + axElement.role + " for aria-haspopup = " + popup)
-            // Check that accessibilityHasPopupValue returns the right value in each case.
-            debug("AX popupValue = " + "'" + axElement.popupValue + "'");
+            debug("test" + i + " " + axElement.role + " for aria-haspopup=" + popup)
         }
 
         document.getElementById("content").style.visibility = "hidden";
index 4cc667b..409c859 100644 (file)
@@ -4,25 +4,15 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 
 PASS element.hasAttribute('aria-haspopup') is true
-AX popupValue = 'menu'
 test1 has trait haspopup = true with aria-haspopup attribute = dialog
-AX popupValue = 'dialog'
 test2 has trait haspopup = true with aria-haspopup attribute = grid
-AX popupValue = 'grid'
 test3 has trait haspopup = true with aria-haspopup attribute = listbox
-AX popupValue = 'listbox'
 test4 has trait haspopup = true with aria-haspopup attribute = menu
-AX popupValue = 'menu'
 test5 has trait haspopup = true with aria-haspopup attribute = tree
-AX popupValue = 'tree'
 test6 has trait haspopup = false with aria-haspopup attribute = null
-AX popupValue = 'false'
 test7 has trait haspopup = false with aria-haspopup attribute = false
-AX popupValue = 'false'
 test8 has trait haspopup = false with aria-haspopup attribute = foo
-AX popupValue = 'false'
 test9 has trait haspopup = false with aria-haspopup attribute = 
-AX popupValue = 'false'
 PASS successfullyParsed is true
 
 TEST COMPLETE
index 82f1bd4..3da94b3 100644 (file)
 <script>
     description("This tests the platform attributes exposed for buttons with aria-haspopup");
     if (window.accessibilityController) {
-        // Get the document and accessibility elements for test0 to be used as reference to check traits against.
+        // Get the document and accessibility elements for test0 to be used as reference.
         var element = document.getElementById("test0");
         shouldBe("element.hasAttribute('aria-haspopup')", "true");
         var axElement = accessibilityController.accessibleElementById("test0");
         var haspopupTraits = axElement.traits;
-        // Check that accessibilityHasPopupValue returns the right value in each case.
-        debug("AX popupValue = " + "'" + axElement.popupValue + "'");
 
         for (var i = 1; i <= 9; i++) {
             var element = document.getElementById("test" + i);
@@ -35,8 +33,6 @@
             var axElement = accessibilityController.accessibleElementById("test" + i);
             var sameTraits = axElement.traits == haspopupTraits;
             debug("test" + i + " has trait haspopup = " + sameTraits + " with aria-haspopup attribute = " + popup);
-            // Check that accessibilityHasPopupValue returns the right value in each case.
-            debug("AX popupValue = " + "'" + axElement.popupValue + "'");
         }
 
         document.getElementById("content").style.visibility = "hidden";
index 1db3c72..1523b97 100644 (file)
@@ -1,3 +1,15 @@
+2019-07-01  Truitt Savell  <tsavell@apple.com>
+
+        Unreviewed, rolling out r246958.
+
+        Broke inspector/dom/getAccessibilityPropertiesForNode.html
+
+        Reverted changeset:
+
+        "Enhance support of aria-haspopup per ARIA 1.1 specification."
+        https://bugs.webkit.org/show_bug.cgi?id=199216
+        https://trac.webkit.org/changeset/246958
+
 2019-07-01  Brady Eidson  <beidson@apple.com>
 
         More judiciously handle clearing/creation of DOMWindows for new Documents.
index 61e5251..0b33d28 100644 (file)
@@ -2758,23 +2758,17 @@ bool AccessibilityObject::supportsHasPopup() const
     return hasAttribute(aria_haspopupAttr) || isComboBox();
 }
 
-String AccessibilityObject::popupValue() const
-{
-    static const NeverDestroyed<HashSet<String>> allowedPopupValues(std::initializer_list<String> {
-        "menu", "listbox", "tree", "grid", "dialog"
-    });
-
-    auto hasPopup = getAttribute(aria_haspopupAttr).convertToASCIILowercase();
-    if (hasPopup.isNull())
-        return "false";
-
-    if (allowedPopupValues->contains(hasPopup))
+String AccessibilityObject::hasPopupValue() const
+{
+    const AtomString& hasPopup = getAttribute(aria_haspopupAttr);
+    if (equalLettersIgnoringASCIICase(hasPopup, "true")
+        || equalLettersIgnoringASCIICase(hasPopup, "dialog")
+        || equalLettersIgnoringASCIICase(hasPopup, "grid")
+        || equalLettersIgnoringASCIICase(hasPopup, "listbox")
+        || equalLettersIgnoringASCIICase(hasPopup, "menu")
+        || equalLettersIgnoringASCIICase(hasPopup, "tree"))
         return hasPopup;
 
-    // aria-haspopup specification states that true must be treated as menu.
-    if (hasPopup == "true")
-        return "menu";
-
     // In ARIA 1.1, the implicit value for combobox became "listbox."
     if (isComboBox() && hasPopup.isEmpty())
         return "listbox";
index 7b763c7..b59b7d5 100644 (file)
@@ -552,7 +552,7 @@ public:
     void ariaOwnsReferencingElements(AccessibilityChildrenVector&) const;
 
     virtual bool hasPopup() const { return false; }
-    String popupValue() const;
+    String hasPopupValue() const;
     bool supportsHasPopup() const;
     bool pressedIsPresent() const;
     bool ariaIsMultiline() const;
index 05af025..85f6e2f 100644 (file)
@@ -1034,8 +1034,8 @@ bool AccessibilityRenderObject::hasPopup() const
 {
     // Return true if this has the aria-haspopup attribute, or if it has an ancestor of type link with the aria-haspopup attribute.
     return AccessibilityObject::matchedParent(*this, true, [this] (const AccessibilityObject& object) {
-        return (this == &object) ? !equalLettersIgnoringASCIICase(object.popupValue(), "false")
-            : object.isLink() && !equalLettersIgnoringASCIICase(object.popupValue(), "false");
+        return (this == &object) ? !equalLettersIgnoringASCIICase(object.hasPopupValue(), "false")
+            : object.isLink() && !equalLettersIgnoringASCIICase(object.hasPopupValue(), "false");
     });
 }
 
index 5c8f60c..f47efc5 100644 (file)
@@ -467,7 +467,7 @@ static AtkAttributeSet* webkitAccessibleGetAttributes(AtkObject* object)
         attributeSet = addToAtkAttributeSet(attributeSet, "autocomplete", coreObject->autoCompleteValue().utf8().data());
 
     if (coreObject->supportsHasPopup())
-        attributeSet = addToAtkAttributeSet(attributeSet, "haspopup", coreObject->popupValue().utf8().data());
+        attributeSet = addToAtkAttributeSet(attributeSet, "haspopup", coreObject->hasPopupValue().utf8().data());
 
     if (coreObject->supportsCurrent())
         attributeSet = addToAtkAttributeSet(attributeSet, "current", coreObject->currentValue().utf8().data());
index a2eb20b..d873462 100644 (file)
@@ -503,14 +503,6 @@ static AccessibilityObjectWrapper* AccessibilityUnignoredAncestor(AccessibilityO
     return m_object->hasPopup();
 }
 
-- (NSString *)accessibilityPopupValue
-{
-    if (![self _prepareAccessibilityCall])
-        return nil;
-
-    return m_object->popupValue();
-}
-
 - (NSString *)accessibilityLanguage
 {
     if (![self _prepareAccessibilityCall])
index f9a1844..8ac9631 100644 (file)
@@ -237,10 +237,6 @@ using namespace HTMLNames;
 #define NSAccessibilityHasPopupAttribute @"AXHasPopup"
 #endif
 
-#ifndef NSAccessibilityPopupValueAttribute
-#define NSAccessibilityPopupValueAttribute @"AXPopupValue"
-#endif
-
 #ifndef NSAccessibilityPlaceholderValueAttribute
 #define NSAccessibilityPlaceholderValueAttribute @"AXPlaceholderValue"
 #endif
@@ -3383,10 +3379,10 @@ IGNORE_WARNINGS_END
     
     if ([attributeName isEqualToString:@"AXAutocompleteValue"])
         return m_object->autoCompleteValue();
-
-    if ([attributeName isEqualToString:NSAccessibilityPopupValueAttribute])
-        return m_object->popupValue();
-
+    
+    if ([attributeName isEqualToString:@"AXHasPopUpValue"])
+        return m_object->hasPopupValue();
+    
     if ([attributeName isEqualToString:@"AXKeyShortcutsValue"])
         return m_object->keyShortcutsValue();
     
index bdf9bb3..befe9d9 100644 (file)
@@ -1,3 +1,15 @@
+2019-07-01  Truitt Savell  <tsavell@apple.com>
+
+        Unreviewed, rolling out r246958.
+
+        Broke inspector/dom/getAccessibilityPropertiesForNode.html
+
+        Reverted changeset:
+
+        "Enhance support of aria-haspopup per ARIA 1.1 specification."
+        https://bugs.webkit.org/show_bug.cgi?id=199216
+        https://trac.webkit.org/changeset/246958
+
 2019-07-01  Philippe Normand  <pnormand@igalia.com>
 
         Unreviewed, GTK a11y tests fix after r246958
index 6b8736e..1159cd6 100644 (file)
@@ -1403,11 +1403,6 @@ static JSValueRef getHasPopupCallback(JSContextRef context, JSObjectRef thisObje
     return JSValueMakeBoolean(context, toAXElement(thisObject)->hasPopup());
 }
 
-static JSValueRef getPopupValueCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef, JSValueRef*)
-{
-    return JSValueMakeString(context, toAXElement(thisObject)->popupValue().get());
-}
-
 static JSValueRef hierarchicalLevelCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef, JSValueRef*)
 {
     return JSValueMakeNumber(context, toAXElement(thisObject)->hierarchicalLevel());
@@ -1868,7 +1863,6 @@ JSClassRef AccessibilityUIElement::getJSClass()
         { "isOffScreen", getIsOffScreenCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
         { "isCollapsed", getIsCollapsedCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
         { "hasPopup", getHasPopupCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
-        { "popupValue", getPopupValueCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
         { "valueDescription", getValueDescriptionCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
         { "hierarchicalLevel", hierarchicalLevelCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
         { "documentEncoding", getDocumentEncodingCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
index 3ee21b6..0e2a1d3 100644 (file)
@@ -164,7 +164,6 @@ public:
     bool isMultiLine() const;
     bool isIndeterminate() const;
     bool hasPopup() const;
-    JSRetainPtr<JSStringRef> popupValue() const;
     int hierarchicalLevel() const;
     double clickPointX();
     double clickPointY();
index b5367ab..e14774b 100644 (file)
@@ -103,8 +103,6 @@ AccessibilityUIElement::~AccessibilityUIElement()
 - (NSArray *)accessibilitySpeechHint;
 - (BOOL)_accessibilityIsStrongPasswordField;
 - (NSString *)accessibilityTextualContext;
-- (BOOL)accessibilityHasPopup;
-- (NSString *)accessibilityPopupValue;
 
 // TextMarker related
 - (NSArray *)textMarkerRange;
@@ -1138,12 +1136,8 @@ bool AccessibilityUIElement::isMultiLine() const
 
 bool AccessibilityUIElement::hasPopup() const
 {
-    return [m_element accessibilityHasPopup];
-}
-
-JSRetainPtr<JSStringRef> AccessibilityUIElement::popupValue() const
-{
-    return [[m_element accessibilityPopupValue] createJSStringRef];
+    // FIXME: implement
+    return false;
 }
 
 void AccessibilityUIElement::takeFocus()
index 93cfe73..8024657 100644 (file)
@@ -1626,17 +1626,6 @@ bool AccessibilityUIElement::hasPopup() const
     return false;
 }
 
-JSRetainPtr<JSStringRef> AccessibilityUIElement::popupValue() const
-{
-    BEGIN_AX_OBJC_EXCEPTIONS
-    id value = [m_element accessibilityAttributeValue:@"AXPopupValue"];
-    if ([value isKindOfClass:[NSString class]])
-        return [value createJSStringRef];
-    END_AX_OBJC_EXCEPTIONS
-
-    return [@"false" createJSStringRef];
-}
-
 void AccessibilityUIElement::takeFocus()
 {
     BEGIN_AX_OBJC_EXCEPTIONS
index 797c70d..e1b16ff 100644 (file)
@@ -907,11 +907,6 @@ bool AccessibilityUIElement::hasPopup() const
     return (state & STATE_SYSTEM_HASPOPUP) == STATE_SYSTEM_HASPOPUP;
 }
 
-JSRetainPtr<JSStringRef> AccessibilityUIElement::popupValue() const
-{
-    return createEmptyJSString();
-}
-
 void AccessibilityUIElement::takeFocus()
 {
     if (!m_element)
index 94c21a0..69d3f51 100644 (file)
@@ -170,7 +170,6 @@ public:
     bool isSingleLine() const;
     bool isMultiLine() const;
     bool hasPopup() const;
-    JSRetainPtr<JSStringRef> popupValue() const;
     int hierarchicalLevel() const;
     double clickPointX();
     double clickPointY();
index b60bf17..e3531fb 100644 (file)
@@ -91,7 +91,6 @@ interface AccessibilityUIElement {
     readonly attribute boolean isVisible;
     readonly attribute boolean isCollapsed;
     readonly attribute boolean hasPopup;
-    readonly attribute DOMString popupValue;
     readonly attribute boolean isIgnored;
     readonly attribute boolean isSingleLine;
     readonly attribute boolean isMultiLine;
index 2700807..f34deed 100644 (file)
@@ -87,7 +87,6 @@ typedef void (*AXPostedNotificationCallback)(id element, NSString* notification,
 - (NSString *)accessibilityTextualContext;
 - (NSString *)accessibilityRoleDescription;
 - (BOOL)accessibilityHasPopup;
-- (NSString *)accessibilityPopupValue;
 - (NSString *)accessibilityColorStringValue;
 
 // TextMarker related
@@ -1059,11 +1058,6 @@ bool AccessibilityUIElement::hasPopup() const
     return [m_element accessibilityHasPopup];
 }
 
-JSRetainPtr<JSStringRef> AccessibilityUIElement::popupValue() const
-{
-    return [[m_element accessibilityPopupValue] createJSStringRef];
-}
-
 void AccessibilityUIElement::takeFocus()
 {
     // FIXME: implement
index 8958b63..6b2788e 100644 (file)
@@ -1708,17 +1708,6 @@ bool AccessibilityUIElement::hasPopup() const
     return false;
 }
 
-JSRetainPtr<JSStringRef> AccessibilityUIElement::popupValue() const
-{
-    BEGIN_AX_OBJC_EXCEPTIONS
-    id value = [m_element accessibilityAttributeValue:@"AXPopupValue"];
-    if ([value isKindOfClass:[NSString class]])
-        return [value createJSStringRef];
-    END_AX_OBJC_EXCEPTIONS
-
-    return [@"false" createJSStringRef];
-}
-
 void AccessibilityUIElement::takeFocus()
 {
     BEGIN_AX_OBJC_EXCEPTIONS
index c341857..f12a855 100644 (file)
@@ -758,12 +758,6 @@ bool AccessibilityUIElement::hasPopup() const
     return false;
 }
 
-JSRetainPtr<JSStringRef> AccessibilityUIElement::popupValue() const
-{
-    notImplemented();
-    return nullptr;
-}
-
 void AccessibilityUIElement::takeFocus()
 {
     notImplemented();