Diff
Modified: trunk/LayoutTests/ChangeLog (246957 => 246958)
--- trunk/LayoutTests/ChangeLog 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/LayoutTests/ChangeLog 2019-07-01 01:21:17 UTC (rev 246958)
@@ -1,3 +1,16 @@
+2019-06-30 Andres Gonzalez <[email protected]>
+
+ Enhance support of aria-haspopup per ARIA 1.1 specification.
+ https://bugs.webkit.org/show_bug.cgi?id=199216
+ <rdar://problem/46221342>
+
+ Reviewed by Chris Fleizach.
+
+ * accessibility/button-with-aria-haspopup-role-expected.txt:
+ * accessibility/button-with-aria-haspopup-role.html:
+ * accessibility/ios-simulator/button-with-aria-haspopup-role-expected.txt:
+ * accessibility/ios-simulator/button-with-aria-haspopup-role.html:
+
2019-06-29 Simon Fraser <[email protected]>
Remove a PLATFORM(IOS_FAMILY) related to repaint offsets in composited scrolling layers
Modified: trunk/LayoutTests/accessibility/button-with-aria-haspopup-role-expected.txt (246957 => 246958)
--- trunk/LayoutTests/accessibility/button-with-aria-haspopup-role-expected.txt 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/LayoutTests/accessibility/button-with-aria-haspopup-role-expected.txt 2019-07-01 01:21:17 UTC (rev 246958)
@@ -3,16 +3,26 @@
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-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=''
+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'
PASS successfullyParsed is true
TEST COMPLETE
Modified: trunk/LayoutTests/accessibility/button-with-aria-haspopup-role.html (246957 => 246958)
--- trunk/LayoutTests/accessibility/button-with-aria-haspopup-role.html 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/LayoutTests/accessibility/button-with-aria-haspopup-role.html 2019-07-01 01:21:17 UTC (rev 246958)
@@ -22,10 +22,12 @@
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)
+ debug("test" + i + " " + axElement.role + " for aria-haspopup = " + popup)
+ // Check that accessibilityHasPopupValue returns the right value in each case.
+ debug("AX popupValue = " + "'" + axElement.popupValue + "'");
}
document.getElementById("content").style.visibility = "hidden";
Modified: trunk/LayoutTests/accessibility/ios-simulator/button-with-aria-haspopup-role-expected.txt (246957 => 246958)
--- trunk/LayoutTests/accessibility/ios-simulator/button-with-aria-haspopup-role-expected.txt 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/LayoutTests/accessibility/ios-simulator/button-with-aria-haspopup-role-expected.txt 2019-07-01 01:21:17 UTC (rev 246958)
@@ -4,15 +4,25 @@
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
Modified: trunk/LayoutTests/accessibility/ios-simulator/button-with-aria-haspopup-role.html (246957 => 246958)
--- trunk/LayoutTests/accessibility/ios-simulator/button-with-aria-haspopup-role.html 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/LayoutTests/accessibility/ios-simulator/button-with-aria-haspopup-role.html 2019-07-01 01:21:17 UTC (rev 246958)
@@ -21,11 +21,13 @@
<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.
+ // Get the document and accessibility elements for test0 to be used as reference to check traits against.
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);
@@ -33,6 +35,8 @@
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";
Modified: trunk/Source/WebCore/ChangeLog (246957 => 246958)
--- trunk/Source/WebCore/ChangeLog 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/Source/WebCore/ChangeLog 2019-07-01 01:21:17 UTC (rev 246958)
@@ -1,3 +1,27 @@
+2019-06-30 Andres Gonzalez <[email protected]>
+
+ Enhance support of aria-haspopup per ARIA 1.1 specification.
+ https://bugs.webkit.org/show_bug.cgi?id=199216
+ <rdar://problem/46221342>
+
+ Reviewed by Chris Fleizach.
+
+ Test button-with-aria-haspopup-role.html was expanded to cover testing
+ of new functionality.
+
+ * accessibility/AccessibilityObject.cpp:
+ (WebCore::AccessibilityObject::popupValue const): replaces hasPopupValue.
+ (WebCore::AccessibilityObject::hasPopupValue const): Deleted.
+ * accessibility/AccessibilityObject.h:
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::hasPopup const): method rename.
+ * accessibility/atk/WebKitAccessible.cpp:
+ (webkitAccessibleGetAttributes): method rename.
+ * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
+ (-[WebAccessibilityObjectWrapper accessibilityPopupValue]):
+ * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+ (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
+
2019-06-30 Zalan Bujtas <[email protected]>
[LFC] Implement Layout::printLayoutTreeForLiveDocuments
Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.cpp (246957 => 246958)
--- trunk/Source/WebCore/accessibility/AccessibilityObject.cpp 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.cpp 2019-07-01 01:21:17 UTC (rev 246958)
@@ -2758,17 +2758,23 @@
return hasAttribute(aria_haspopupAttr) || isComboBox();
}
-String AccessibilityObject::hasPopupValue() const
+String AccessibilityObject::popupValue() 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"))
+ 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))
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";
Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.h (246957 => 246958)
--- trunk/Source/WebCore/accessibility/AccessibilityObject.h 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.h 2019-07-01 01:21:17 UTC (rev 246958)
@@ -552,7 +552,7 @@
void ariaOwnsReferencingElements(AccessibilityChildrenVector&) const;
virtual bool hasPopup() const { return false; }
- String hasPopupValue() const;
+ String popupValue() const;
bool supportsHasPopup() const;
bool pressedIsPresent() const;
bool ariaIsMultiline() const;
Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (246957 => 246958)
--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp 2019-07-01 01:21:17 UTC (rev 246958)
@@ -1034,8 +1034,8 @@
{
// 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.hasPopupValue(), "false")
- : object.isLink() && !equalLettersIgnoringASCIICase(object.hasPopupValue(), "false");
+ return (this == &object) ? !equalLettersIgnoringASCIICase(object.popupValue(), "false")
+ : object.isLink() && !equalLettersIgnoringASCIICase(object.popupValue(), "false");
});
}
Modified: trunk/Source/WebCore/accessibility/atk/WebKitAccessible.cpp (246957 => 246958)
--- trunk/Source/WebCore/accessibility/atk/WebKitAccessible.cpp 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/Source/WebCore/accessibility/atk/WebKitAccessible.cpp 2019-07-01 01:21:17 UTC (rev 246958)
@@ -467,7 +467,7 @@
attributeSet = addToAtkAttributeSet(attributeSet, "autocomplete", coreObject->autoCompleteValue().utf8().data());
if (coreObject->supportsHasPopup())
- attributeSet = addToAtkAttributeSet(attributeSet, "haspopup", coreObject->hasPopupValue().utf8().data());
+ attributeSet = addToAtkAttributeSet(attributeSet, "haspopup", coreObject->popupValue().utf8().data());
if (coreObject->supportsCurrent())
attributeSet = addToAtkAttributeSet(attributeSet, "current", coreObject->currentValue().utf8().data());
Modified: trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm (246957 => 246958)
--- trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm 2019-07-01 01:21:17 UTC (rev 246958)
@@ -503,6 +503,14 @@
return m_object->hasPopup();
}
+- (NSString *)accessibilityPopupValue
+{
+ if (![self _prepareAccessibilityCall])
+ return nil;
+
+ return m_object->popupValue();
+}
+
- (NSString *)accessibilityLanguage
{
if (![self _prepareAccessibilityCall])
Modified: trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm (246957 => 246958)
--- trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm 2019-07-01 01:21:17 UTC (rev 246958)
@@ -237,6 +237,10 @@
#define NSAccessibilityHasPopupAttribute @"AXHasPopup"
#endif
+#ifndef NSAccessibilityPopupValueAttribute
+#define NSAccessibilityPopupValueAttribute @"AXPopupValue"
+#endif
+
#ifndef NSAccessibilityPlaceholderValueAttribute
#define NSAccessibilityPlaceholderValueAttribute @"AXPlaceholderValue"
#endif
@@ -3379,10 +3383,10 @@
if ([attributeName isEqualToString:@"AXAutocompleteValue"])
return m_object->autoCompleteValue();
-
- if ([attributeName isEqualToString:@"AXHasPopUpValue"])
- return m_object->hasPopupValue();
-
+
+ if ([attributeName isEqualToString:NSAccessibilityPopupValueAttribute])
+ return m_object->popupValue();
+
if ([attributeName isEqualToString:@"AXKeyShortcutsValue"])
return m_object->keyShortcutsValue();
Modified: trunk/Tools/ChangeLog (246957 => 246958)
--- trunk/Tools/ChangeLog 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/Tools/ChangeLog 2019-07-01 01:21:17 UTC (rev 246958)
@@ -1,3 +1,24 @@
+2019-06-30 Andres Gonzalez <[email protected]>
+
+ Enhance support of aria-haspopup per ARIA 1.1 specification.
+ https://bugs.webkit.org/show_bug.cgi?id=199216
+ <rdar://problem/46221342>
+
+ Reviewed by Chris Fleizach.
+
+ * DumpRenderTree/AccessibilityUIElement.cpp:
+ (getPopupValueCallback):
+ (AccessibilityUIElement::getJSClass):
+ * DumpRenderTree/AccessibilityUIElement.h:
+ * DumpRenderTree/mac/AccessibilityUIElementMac.mm:
+ (AccessibilityUIElement::popupValue const):
+ * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
+ * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
+ * WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
+ (WTR::AccessibilityUIElement::popupValue const):
+ * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
+ (WTR::AccessibilityUIElement::popupValue const):
+
2019-06-28 Robin Morisset <[email protected]>
Adding myself as a reviewer to contributors.json.
Modified: trunk/Tools/DumpRenderTree/AccessibilityUIElement.cpp (246957 => 246958)
--- trunk/Tools/DumpRenderTree/AccessibilityUIElement.cpp 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/Tools/DumpRenderTree/AccessibilityUIElement.cpp 2019-07-01 01:21:17 UTC (rev 246958)
@@ -1403,6 +1403,11 @@
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());
@@ -1863,6 +1868,7 @@
{ "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 },
Modified: trunk/Tools/DumpRenderTree/AccessibilityUIElement.h (246957 => 246958)
--- trunk/Tools/DumpRenderTree/AccessibilityUIElement.h 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/Tools/DumpRenderTree/AccessibilityUIElement.h 2019-07-01 01:21:17 UTC (rev 246958)
@@ -164,6 +164,7 @@
bool isMultiLine() const;
bool isIndeterminate() const;
bool hasPopup() const;
+ JSRetainPtr<JSStringRef> popupValue() const;
int hierarchicalLevel() const;
double clickPointX();
double clickPointY();
Modified: trunk/Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm (246957 => 246958)
--- trunk/Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm 2019-07-01 01:21:17 UTC (rev 246958)
@@ -103,6 +103,8 @@
- (NSArray *)accessibilitySpeechHint;
- (BOOL)_accessibilityIsStrongPasswordField;
- (NSString *)accessibilityTextualContext;
+- (BOOL)accessibilityHasPopup;
+- (NSString *)accessibilityPopupValue;
// TextMarker related
- (NSArray *)textMarkerRange;
@@ -1136,10 +1138,14 @@
bool AccessibilityUIElement::hasPopup() const
{
- // FIXME: implement
- return false;
+ return [m_element accessibilityHasPopup];
}
+JSRetainPtr<JSStringRef> AccessibilityUIElement::popupValue() const
+{
+ return [[m_element accessibilityPopupValue] createJSStringRef];
+}
+
void AccessibilityUIElement::takeFocus()
{
// FIXME: implement
Modified: trunk/Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm (246957 => 246958)
--- trunk/Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm 2019-07-01 01:21:17 UTC (rev 246958)
@@ -1626,6 +1626,17 @@
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
Modified: trunk/Tools/DumpRenderTree/win/AccessibilityUIElementWin.cpp (246957 => 246958)
--- trunk/Tools/DumpRenderTree/win/AccessibilityUIElementWin.cpp 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/Tools/DumpRenderTree/win/AccessibilityUIElementWin.cpp 2019-07-01 01:21:17 UTC (rev 246958)
@@ -907,6 +907,11 @@
return (state & STATE_SYSTEM_HASPOPUP) == STATE_SYSTEM_HASPOPUP;
}
+JSRetainPtr<JSStringRef> AccessibilityUIElement::popupValue() const
+{
+ return createEmptyJSString();
+}
+
void AccessibilityUIElement::takeFocus()
{
if (!m_element)
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h (246957 => 246958)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h 2019-07-01 01:21:17 UTC (rev 246958)
@@ -170,6 +170,7 @@
bool isSingleLine() const;
bool isMultiLine() const;
bool hasPopup() const;
+ JSRetainPtr<JSStringRef> popupValue() const;
int hierarchicalLevel() const;
double clickPointX();
double clickPointY();
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl (246957 => 246958)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl 2019-07-01 01:21:17 UTC (rev 246958)
@@ -91,6 +91,7 @@
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;
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm (246957 => 246958)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm 2019-07-01 01:21:17 UTC (rev 246958)
@@ -87,6 +87,7 @@
- (NSString *)accessibilityTextualContext;
- (NSString *)accessibilityRoleDescription;
- (BOOL)accessibilityHasPopup;
+- (NSString *)accessibilityPopupValue;
- (NSString *)accessibilityColorStringValue;
// TextMarker related
@@ -1058,6 +1059,11 @@
return [m_element accessibilityHasPopup];
}
+JSRetainPtr<JSStringRef> AccessibilityUIElement::popupValue() const
+{
+ return [[m_element accessibilityPopupValue] createJSStringRef];
+}
+
void AccessibilityUIElement::takeFocus()
{
// FIXME: implement
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm (246957 => 246958)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm 2019-07-01 01:21:17 UTC (rev 246958)
@@ -1708,6 +1708,17 @@
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
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp (246957 => 246958)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp 2019-06-30 22:16:08 UTC (rev 246957)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp 2019-07-01 01:21:17 UTC (rev 246958)
@@ -758,6 +758,12 @@
return false;
}
+JSRetainPtr<JSStringRef> AccessibilityUIElement::popupValue() const
+{
+ notImplemented();
+ return nullptr;
+}
+
void AccessibilityUIElement::takeFocus()
{
notImplemented();