<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[185609] trunk</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/185609">185609</a></dd>
<dt>Author</dt> <dd>cfleizach@apple.com</dd>
<dt>Date</dt> <dd>2015-06-16 13:58:39 -0700 (Tue, 16 Jun 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>AX: iOS accessibility tests are not running because we need WKTR support
https://bugs.webkit.org/show_bug.cgi?id=145991
Reviewed by Daniel Bates.
Source/WebCore:
Make some minor modifications to support notification handling in WKTR.
* accessibility/ios/AXObjectCacheIOS.mm:
(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::postTextStateChangePlatformNotification):
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityClickPoint]):
(-[WebAccessibilityObjectWrapper description]):
(-[WebAccessibilityObjectWrapper accessibilitySetPostedNotificationCallback:withContext:]): Deleted.
(-[WebAccessibilityObjectWrapper accessibilityPostedNotification:]): Deleted.
Tools:
Add support for WKTR iOS accessibility.
Utilize the notification handling mechanisms that Mac already uses.
Rename iphone* DRT methods to either use existing methods that are similar, or rename to more generic names.
* DumpRenderTree/AccessibilityUIElement.cpp:
(stringForSelectionCallback):
(getIdentifierCallback):
(getTraitsCallback):
(getElementTextPositionCallback):
(getElementTextLengthCallback):
(AccessibilityUIElement::getJSClass):
(getIPhoneLabelCallback): Deleted.
(getIPhoneHintCallback): Deleted.
(getIPhoneValueCallback): Deleted.
(getIPhoneIdentifierCallback): Deleted.
(getIPhoneTraitsCallback): Deleted.
(getIPhoneIsElementCallback): Deleted.
(getIPhoneElementTextPositionCallback): Deleted.
(getIPhoneElementTextLengthCallback): Deleted.
* DumpRenderTree/AccessibilityUIElement.h:
* DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::identifier):
(AccessibilityUIElement::traits):
(AccessibilityUIElement::elementTextPosition):
(AccessibilityUIElement::elementTextLength):
(AccessibilityUIElement::description):
(AccessibilityUIElement::orientation):
(AccessibilityUIElement::stringValue):
(AccessibilityUIElement::language):
(AccessibilityUIElement::helpText):
(AccessibilityUIElement::intValue):
(AccessibilityUIElement::isSelected):
(AccessibilityUIElement::isExpanded):
(AccessibilityUIElement::documentURI):
(AccessibilityUIElement::addNotificationListener):
(AccessibilityUIElement::removeNotificationListener):
(AccessibilityUIElement::isFocusable):
(AccessibilityUIElement::isIgnored):
(AccessibilityUIElement::hasPopup):
(AccessibilityUIElement::iphoneLabel): Deleted.
(AccessibilityUIElement::iphoneHint): Deleted.
(AccessibilityUIElement::iphoneValue): Deleted.
(AccessibilityUIElement::iphoneIdentifier): Deleted.
(AccessibilityUIElement::iphoneTraits): Deleted.
(AccessibilityUIElement::iphoneIsElement): Deleted.
(AccessibilityUIElement::iphoneElementTextPosition): Deleted.
(AccessibilityUIElement::iphoneElementTextLength): Deleted.
(_accessibilityNotificationCallback): Deleted.
* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
(WTR::AccessibilityUIElement::isValid):
(WTR::AccessibilityUIElement::identifier):
(WTR::AccessibilityUIElement::traits):
(WTR::AccessibilityUIElement::elementTextPosition):
(WTR::AccessibilityUIElement::elementTextLength):
(WTR::AccessibilityUIElement::stringForSelection):
(WTR::AccessibilityUIElement::elementsForRange):
(WTR::AccessibilityUIElement::increaseTextSelection):
(WTR::AccessibilityUIElement::decreaseTextSelection):
(WTR::AccessibilityUIElement::linkedElement):
(WTR::AccessibilityUIElement::headerElementAtIndex):
(WTR::AccessibilityUIElement::assistiveTechnologySimulatedFocus):
(WTR::AccessibilityUIElement::characterAtOffset):
* WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
* WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
* WebKitTestRunner/InjectedBundle/ios/AccessibilityControllerIOS.mm:
(WTR::findAccessibleObjectById):
(WTR::AccessibilityController::accessibleElementById):
* WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(+[NSString stringWithJSStringRef:]):
(-[NSString createJSStringRef]):
(WTR::convertNSArrayToVector):
(WTR::concatenateAttributeAndValue):
(WTR::AccessibilityUIElement::AccessibilityUIElement):
(WTR::AccessibilityUIElement::isEqual):
(WTR::AccessibilityUIElement::headerElementAtIndex):
(WTR::AccessibilityUIElement::linkedElement):
(WTR::AccessibilityUIElement::getLinkedUIElements):
(WTR::AccessibilityUIElement::elementAtPoint):
(WTR::convertElementsToObjectArray):
(WTR::AccessibilityUIElement::elementsForRange):
(WTR::AccessibilityUIElement::indexOfChild):
(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::description):
(WTR::AccessibilityUIElement::orientation):
(WTR::AccessibilityUIElement::stringValue):
(WTR::AccessibilityUIElement::language):
(WTR::AccessibilityUIElement::helpText):
(WTR::AccessibilityUIElement::x):
(WTR::AccessibilityUIElement::clickPointX):
(WTR::AccessibilityUIElement::clickPointY):
(WTR::AccessibilityUIElement::intValue):
(WTR::AccessibilityUIElement::minValue):
(WTR::AccessibilityUIElement::maxValue):
(WTR::AccessibilityUIElement::valueDescription):
(WTR::AccessibilityUIElement::isSelected):
(WTR::AccessibilityUIElement::isSelectedOptionActive):
(WTR::AccessibilityUIElement::stringForRange):
(WTR::AccessibilityUIElement::attributedStringForRange):
(WTR::AccessibilityUIElement::attributesOfHeader):
(WTR::AccessibilityUIElement::traits):
(WTR::AccessibilityUIElement::identifier):
(WTR::AccessibilityUIElement::rowCount):
(WTR::AccessibilityUIElement::rowIndexRange):
(WTR::AccessibilityUIElement::columnIndexRange):
(WTR::AccessibilityUIElement::cellForColumnAndRow):
(WTR::AccessibilityUIElement::horizontalScrollbar):
(WTR::AccessibilityUIElement::documentURI):
(WTR::AccessibilityUIElement::assistiveTechnologySimulatedFocus):
(WTR::AccessibilityUIElement::increaseTextSelection):
(WTR::AccessibilityUIElement::decreaseTextSelection):
(WTR::AccessibilityUIElement::stringForSelection):
(WTR::AccessibilityUIElement::elementTextPosition):
(WTR::AccessibilityUIElement::elementTextLength):
(WTR::AccessibilityUIElement::url):
(WTR::AccessibilityUIElement::addNotificationListener):
(WTR::AccessibilityUIElement::removeNotificationListener):
(WTR::AccessibilityUIElement::isFocusable):
(WTR::AccessibilityUIElement::isIgnored):
(WTR::AccessibilityUIElement::hasPopup):
(WTR::AccessibilityUIElement::mathPrescriptsDescription):
(WTR::_CGPathEnumerationIteration):
(WTR::AccessibilityUIElement::pathDescription):
(WTR::AccessibilityUIElement::supportedActions):
LayoutTests:
Alter tests so that it addresses:
1) Utilize the new AX methods which created new expectations.
2) There were some expectations checked in with failures that are now fixed.
3) Remove failing test expectations from TestExpectations.
* platform/ios-simulator-wk1/TestExpectations:
* platform/ios-simulator-wk2/TestExpectations:
* platform/ios-simulator/TestExpectations:
* platform/ios-simulator/accessibility: Replaced with LayoutTests/platform/ios-simulator/accessibility.
* platform/ios-simulator/accessibility/accessibility-crash-in-axcontainer-expected.txt:
* platform/ios-simulator/accessibility/accessibility-crash-in-axcontainer.html:
* platform/ios-simulator/accessibility/accessibility-hint-expected.txt:
* platform/ios-simulator/accessibility/accessibility-hint.html:
* platform/ios-simulator/accessibility/aria-label-with-internal-text-expected.txt:
* platform/ios-simulator/accessibility/aria-label-with-internal-text.html:
* platform/ios-simulator/accessibility/disabled-states-expected.txt:
* platform/ios-simulator/accessibility/disabled-states.html:
* platform/ios-simulator/accessibility/dom-focus-fires-on-correct-element-expected.txt:
* platform/ios-simulator/accessibility/dom-focus-fires-on-correct-element.html:
* platform/ios-simulator/accessibility/file-upload-button-expected.txt:
* platform/ios-simulator/accessibility/file-upload-button.html:
* platform/ios-simulator/accessibility/focus-change-notifications.html:
* platform/ios-simulator/accessibility/identifier-expected.txt:
* platform/ios-simulator/accessibility/identifier.html:
* platform/ios-simulator/accessibility/internal-link-expected.txt:
* platform/ios-simulator/accessibility/internal-link.html:
* platform/ios-simulator/accessibility/landmark-type-expected.txt:
* platform/ios-simulator/accessibility/landmark-type.html:
* platform/ios-simulator/accessibility/link-with-images-text-expected.txt:
* platform/ios-simulator/accessibility/link-with-images-text.html:
* platform/ios-simulator/accessibility/link-with-only-image-expected.txt:
* platform/ios-simulator/accessibility/link-with-only-image.html:
* platform/ios-simulator/accessibility/math-expected.txt:
* platform/ios-simulator/accessibility/math.html:
* platform/ios-simulator/accessibility/mixed-checkboxes-expected.txt:
* platform/ios-simulator/accessibility/mixed-checkboxes.html:
* platform/ios-simulator/accessibility/no-child-link-header.html:
* platform/ios-simulator/accessibility/non-contiguous-link-expected.txt:
* platform/ios-simulator/accessibility/non-contiguous-link.html:
* platform/ios-simulator/accessibility/password-value-expected.txt:
* platform/ios-simulator/accessibility/password-value.html:
* platform/ios-simulator/accessibility/placeholder-value-expected.txt:
* platform/ios-simulator/accessibility/placeholder-value.html:
* platform/ios-simulator/accessibility/popup-button-value-label-expected.txt:
* platform/ios-simulator/accessibility/popup-button-value-label.html:
* platform/ios-simulator/accessibility/progressbar-expected.txt:
* platform/ios-simulator/accessibility/progressbar.html:
* platform/ios-simulator/accessibility/radio-button-expected.txt:
* platform/ios-simulator/accessibility/radio-button.html:
* platform/ios-simulator/accessibility/secure-text-field.html:
* platform/ios-simulator/accessibility/selected-buttons-expected.txt:
* platform/ios-simulator/accessibility/svg-group-element-with-title-expected.txt:
* platform/ios-simulator/accessibility/svg-group-element-with-title.html:
* platform/ios-simulator/accessibility/tab-role-expected.txt:
* platform/ios-simulator/accessibility/tab-role.html:
* platform/ios-simulator/accessibility/tables-lists-expected.txt:
* platform/ios-simulator/accessibility/tables-lists.html:
* platform/ios-simulator/accessibility/text-marker-list-item-expected.txt:
* platform/ios-simulator/accessibility/text-marker-list-item.html:
* platform/ios-simulator/accessibility/text-marker-validation.html:
* platform/ios-simulator/accessibility/text-role-expected.txt:
* platform/ios-simulator/accessibility/text-role.html:
* platform/ios-simulator/accessibility/textfield-in-axvalue-expected.txt:
* platform/ios-simulator/accessibility/textfield-in-axvalue.html:
* platform/ios-simulator/accessibility/toggle-button.html:
* platform/ios-simulator/accessibility/url-test.html:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatorTestExpectations">trunk/LayoutTests/platform/ios-simulator/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityaccessibilitycrashinaxcontainerexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/accessibility-crash-in-axcontainer-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityaccessibilitycrashinaxcontainerhtml">trunk/LayoutTests/platform/ios-simulator/accessibility/accessibility-crash-in-axcontainer.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityaccessibilityhintexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/accessibility-hint-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityaccessibilityhinthtml">trunk/LayoutTests/platform/ios-simulator/accessibility/accessibility-hint.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityarialabelwithinternaltextexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/aria-label-with-internal-text-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityarialabelwithinternaltexthtml">trunk/LayoutTests/platform/ios-simulator/accessibility/aria-label-with-internal-text.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitydisabledstatesexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/disabled-states-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitydisabledstateshtml">trunk/LayoutTests/platform/ios-simulator/accessibility/disabled-states.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitydomfocusfiresoncorrectelementexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/dom-focus-fires-on-correct-element-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitydomfocusfiresoncorrectelementhtml">trunk/LayoutTests/platform/ios-simulator/accessibility/dom-focus-fires-on-correct-element.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityfileuploadbuttonexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/file-upload-button-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityfileuploadbuttonhtml">trunk/LayoutTests/platform/ios-simulator/accessibility/file-upload-button.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityfocuschangenotificationshtml">trunk/LayoutTests/platform/ios-simulator/accessibility/focus-change-notifications.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityidentifierexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/identifier-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityidentifierhtml">trunk/LayoutTests/platform/ios-simulator/accessibility/identifier.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityinternallinkexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/internal-link-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityinternallinkhtml">trunk/LayoutTests/platform/ios-simulator/accessibility/internal-link.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitylandmarktypeexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/landmark-type-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitylandmarktypehtml">trunk/LayoutTests/platform/ios-simulator/accessibility/landmark-type.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitylinkwithimagestextexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/link-with-images-text-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitylinkwithimagestexthtml">trunk/LayoutTests/platform/ios-simulator/accessibility/link-with-images-text.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitylinkwithonlyimageexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/link-with-only-image-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitylinkwithonlyimagehtml">trunk/LayoutTests/platform/ios-simulator/accessibility/link-with-only-image.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitymathexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/math-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitymathhtml">trunk/LayoutTests/platform/ios-simulator/accessibility/math.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitymixedcheckboxesexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/mixed-checkboxes-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitymixedcheckboxeshtml">trunk/LayoutTests/platform/ios-simulator/accessibility/mixed-checkboxes.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitynochildlinkheaderhtml">trunk/LayoutTests/platform/ios-simulator/accessibility/no-child-link-header.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitynoncontiguouslinkexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/non-contiguous-link-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitynoncontiguouslinkhtml">trunk/LayoutTests/platform/ios-simulator/accessibility/non-contiguous-link.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitypasswordvalueexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/password-value-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitypasswordvaluehtml">trunk/LayoutTests/platform/ios-simulator/accessibility/password-value.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityplaceholdervalueexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/placeholder-value-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityplaceholdervaluehtml">trunk/LayoutTests/platform/ios-simulator/accessibility/placeholder-value.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitypopupbuttonvaluelabelexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/popup-button-value-label-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitypopupbuttonvaluelabelhtml">trunk/LayoutTests/platform/ios-simulator/accessibility/popup-button-value-label.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityprogressbarexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/progressbar-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityprogressbarhtml">trunk/LayoutTests/platform/ios-simulator/accessibility/progressbar.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityradiobuttonexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/radio-button-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityradiobuttonhtml">trunk/LayoutTests/platform/ios-simulator/accessibility/radio-button.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitysecuretextfieldhtml">trunk/LayoutTests/platform/ios-simulator/accessibility/secure-text-field.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityselectedbuttonsexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/selected-buttons-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitysvggroupelementwithtitleexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/svg-group-element-with-title-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitysvggroupelementwithtitlehtml">trunk/LayoutTests/platform/ios-simulator/accessibility/svg-group-element-with-title.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitytabroleexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/tab-role-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitytabrolehtml">trunk/LayoutTests/platform/ios-simulator/accessibility/tab-role.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitytableslistsexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/tables-lists-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitytableslistshtml">trunk/LayoutTests/platform/ios-simulator/accessibility/tables-lists.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitytextmarkerlistitemexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/text-marker-list-item-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitytextmarkerlistitemhtml">trunk/LayoutTests/platform/ios-simulator/accessibility/text-marker-list-item.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitytextmarkervalidationhtml">trunk/LayoutTests/platform/ios-simulator/accessibility/text-marker-validation.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitytextroleexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/text-role-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitytextrolehtml">trunk/LayoutTests/platform/ios-simulator/accessibility/text-role.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitytextfieldinaxvalueexpectedtxt">trunk/LayoutTests/platform/ios-simulator/accessibility/textfield-in-axvalue-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitytextfieldinaxvaluehtml">trunk/LayoutTests/platform/ios-simulator/accessibility/textfield-in-axvalue.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilitytogglebuttonhtml">trunk/LayoutTests/platform/ios-simulator/accessibility/toggle-button.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoraccessibilityurltesthtml">trunk/LayoutTests/platform/ios-simulator/accessibility/url-test.html</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatorwk1TestExpectations">trunk/LayoutTests/platform/ios-simulator-wk1/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatorwk2TestExpectations">trunk/LayoutTests/platform/ios-simulator-wk2/TestExpectations</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityiosAXObjectCacheIOSmm">trunk/Source/WebCore/accessibility/ios/AXObjectCacheIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityiosWebAccessibilityObjectWrapperIOSmm">trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsDumpRenderTreeAccessibilityUIElementcpp">trunk/Tools/DumpRenderTree/AccessibilityUIElement.cpp</a></li>
<li><a href="#trunkToolsDumpRenderTreeAccessibilityUIElementh">trunk/Tools/DumpRenderTree/AccessibilityUIElement.h</a></li>
<li><a href="#trunkToolsDumpRenderTreeiosAccessibilityUIElementIOSmm">trunk/Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleAccessibilityUIElementcpp">trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleAccessibilityUIElementh">trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleBindingsAccessibilityUIElementidl">trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleiosAccessibilityControllerIOSmm">trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityControllerIOS.mm</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleiosAccessibilityUIElementIOSmm">trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li>trunk/LayoutTests/platform/ios-simulator/accessibility/</li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li>trunk/LayoutTests/platform/ios-simulator/accessibility/</li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (185608 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-06-16 20:51:04 UTC (rev 185608)
+++ trunk/LayoutTests/ChangeLog        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -1,3 +1,77 @@
</span><ins>+2015-06-15 Chris Fleizach <cfleizach@apple.com>
+
+ AX: iOS accessibility tests are not running because we need WKTR support
+ https://bugs.webkit.org/show_bug.cgi?id=145991
+
+ Reviewed by Daniel Bates.
+
+ Alter tests so that it addresses:
+ 1) Utilize the new AX methods which created new expectations.
+ 2) There were some expectations checked in with failures that are now fixed.
+ 3) Remove failing test expectations from TestExpectations.
+
+ * platform/ios-simulator-wk1/TestExpectations:
+ * platform/ios-simulator-wk2/TestExpectations:
+ * platform/ios-simulator/TestExpectations:
+ * platform/ios-simulator/accessibility: Replaced with LayoutTests/platform/ios-simulator/accessibility.
+ * platform/ios-simulator/accessibility/accessibility-crash-in-axcontainer-expected.txt:
+ * platform/ios-simulator/accessibility/accessibility-crash-in-axcontainer.html:
+ * platform/ios-simulator/accessibility/accessibility-hint-expected.txt:
+ * platform/ios-simulator/accessibility/accessibility-hint.html:
+ * platform/ios-simulator/accessibility/aria-label-with-internal-text-expected.txt:
+ * platform/ios-simulator/accessibility/aria-label-with-internal-text.html:
+ * platform/ios-simulator/accessibility/disabled-states-expected.txt:
+ * platform/ios-simulator/accessibility/disabled-states.html:
+ * platform/ios-simulator/accessibility/dom-focus-fires-on-correct-element-expected.txt:
+ * platform/ios-simulator/accessibility/dom-focus-fires-on-correct-element.html:
+ * platform/ios-simulator/accessibility/file-upload-button-expected.txt:
+ * platform/ios-simulator/accessibility/file-upload-button.html:
+ * platform/ios-simulator/accessibility/focus-change-notifications.html:
+ * platform/ios-simulator/accessibility/identifier-expected.txt:
+ * platform/ios-simulator/accessibility/identifier.html:
+ * platform/ios-simulator/accessibility/internal-link-expected.txt:
+ * platform/ios-simulator/accessibility/internal-link.html:
+ * platform/ios-simulator/accessibility/landmark-type-expected.txt:
+ * platform/ios-simulator/accessibility/landmark-type.html:
+ * platform/ios-simulator/accessibility/link-with-images-text-expected.txt:
+ * platform/ios-simulator/accessibility/link-with-images-text.html:
+ * platform/ios-simulator/accessibility/link-with-only-image-expected.txt:
+ * platform/ios-simulator/accessibility/link-with-only-image.html:
+ * platform/ios-simulator/accessibility/math-expected.txt:
+ * platform/ios-simulator/accessibility/math.html:
+ * platform/ios-simulator/accessibility/mixed-checkboxes-expected.txt:
+ * platform/ios-simulator/accessibility/mixed-checkboxes.html:
+ * platform/ios-simulator/accessibility/no-child-link-header.html:
+ * platform/ios-simulator/accessibility/non-contiguous-link-expected.txt:
+ * platform/ios-simulator/accessibility/non-contiguous-link.html:
+ * platform/ios-simulator/accessibility/password-value-expected.txt:
+ * platform/ios-simulator/accessibility/password-value.html:
+ * platform/ios-simulator/accessibility/placeholder-value-expected.txt:
+ * platform/ios-simulator/accessibility/placeholder-value.html:
+ * platform/ios-simulator/accessibility/popup-button-value-label-expected.txt:
+ * platform/ios-simulator/accessibility/popup-button-value-label.html:
+ * platform/ios-simulator/accessibility/progressbar-expected.txt:
+ * platform/ios-simulator/accessibility/progressbar.html:
+ * platform/ios-simulator/accessibility/radio-button-expected.txt:
+ * platform/ios-simulator/accessibility/radio-button.html:
+ * platform/ios-simulator/accessibility/secure-text-field.html:
+ * platform/ios-simulator/accessibility/selected-buttons-expected.txt:
+ * platform/ios-simulator/accessibility/svg-group-element-with-title-expected.txt:
+ * platform/ios-simulator/accessibility/svg-group-element-with-title.html:
+ * platform/ios-simulator/accessibility/tab-role-expected.txt:
+ * platform/ios-simulator/accessibility/tab-role.html:
+ * platform/ios-simulator/accessibility/tables-lists-expected.txt:
+ * platform/ios-simulator/accessibility/tables-lists.html:
+ * platform/ios-simulator/accessibility/text-marker-list-item-expected.txt:
+ * platform/ios-simulator/accessibility/text-marker-list-item.html:
+ * platform/ios-simulator/accessibility/text-marker-validation.html:
+ * platform/ios-simulator/accessibility/text-role-expected.txt:
+ * platform/ios-simulator/accessibility/text-role.html:
+ * platform/ios-simulator/accessibility/textfield-in-axvalue-expected.txt:
+ * platform/ios-simulator/accessibility/textfield-in-axvalue.html:
+ * platform/ios-simulator/accessibility/toggle-button.html:
+ * platform/ios-simulator/accessibility/url-test.html:
+
</ins><span class="cx"> 2015-06-16 Brent Fulgham <bfulgham@apple.com>
</span><span class="cx">
</span><span class="cx"> CSS Scroll Snap - support snapping to nested elements
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatorTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/TestExpectations (185608 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/TestExpectations        2015-06-16 20:51:04 UTC (rev 185608)
+++ trunk/LayoutTests/platform/ios-simulator/TestExpectations        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -2580,7 +2580,6 @@
</span><span class="cx"> storage/websql/sql-error-codes.html [ Failure ]
</span><span class="cx">
</span><span class="cx"> # iOS-specific tests that fail:
</span><del>-platform/ios-simulator/accessibility/text-marker-list-item.html [ Failure ]
</del><span class="cx"> platform/ios-simulator/ios/compositing/overlap-page-scale.html [ Failure ]
</span><span class="cx"> platform/ios-simulator/ios/fast/fixed/absolute-over-fixed.html [ Failure ]
</span><span class="cx"> platform/ios-simulator/ios/fast/fixed/fixed-in-transform.html [ Failure ]
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityaccessibilitycrashinaxcontainerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/accessibility-crash-in-axcontainer-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/accessibility-crash-in-axcontainer-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/accessibility-crash-in-axcontainer-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -3,8 +3,8 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS link.iphoneLabel is 'AXLabel: yellow'
-FAIL link.parentElement().iphoneLabel should be AXLabel: . Threw exception TypeError: undefined is not an object (evaluating 'link.parentElement().iphoneLabel')
</del><ins>+PASS link.description is 'AXLabel: yellow'
+PASS link.parentElement() == null || link.parentElement().isValid is true
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityaccessibilitycrashinaxcontainerhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/accessibility-crash-in-axcontainer.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/accessibility-crash-in-axcontainer.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/accessibility-crash-in-axcontainer.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -8,12 +8,15 @@
</span><span class="cx"> </head>
</span><span class="cx"> <body id="body">
</span><span class="cx">
</span><ins>+<div id="container" role="group">
+
</ins><span class="cx"> <img src="resources/cake.png" usemap="#map" id="backImg" alt="" width="225" height="206">
</span><span class="cx">
</span><del>-<map name="map" aria-labelledby="papercolor">
</del><ins>+<map id="link" name="map" aria-labelledby="papercolor">
</ins><span class="cx"> <area shape="rect" tabindex="0" alt="yellow" href="#" coords="19,28,46,52" id="yellow">
</span><span class="cx"> <area shape="rect" tabindex="0" alt="orange" href="#" coords="58,28,85,52" id="orange">
</span><span class="cx"> </map>
</span><ins>+</div>
</ins><span class="cx">
</span><span class="cx"> <p id="description"></p>
</span><span class="cx"> <div id="console"></div>
</span><span class="lines">@@ -24,14 +27,13 @@
</span><span class="cx">
</span><span class="cx"> if (window.accessibilityController) {
</span><span class="cx">
</span><del>- document.getElementById("body").focus();
- var link = accessibilityController.focusedElement.childAtIndex(0).childAtIndex(0);
- shouldBe("link.iphoneLabel", "'AXLabel: yellow'");
</del><ins>+ var link = accessibilityController.accessibleElementById("container").childAtIndex(0);
+ shouldBe("link.description", "'AXLabel: yellow'");
</ins><span class="cx">
</span><span class="cx"> document.getElementById("backImg").parentNode.removeChild(document.getElementById("backImg"));
</span><span class="cx">
</span><span class="cx"> // Should not crash here when asking for parentElement (even though it was removed).
</span><del>- shouldBe("link.parentElement().iphoneLabel", "'AXLabel: '");
</del><ins>+ shouldBeTrue("link.parentElement() == null || link.parentElement().isValid");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityaccessibilityhintexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/accessibility-hint-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/accessibility-hint-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/accessibility-hint-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS link.iphoneHint is 'AXHint: This is a hint'
</del><ins>+PASS link.helpText is 'AXHint: This is a hint'
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityaccessibilityhinthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/accessibility-hint.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/accessibility-hint.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/accessibility-hint.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -21,7 +21,7 @@
</span><span class="cx">
</span><span class="cx"> document.getElementById("link").focus();
</span><span class="cx"> var link = accessibilityController.focusedElement;
</span><del>- shouldBe("link.iphoneHint", "'AXHint: This is a hint'");
</del><ins>+ shouldBe("link.helpText", "'AXHint: This is a hint'");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityarialabelwithinternaltextexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/aria-label-with-internal-text-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/aria-label-with-internal-text-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/aria-label-with-internal-text-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -8,13 +8,13 @@
</span><span class="cx">
</span><span class="cx">
</span><span class="cx"> Button 1 should expose alternative text only.
</span><del>-PASS button1.iphoneLabel is 'AXLabel: PLAY'
</del><ins>+PASS button1.description is 'AXLabel: PLAY'
</ins><span class="cx"> Button 2 should expose internal text only.
</span><del>-PASS button2.iphoneLabel is 'AXLabel: 1'
</del><ins>+PASS button2.description is 'AXLabel: 1'
</ins><span class="cx"> Text 1 should rely on the stringValue() in the label field.
</span><del>-PASS text1.iphoneLabel is 'AXLabel: text1'
</del><ins>+PASS text1.description is 'AXLabel: text1'
</ins><span class="cx"> Link1 should combine the title field and the aria-label field.
</span><del>-FAIL link1.iphoneLabel should be AXLabel: link1, link1-title. Was AXLabel: link1.
</del><ins>+FAIL link1.description should be AXLabel: link1, link1-title. Was AXLabel: link1.
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityarialabelwithinternaltexthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/aria-label-with-internal-text.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/aria-label-with-internal-text.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/aria-label-with-internal-text.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -24,19 +24,19 @@
</span><span class="cx">
</span><span class="cx"> var button1 = accessibilityController.accessibleElementById("button1");
</span><span class="cx"> debug("Button 1 should expose alternative text only.");
</span><del>- shouldBe("button1.iphoneLabel", "'AXLabel: PLAY'");
</del><ins>+ shouldBe("button1.description", "'AXLabel: PLAY'");
</ins><span class="cx">
</span><span class="cx"> var button2 = accessibilityController.accessibleElementById("button2");
</span><span class="cx"> debug("Button 2 should expose internal text only.");
</span><del>- shouldBe("button2.iphoneLabel", "'AXLabel: 1'");
</del><ins>+ shouldBe("button2.description", "'AXLabel: 1'");
</ins><span class="cx">
</span><span class="cx"> var text1 = accessibilityController.accessibleElementById("text1");
</span><span class="cx"> debug("Text 1 should rely on the stringValue() in the label field.");
</span><del>- shouldBe("text1.iphoneLabel", "'AXLabel: text1'");
</del><ins>+ shouldBe("text1.description", "'AXLabel: text1'");
</ins><span class="cx">
</span><span class="cx"> var link1 = accessibilityController.accessibleElementById("link1");
</span><span class="cx"> debug("Link1 should combine the title field and the aria-label field.");
</span><del>- shouldBe("link1.iphoneLabel", "'AXLabel: link1, link1-title'");
</del><ins>+ shouldBe("link1.description", "'AXLabel: link1, link1-title'");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitydisabledstatesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/disabled-states-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/disabled-states-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/disabled-states-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -1,6 +1,16 @@
</span><del>-CONSOLE MESSAGE: line 26: TypeError: HTMLParagraphElement is not a function (evaluating 'description("This test thats disabled and aria-disabled change the traits returned.")')
</del><span class="cx"> button 1
</span><span class="cx"> button 2
</span><span class="cx"> button 3
</span><span class="cx">
</span><ins>+This test thats disabled and aria-disabled change the traits returned.
</ins><span class="cx">
</span><ins>+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS btn1.traits != btn2.traits is true
+PASS btn2.traits == btn3.traits is true
+PASS select1.traits != select2.traits is true
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitydisabledstateshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/disabled-states.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/disabled-states.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/disabled-states.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -1,12 +1,9 @@
</span><span class="cx"> <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
</span><span class="cx"> <html>
</span><span class="cx"> <head>
</span><del>-<link rel="stylesheet" href="../../../fast/js/resources/js-test-style.css">
-<script src="../../../fast/js/resources/js-test-pre.js"></script>
</del><ins>+<script src="../../../resources/js-test-pre.js"></script>
</ins><span class="cx"> <script>
</span><span class="cx"> var successfullyParsed = false;
</span><del>-if (window.testRunner)
- testRunner.dumpAsText();
</del><span class="cx"> </script>
</span><span class="cx"> </head>
</span><span class="cx"> <body>
</span><span class="lines">@@ -32,11 +29,11 @@
</span><span class="cx">
</span><span class="cx"> document.getElementById("button2").focus();
</span><span class="cx"> var btn2 = accessibilityController.focusedElement;
</span><del>- shouldBe("btn1.iphoneTraits != btn2.iphoneTraits", "true");
</del><ins>+ shouldBe("btn1.traits != btn2.traits", "true");
</ins><span class="cx">
</span><span class="cx"> document.getElementById("button3").focus();
</span><span class="cx"> var btn3 = accessibilityController.focusedElement;
</span><del>- shouldBe("btn2.iphoneTraits == btn3.iphoneTraits", "true");
</del><ins>+ shouldBe("btn2.traits == btn3.traits", "true");
</ins><span class="cx">
</span><span class="cx"> document.getElementById("select1").focus();
</span><span class="cx"> var select1 = accessibilityController.focusedElement;
</span><span class="lines">@@ -44,13 +41,13 @@
</span><span class="cx"> document.getElementById("select2").focus();
</span><span class="cx"> var select2 = accessibilityController.focusedElement;
</span><span class="cx">
</span><del>- shouldBe("select1.iphoneTraits != select2.iphoneTraits", "true");
</del><ins>+ shouldBe("select1.traits != select2.traits", "true");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span><span class="cx"> </script>
</span><span class="cx">
</span><del>-<script src="../../../fast/js/resources/js-test-post.js"></script>
</del><ins>+<script src="../../../resources/js-test-post.js"></script>
</ins><span class="cx">
</span><span class="cx"> </body>
</span><span class="cx"> </html>
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitydomfocusfiresoncorrectelementexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/dom-focus-fires-on-correct-element-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/dom-focus-fires-on-correct-element-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/dom-focus-fires-on-correct-element-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -6,9 +6,9 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS textInsideLink.iphoneLabel is 'AXLabel: link1'
</del><ins>+PASS textInsideLink.description is 'AXLabel: link1'
</ins><span class="cx"> PASS accessibilityController.focusedElement.childAtIndex(0).isEqual(textInsideLink) is true
</span><del>-PASS textInsideHeading.iphoneLabel is 'AXLabel: heading1'
</del><ins>+PASS textInsideHeading.description is 'AXLabel: heading1'
</ins><span class="cx"> PASS accessibilityController.focusedElement.childAtIndex(0).isEqual(textInsideHeading) is true
</span><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitydomfocusfiresoncorrectelementhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/dom-focus-fires-on-correct-element.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/dom-focus-fires-on-correct-element.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/dom-focus-fires-on-correct-element.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -23,8 +23,8 @@
</span><span class="cx"> var body = accessibilityController.rootElement;
</span><span class="cx">
</span><span class="cx"> // Get access to the text inside the link.
</span><del>- var textInsideLink = body.childAtIndex(0).childAtIndex(0).childAtIndex(0);
- shouldBe("textInsideLink.iphoneLabel", "'AXLabel: link1'");
</del><ins>+ var textInsideLink = accessibilityController.accessibleElementById("link1").childAtIndex(0);
+ shouldBe("textInsideLink.description", "'AXLabel: link1'");
</ins><span class="cx">
</span><span class="cx"> // Simulate VoiceOver focus onto the element.
</span><span class="cx"> textInsideLink.assistiveTechnologySimulatedFocus();
</span><span class="lines">@@ -35,8 +35,8 @@
</span><span class="cx"> // Repeat for text inside link inside heading.
</span><span class="cx">
</span><span class="cx"> // Get access to the text inside the link.
</span><del>- var textInsideHeading = body.childAtIndex(1).childAtIndex(0);
- shouldBe("textInsideHeading.iphoneLabel", "'AXLabel: heading1'");
</del><ins>+ var textInsideHeading = accessibilityController.accessibleElementById("heading1").childAtIndex(0);
+ shouldBe("textInsideHeading.description", "'AXLabel: heading1'");
</ins><span class="cx">
</span><span class="cx"> // Simulate VoiceOver focus onto the element.
</span><span class="cx"> textInsideHeading.assistiveTechnologySimulatedFocus();
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityfileuploadbuttonexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/file-upload-button-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/file-upload-button-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/file-upload-button-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -4,8 +4,8 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS button1.iphoneLabel is 'AXLabel: Choose File'
-PASS button1.iphoneValue is 'AXValue: no file selected'
</del><ins>+PASS button1.description is 'AXLabel: Choose File'
+PASS button1.stringValue is 'AXValue: no file selected'
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityfileuploadbuttonhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/file-upload-button.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/file-upload-button.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/file-upload-button.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -20,8 +20,8 @@
</span><span class="cx"> if (window.accessibilityController) {
</span><span class="cx">
</span><span class="cx"> var button1 = accessibilityController.accessibleElementById("file-input");
</span><del>- shouldBe("button1.iphoneLabel", "'AXLabel: Choose File'");
- shouldBe("button1.iphoneValue", "'AXValue: no file selected'");
</del><ins>+ shouldBe("button1.description", "'AXLabel: Choose File'");
+ shouldBe("button1.stringValue", "'AXValue: no file selected'");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityfocuschangenotificationshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/focus-change-notifications.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/focus-change-notifications.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/focus-change-notifications.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -20,7 +20,7 @@
</span><span class="cx">
</span><span class="cx"> var focusChangeCount = 0;
</span><span class="cx"> var rootElement = 0;
</span><del>- function focusCallback(notification) {
</del><ins>+ function focusCallback(notification) {
</ins><span class="cx"> if (notification == "AXFocusChanged") {
</span><span class="cx"> focusChangeCount++;
</span><span class="cx">
</span><span class="lines">@@ -34,10 +34,15 @@
</span><span class="cx">
</span><span class="cx"> if (window.accessibilityController) {
</span><span class="cx"> // Make sure AX gets turned on.
</span><del>- rootElement = accessibilityController.rootElement;
</del><ins>+ rootElement = accessibilityController.rootElement.childAtIndex(0);
</ins><span class="cx"> window.testRunner.waitUntilDone();
</span><span class="cx">
</span><span class="cx"> var addedNotification = rootElement.addNotificationListener(focusCallback);
</span><ins>+ if (!addedNotification) {
+ rootElement = accessibilityController.rootElement;
+ addedNotification = rootElement.addNotificationListener(focusCallback);
+ }
+
</ins><span class="cx"> shouldBe("addedNotification", "true");
</span><span class="cx">
</span><span class="cx"> // Switch focus from h1.
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityidentifierexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/identifier-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/identifier-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/identifier-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS button1.iphoneIdentifier is 'AXIdentifier: button1'
</del><ins>+PASS button1.identifier is 'AXIdentifier: button1'
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityidentifierhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/identifier.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/identifier.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/identifier.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx"> // Make sure a checkbox with a label DOES NOT have the same center point as the frame
</span><span class="cx"> document.getElementById("button1").focus();
</span><span class="cx"> var button1 = accessibilityController.focusedElement;
</span><del>- shouldBe("button1.iphoneIdentifier", "'AXIdentifier: button1'");
</del><ins>+ shouldBe("button1.identifier", "'AXIdentifier: button1'");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityinternallinkexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/internal-link-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/internal-link-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/internal-link-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS link.linkedElement().iphoneLabel is 'AXLabel: Linked Element'
</del><ins>+PASS link.linkedElement().description is 'AXLabel: Linked Element'
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityinternallinkhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/internal-link.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/internal-link.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/internal-link.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -28,7 +28,7 @@
</span><span class="cx">
</span><span class="cx"> document.getElementById("name").focus();
</span><span class="cx"> var link = accessibilityController.focusedElement;
</span><del>- shouldBe("link.linkedElement().iphoneLabel", "'AXLabel: Linked Element'");
</del><ins>+ shouldBe("link.linkedElement().description", "'AXLabel: Linked Element'");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitylandmarktypeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/landmark-type-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/landmark-type-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/landmark-type-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -5,8 +5,8 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS main.iphoneLabel is 'AXLabel: main'
-PASS banner.iphoneLabel is 'AXLabel: banner'
</del><ins>+PASS main.description is 'AXLabel: main'
+PASS banner.description is 'AXLabel: banner'
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitylandmarktypehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/landmark-type.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/landmark-type.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/landmark-type.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -26,10 +26,10 @@
</span><span class="cx"> if (window.accessibilityController) {
</span><span class="cx">
</span><span class="cx"> var main = accessibilityController.accessibleElementById("main");
</span><del>- shouldBe("main.iphoneLabel", "'AXLabel: main'");
</del><ins>+ shouldBe("main.description", "'AXLabel: main'");
</ins><span class="cx">
</span><span class="cx"> var banner = accessibilityController.accessibleElementById("banner");
</span><del>- shouldBe("banner.iphoneLabel", "'AXLabel: banner'");
</del><ins>+ shouldBe("banner.description", "'AXLabel: banner'");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitylinkwithimagestextexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/link-with-images-text-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/link-with-images-text-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/link-with-images-text-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -4,8 +4,8 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS obj.iphoneIsElement is true
-FAIL obj.iphoneLabel should be AXLabel: iPhoneFrom $99. Was AXLabel: iPhone From $99.
</del><ins>+PASS obj.isIgnored is false
+PASS obj.description is 'AXLabel: iPhone From $99'
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitylinkwithimagestexthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/link-with-images-text.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/link-with-images-text.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/link-with-images-text.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -10,7 +10,7 @@
</span><span class="cx"> </head>
</span><span class="cx"> <body>
</span><span class="cx">
</span><del>-<a href="store.html">
</del><ins>+<a href="store.html" id="link">
</ins><span class="cx"> <span>
</span><span class="cx"> <img src="image.gif" width=100 height=100 alt="">
</span><span class="cx"> <strong>iPhone</strong>From $99</span>
</span><span class="lines">@@ -25,9 +25,9 @@
</span><span class="cx">
</span><span class="cx"> if (window.accessibilityController) {
</span><span class="cx">
</span><del>- var obj = accessibilityController.rootElement.childAtIndex(0).childAtIndex(0);
- shouldBe("obj.iphoneIsElement", "true");
- shouldBe("obj.iphoneLabel", "'AXLabel: iPhoneFrom $99'");
</del><ins>+ var obj = accessibilityController.accessibleElementById("link");
+ shouldBe("obj.isIgnored", "false");
+ shouldBe("obj.description", "'AXLabel: iPhone From $99'");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitylinkwithonlyimageexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/link-with-only-image-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/link-with-only-image-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/link-with-only-image-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -4,8 +4,8 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS obj.iphoneIsElement is true
-PASS obj.iphoneLabel is 'AXLabel: Hello World'
</del><ins>+FAIL obj.isIgnored should be false. Was true.
+PASS obj.description is 'AXLabel: Hello World'
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitylinkwithonlyimagehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/link-with-only-image.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/link-with-only-image.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/link-with-only-image.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -10,7 +10,7 @@
</span><span class="cx"> </head>
</span><span class="cx"> <body>
</span><span class="cx">
</span><del>-<a href="store.html">
</del><ins>+<a href="store.html" id="link">
</ins><span class="cx"> <img src="image.gif" width=100 height=100 alt="Hello World">
</span><span class="cx"> </a>
</span><span class="cx">
</span><span class="lines">@@ -23,9 +23,9 @@
</span><span class="cx">
</span><span class="cx"> if (window.accessibilityController) {
</span><span class="cx">
</span><del>- var obj = accessibilityController.rootElement.childAtIndex(0).childAtIndex(0).childAtIndex(0);
- shouldBe("obj.iphoneIsElement", "true");
- shouldBe("obj.iphoneLabel", "'AXLabel: Hello World'");
</del><ins>+ var obj = accessibilityController.accessibleElementById("link");
+ shouldBeFalse("obj.isIgnored");
+ shouldBe("obj.description", "'AXLabel: Hello World'");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitymathexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/math-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/math-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/math-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -17,16 +17,16 @@
</span><span class="cx">
</span><span class="cx">
</span><span class="cx"> PASS group.childrenCount is 5
</span><del>-PASS group.childAtIndex(0).iphoneLabel is 'AXLabel: Raman scattering study of the'
-PASS group.childAtIndex(1).iphoneLabel is 'AXLabel: F e sub 1 minus x, end subscript. C o sub x, S b sub 2, math'
-PASS group.childAtIndex(2).iphoneLabel is 'AXLabel: and'
-PASS group.childAtIndex(3).iphoneLabel is 'AXLabel: open, 0 less than or equal to x less than or equal to 1, close, math'
-PASS group.childAtIndex(4).iphoneLabel is 'AXLabel: single crystals.'
-PASS group.childAtIndex(0).iphoneIsElement is true
-PASS group.childAtIndex(1).iphoneIsElement is true
-PASS group.childAtIndex(2).iphoneIsElement is true
-PASS group.childAtIndex(3).iphoneIsElement is true
-PASS group.childAtIndex(4).iphoneIsElement is true
</del><ins>+PASS group.childAtIndex(0).description is 'AXLabel: Raman scattering study of the'
+PASS group.childAtIndex(1).description is 'AXLabel: F e sub 1 minus x, end subscript. C o sub x, S b sub 2, math'
+PASS group.childAtIndex(2).description is 'AXLabel: and'
+PASS group.childAtIndex(3).description is 'AXLabel: open, 0 less than or equal to x less than or equal to 1, close, math'
+PASS group.childAtIndex(4).description is 'AXLabel: single crystals.'
+PASS group.childAtIndex(0).isIgnored is false
+PASS group.childAtIndex(1).isIgnored is false
+PASS group.childAtIndex(2).isIgnored is false
+PASS group.childAtIndex(3).isIgnored is false
+PASS group.childAtIndex(4).isIgnored is false
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitymathhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/math.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/math.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/math.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -74,17 +74,17 @@
</span><span class="cx"> document.getElementById("group").focus();
</span><span class="cx"> var group = accessibilityController.focusedElement;
</span><span class="cx"> shouldBe("group.childrenCount", "5");
</span><del>- shouldBe("group.childAtIndex(0).iphoneLabel", "'AXLabel: Raman scattering study of the'");
- shouldBe("group.childAtIndex(1).iphoneLabel", "'AXLabel: F e sub 1 minus x, end subscript. C o sub x, S b sub 2, math'");
- shouldBe("group.childAtIndex(2).iphoneLabel", "'AXLabel: and'");
- shouldBe("group.childAtIndex(3).iphoneLabel", "'AXLabel: open, 0 less than or equal to x less than or equal to 1, close, math'");
- shouldBe("group.childAtIndex(4).iphoneLabel", "'AXLabel: single crystals.'");
</del><ins>+ shouldBe("group.childAtIndex(0).description", "'AXLabel: Raman scattering study of the'");
+ shouldBe("group.childAtIndex(1).description", "'AXLabel: F e sub 1 minus x, end subscript. C o sub x, S b sub 2, math'");
+ shouldBe("group.childAtIndex(2).description", "'AXLabel: and'");
+ shouldBe("group.childAtIndex(3).description", "'AXLabel: open, 0 less than or equal to x less than or equal to 1, close, math'");
+ shouldBe("group.childAtIndex(4).description", "'AXLabel: single crystals.'");
</ins><span class="cx">
</span><del>- shouldBeTrue("group.childAtIndex(0).iphoneIsElement");
- shouldBeTrue("group.childAtIndex(1).iphoneIsElement");
- shouldBeTrue("group.childAtIndex(2).iphoneIsElement");
- shouldBeTrue("group.childAtIndex(3).iphoneIsElement");
- shouldBeTrue("group.childAtIndex(4).iphoneIsElement");
</del><ins>+ shouldBeFalse("group.childAtIndex(0).isIgnored");
+ shouldBeFalse("group.childAtIndex(1).isIgnored");
+ shouldBeFalse("group.childAtIndex(2).isIgnored");
+ shouldBeFalse("group.childAtIndex(3).isIgnored");
+ shouldBeFalse("group.childAtIndex(4).isIgnored");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitymixedcheckboxesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/mixed-checkboxes-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/mixed-checkboxes-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/mixed-checkboxes-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -8,11 +8,11 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS accessibilityController.focusedElement.iphoneValue is 'AXValue: 0'
-PASS accessibilityController.focusedElement.iphoneValue is 'AXValue: 1'
-PASS accessibilityController.focusedElement.iphoneValue is 'AXValue: 2'
-PASS accessibilityController.focusedElement.iphoneValue is 'AXValue: 1'
-PASS accessibilityController.focusedElement.iphoneValue is 'AXValue: 0'
</del><ins>+PASS accessibilityController.focusedElement.stringValue is 'AXValue: 0'
+PASS accessibilityController.focusedElement.stringValue is 'AXValue: 1'
+PASS accessibilityController.focusedElement.stringValue is 'AXValue: 2'
+PASS accessibilityController.focusedElement.stringValue is 'AXValue: 1'
+PASS accessibilityController.focusedElement.stringValue is 'AXValue: 0'
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitymixedcheckboxeshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/mixed-checkboxes.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/mixed-checkboxes.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/mixed-checkboxes.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -29,19 +29,19 @@
</span><span class="cx"> if (window.accessibilityController) {
</span><span class="cx">
</span><span class="cx"> document.getElementById("check1").focus();
</span><del>- shouldBe("accessibilityController.focusedElement.iphoneValue", "'AXValue: 0'");
</del><ins>+ shouldBe("accessibilityController.focusedElement.stringValue", "'AXValue: 0'");
</ins><span class="cx">
</span><span class="cx"> document.getElementById("check2").focus();
</span><del>- shouldBe("accessibilityController.focusedElement.iphoneValue", "'AXValue: 1'");
</del><ins>+ shouldBe("accessibilityController.focusedElement.stringValue", "'AXValue: 1'");
</ins><span class="cx">
</span><span class="cx"> document.getElementById("check3").focus();
</span><del>- shouldBe("accessibilityController.focusedElement.iphoneValue", "'AXValue: 2'");
</del><ins>+ shouldBe("accessibilityController.focusedElement.stringValue", "'AXValue: 2'");
</ins><span class="cx">
</span><span class="cx"> document.getElementById("check4").focus();
</span><del>- shouldBe("accessibilityController.focusedElement.iphoneValue", "'AXValue: 1'");
</del><ins>+ shouldBe("accessibilityController.focusedElement.stringValue", "'AXValue: 1'");
</ins><span class="cx">
</span><span class="cx"> document.getElementById("check5").focus();
</span><del>- shouldBe("accessibilityController.focusedElement.iphoneValue", "'AXValue: 0'");
</del><ins>+ shouldBe("accessibilityController.focusedElement.stringValue", "'AXValue: 0'");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitynochildlinkheaderhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/no-child-link-header.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/no-child-link-header.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/no-child-link-header.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -8,9 +8,9 @@
</span><span class="cx"> </head>
</span><span class="cx"> <body>
</span><span class="cx">
</span><del>-<a href="#" title="LINK"><img alt="" src="empty.png" width=100 height=100></a>
</del><ins>+<a id="link" href="#" title="LINK"><img alt="" src="empty.png" width=100 height=100></a>
</ins><span class="cx">
</span><del>-<div role="heading" aria-label="HEADING" style='border:1px solid black; width:100px; height:100px;'></div>
</del><ins>+<div id="heading" role="heading" aria-label="HEADING" style='border:1px solid black; width:100px; height:100px;'></div>
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> <script>
</span><span class="lines">@@ -19,8 +19,8 @@
</span><span class="cx">
</span><span class="cx"> if (window.accessibilityController) {
</span><span class="cx">
</span><del>- var obj = accessibilityController.rootElement.childAtIndex(0).childAtIndex(0);
- var succeeded = obj.iphoneIsElement && obj.iphoneLabel == "AXLabel: LINK";
</del><ins>+ var obj = accessibilityController.accessibleElementById("link");
+ var succeeded = !obj.isIgnored && obj.description == "AXLabel: LINK";
</ins><span class="cx">
</span><span class="cx"> // shouldBe("succeeded", "true");
</span><span class="cx"> var failed = false;
</span><span class="lines">@@ -28,8 +28,8 @@
</span><span class="cx"> failed = true;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- obj = accessibilityController.rootElement.childAtIndex(1);
- succeeded = obj.iphoneIsElement && obj.iphoneLabel == "AXLabel: HEADING";
</del><ins>+ obj = accessibilityController.accessibleElementById("heading");
+ succeeded = !obj.isIgnored && obj.description == "AXLabel: HEADING";
</ins><span class="cx"> // shouldBe("succeeded", "true");
</span><span class="cx">
</span><span class="cx"> if (!succeeded) {
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitynoncontiguouslinkexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/non-contiguous-link-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/non-contiguous-link-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/non-contiguous-link-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -1,2 +1,12 @@
</span><del>-ALERT: Tests passed
</del><span class="cx"> This is a link that would normally appear as multiple elements.
</span><ins>+This test makes sure that only one element is returned for the link object, instead of many elements that are all links.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS obj.description is 'AXLabel: This is a link that would normally appear as multiple elements'
+PASS obj.isIgnored is false
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitynoncontiguouslinkhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/non-contiguous-link.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/non-contiguous-link.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/non-contiguous-link.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -1,6 +1,8 @@
</span><span class="cx"> <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
</span><span class="cx"> <html>
</span><span class="cx"> <head>
</span><ins>+<head>
+<script src="../../../resources/js-test-pre.js"></script>
</ins><span class="cx"> <script>
</span><span class="cx"> if (window.testRunner)
</span><span class="cx"> testRunner.dumpAsText();
</span><span class="lines">@@ -8,38 +10,25 @@
</span><span class="cx"> </head>
</span><span class="cx"> <body>
</span><span class="cx">
</span><del>-<a href="#">This is a link that <b>would</b> normally appear <b>as multiple</b> elements</a>.
</del><ins>+<a id="link" href="#">This is a link that <b>would</b> normally appear <b>as multiple</b> elements</a>.
</ins><span class="cx">
</span><ins>+<p id="description"></p>
+<div id="console"></div>
+
</ins><span class="cx"> <script>
</span><span class="cx">
</span><del>- //description("This test makes sure that only one element is returned for the link object, instead of many elements that are all links.");
</del><ins>+ description("This test makes sure that only one element is returned for the link object, instead of many elements that are all links.");
</ins><span class="cx">
</span><span class="cx"> if (window.accessibilityController) {
</span><span class="cx">
</span><del>- var obj = accessibilityController.rootElement.childAtIndex(0).childAtIndex(0);
- var succeeded = obj.iphoneLabel == "AXLabel: This is a link that would normally appear as multiple elements";
- // shouldBe("succeeded", "true");
- var failed = false;
- if (!succeeded) {
- failed = true;
- }
-
- succeeded = obj.iphoneIsElement;
- // shouldBe("succeeded", "true");
-
- if (!succeeded) {
- failed = true;
- }
-
- if (failed)
- alert("Tests failed");
- else
- alert("Tests passed");
-
</del><ins>+ var obj = accessibilityController.accessibleElementById("link");
+ shouldBe("obj.description", "'AXLabel: This is a link that would normally appear as multiple elements'");
+ shouldBeFalse("obj.isIgnored");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span><span class="cx"> </script>
</span><ins>+<script src="../../../resources/js-test-post.js"></script>
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> </body>
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitypasswordvalueexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/password-value-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/password-value-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/password-value-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -4,8 +4,8 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS pass.iphoneValue.length is password.length + axValue.length
-PASS pass.iphoneValue == password is false
</del><ins>+PASS pass.stringValue.length is password.length + axValue.length
+PASS pass.stringValue == password is false
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitypasswordvaluehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/password-value.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/password-value.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/password-value.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -28,8 +28,8 @@
</span><span class="cx"> var pass = accessibilityController.focusedElement;
</span><span class="cx">
</span><span class="cx"> var axValue = "AXValue: ";
</span><del>- shouldBe("pass.iphoneValue.length", "password.length + axValue.length");
- shouldBeFalse("pass.iphoneValue == password");
</del><ins>+ shouldBe("pass.stringValue.length", "password.length + axValue.length");
+ shouldBeFalse("pass.stringValue == password");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityplaceholdervalueexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/placeholder-value-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/placeholder-value-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/placeholder-value-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -5,7 +5,7 @@
</span><span class="cx">
</span><span class="cx">
</span><span class="cx"> PASS pass.stringAttributeValue('AXPlaceholderValue') is 'place'
</span><del>-PASS pass.iphoneValue is 'AXValue: val'
</del><ins>+PASS pass.stringValue is 'AXValue: val'
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityplaceholdervaluehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/placeholder-value.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/placeholder-value.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/placeholder-value.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -26,7 +26,7 @@
</span><span class="cx"> var pass = accessibilityController.focusedElement;
</span><span class="cx">
</span><span class="cx"> shouldBe("pass.stringAttributeValue('AXPlaceholderValue')", "'place'");
</span><del>- shouldBe("pass.iphoneValue", "'AXValue: val'");
</del><ins>+ shouldBe("pass.stringValue", "'AXValue: val'");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitypopupbuttonvaluelabelexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/popup-button-value-label-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/popup-button-value-label-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/popup-button-value-label-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -4,10 +4,10 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS pass.iphoneValue is 'AXValue: item 1'
-PASS pass.iphoneLabel is 'AXLabel: '
-PASS pass.iphoneValue is 'AXValue: item 2'
-PASS pass.iphoneLabel is 'AXLabel: Popup'
</del><ins>+PASS pass.stringValue is 'AXValue: item 1'
+PASS pass.description is 'AXLabel: '
+PASS pass.stringValue is 'AXValue: item 2'
+PASS pass.description is 'AXLabel: Popup'
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitypopupbuttonvaluelabelhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/popup-button-value-label.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/popup-button-value-label.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/popup-button-value-label.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -33,15 +33,15 @@
</span><span class="cx"> document.getElementById("pop").focus();
</span><span class="cx"> var pass = accessibilityController.focusedElement;
</span><span class="cx">
</span><del>- shouldBe("pass.iphoneValue", "'AXValue: item 1'");
- shouldBe("pass.iphoneLabel", "'AXLabel: '");
</del><ins>+ shouldBe("pass.stringValue", "'AXValue: item 1'");
+ shouldBe("pass.description", "'AXLabel: '");
</ins><span class="cx">
</span><span class="cx"> // Check the second popup button.
</span><span class="cx"> document.getElementById("pop2").focus();
</span><span class="cx"> pass = accessibilityController.focusedElement;
</span><span class="cx">
</span><del>- shouldBe("pass.iphoneValue", "'AXValue: item 2'");
- shouldBe("pass.iphoneLabel", "'AXLabel: Popup'");
</del><ins>+ shouldBe("pass.stringValue", "'AXValue: item 2'");
+ shouldBe("pass.description", "'AXLabel: Popup'");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityprogressbarexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/progressbar-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/progressbar-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/progressbar-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -4,9 +4,9 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS button1.iphoneLabel is 'AXLabel: Popularity'
-PASS button1.iphoneValue is 'AXValue: 5.00'
-PASS button1.iphoneIsElement is true
</del><ins>+PASS button1.description is 'AXLabel: Popularity'
+PASS button1.stringValue is 'AXValue: 5.00'
+PASS button1.isIgnored is false
</ins><span class="cx"> PASS button1.minValue is 1
</span><span class="cx"> PASS button1.maxValue is 12
</span><span class="cx"> PASS successfullyParsed is true
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityprogressbarhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/progressbar.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/progressbar.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/progressbar.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -20,9 +20,9 @@
</span><span class="cx"> if (window.accessibilityController) {
</span><span class="cx">
</span><span class="cx"> var button1 = accessibilityController.accessibleElementById("progressbar");
</span><del>- shouldBe("button1.iphoneLabel", "'AXLabel: Popularity'");
- shouldBe("button1.iphoneValue", "'AXValue: 5.00'");
- shouldBeTrue("button1.iphoneIsElement");
</del><ins>+ shouldBe("button1.description", "'AXLabel: Popularity'");
+ shouldBe("button1.stringValue", "'AXValue: 5.00'");
+ shouldBeFalse("button1.isIgnored");
</ins><span class="cx"> shouldBe("button1.minValue", "1");
</span><span class="cx"> shouldBe("button1.maxValue", "12");
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityradiobuttonexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/radio-button-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/radio-button-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/radio-button-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -4,10 +4,10 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS checkbox.iphoneTraits != radio1.iphoneTraits is true
-PASS radio1.iphoneValue is 'AXValue: 1'
-PASS radio2.iphoneValue is 'AXValue: 0'
-PASS radio3.iphoneValue is 'AXValue: 0'
</del><ins>+PASS checkbox.traits != radio1.traits is true
+PASS radio1.stringValue is 'AXValue: 1'
+PASS radio2.stringValue is 'AXValue: 0'
+PASS radio3.stringValue is 'AXValue: 0'
</ins><span class="cx"> PASS radio1.rowIndexRange() is '{0, 3}'
</span><span class="cx"> PASS radio2.rowIndexRange() is '{1, 3}'
</span><span class="cx"> PASS radio3.rowIndexRange() is '{2, 3}'
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityradiobuttonhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/radio-button.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/radio-button.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/radio-button.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -32,12 +32,12 @@
</span><span class="cx"> var radio3 = accessibilityController.focusedElement;
</span><span class="cx">
</span><span class="cx"> // Verify checkbox and radio have different traits.
</span><del>- shouldBeTrue("checkbox.iphoneTraits != radio1.iphoneTraits");
</del><ins>+ shouldBeTrue("checkbox.traits != radio1.traits");
</ins><span class="cx">
</span><span class="cx"> // Verify the value of the checked radio item is correct.
</span><del>- shouldBe("radio1.iphoneValue", "'AXValue: 1'");
- shouldBe("radio2.iphoneValue", "'AXValue: 0'");
- shouldBe("radio3.iphoneValue", "'AXValue: 0'");
</del><ins>+ shouldBe("radio1.stringValue", "'AXValue: 1'");
+ shouldBe("radio2.stringValue", "'AXValue: 0'");
+ shouldBe("radio3.stringValue", "'AXValue: 0'");
</ins><span class="cx">
</span><span class="cx"> // Verify the radio buttons are part of a group.
</span><span class="cx"> shouldBe("radio1.rowIndexRange()", "'{0, 3}'");
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitysecuretextfieldhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/secure-text-field.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/secure-text-field.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/secure-text-field.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -18,9 +18,9 @@
</span><span class="cx">
</span><span class="cx"> if (window.accessibilityController) {
</span><span class="cx">
</span><del>- var passfield = accessibilityController.rootElement.childAtIndex(0).childAtIndex(0);
- var textfield = accessibilityController.rootElement.childAtIndex(0).childAtIndex(1);
- var succeeded = passfield.iphoneTraits != textfield.iphoneTraits;
</del><ins>+ var passfield = accessibilityController.accessibleElementById("pass");
+ var textfield = accessibilityController.accessibleElementById("text");
+ var succeeded = passfield.traits != textfield.traits;
</ins><span class="cx">
</span><span class="cx"> // shouldBe("succeeded", "true");
</span><span class="cx"> var failed = false;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityselectedbuttonsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/selected-buttons-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/selected-buttons-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/selected-buttons-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -7,9 +7,9 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-FAIL button1.isSelected should be true. Was false.
</del><ins>+PASS button1.isSelected is true
</ins><span class="cx"> PASS button2.isSelected is false
</span><del>-FAIL tab1.isSelected should be true. Was false.
</del><ins>+PASS tab1.isSelected is true
</ins><span class="cx"> PASS tab2.isSelected is false
</span><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitysvggroupelementwithtitleexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/svg-group-element-with-title-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/svg-group-element-with-title-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/svg-group-element-with-title-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -4,8 +4,8 @@
</span><span class="cx">
</span><span class="cx">
</span><span class="cx"> Verify that the SVG group is returned as an accessible element.
</span><del>-PASS group1.iphoneLabel is 'AXLabel: SVG TITLE 1'
-PASS group1.iphoneIsElement is true
</del><ins>+PASS group1.description is 'AXLabel: SVG TITLE 1'
+PASS group1.isIgnored is false
</ins><span class="cx">
</span><span class="cx"> Verify that you can hit-test to the SVG group.
</span><span class="cx"> PASS hitTestElement.isEqual(group1) is true
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitysvggroupelementwithtitlehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/svg-group-element-with-title.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/svg-group-element-with-title.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/svg-group-element-with-title.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -23,8 +23,8 @@
</span><span class="cx">
</span><span class="cx"> debug("Verify that the SVG group is returned as an accessible element.");
</span><span class="cx"> var group1 = accessibilityController.accessibleElementById("group1");
</span><del>- shouldBe("group1.iphoneLabel", "'AXLabel: SVG TITLE 1'");
- shouldBeTrue("group1.iphoneIsElement");
</del><ins>+ shouldBe("group1.description", "'AXLabel: SVG TITLE 1'");
+ shouldBeFalse("group1.isIgnored");
</ins><span class="cx">
</span><span class="cx"> debug("\nVerify that you can hit-test to the SVG group.");
</span><span class="cx"> var hitTestElement = accessibilityController.elementAtPoint(group1.clickPointX, group1.clickPointY);
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitytabroleexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/tab-role-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/tab-role-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/tab-role-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -5,10 +5,10 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS tab.iphoneLabel is 'AXLabel: tab1'
-PASS button.iphoneTraits != tab.iphoneTraits is true
-PASS tab.iphoneTraits != 0 is true
-FAIL tab.isSelected should be true. Was false.
</del><ins>+PASS tab.description is 'AXLabel: tab1'
+PASS button.traits != tab.traits is true
+PASS tab.traits != 0 is true
+PASS tab.isSelected is true
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitytabrolehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/tab-role.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/tab-role.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/tab-role.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -25,14 +25,14 @@
</span><span class="cx">
</span><span class="cx"> document.getElementById("fakeButton").focus();
</span><span class="cx"> var tab = accessibilityController.focusedElement;
</span><del>- shouldBe("tab.iphoneLabel", "'AXLabel: tab1'");
</del><ins>+ shouldBe("tab.description", "'AXLabel: tab1'");
</ins><span class="cx">
</span><span class="cx"> // Now make sure it has the same traits as a button.
</span><span class="cx"> document.getElementById("realButton").focus();
</span><span class="cx"> var button = accessibilityController.focusedElement;
</span><span class="cx">
</span><del>- shouldBeTrue("button.iphoneTraits != tab.iphoneTraits");
- shouldBeTrue("tab.iphoneTraits != 0");
</del><ins>+ shouldBeTrue("button.traits != tab.traits");
+ shouldBeTrue("tab.traits != 0");
</ins><span class="cx">
</span><span class="cx"> shouldBeTrue("tab.isSelected");
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitytableslistsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/tables-lists-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/tables-lists-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/tables-lists-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -7,12 +7,12 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS listItem.iphoneTraits != initialItem.iphoneTraits is true
-PASS listItem.iphoneTraits != tableItem.iphoneTraits is true
-FAIL listItem.iphoneTraits != landmarkItem.iphoneTraits should be true. Threw exception TypeError: undefined is not an object (evaluating 'landmarkItem.iphoneTraits')
-PASS tableItem.iphoneTraits != initialItem.iphoneTraits is true
-FAIL tableItem.iphoneTraits != landmarkItem.iphoneTraits should be true. Threw exception TypeError: undefined is not an object (evaluating 'landmarkItem.iphoneTraits')
-FAIL landmarkItem.iphoneTraits != initialItem.iphoneTraits should be true. Threw exception TypeError: undefined is not an object (evaluating 'landmarkItem.iphoneTraits')
</del><ins>+PASS listItem.traits != initialItem.traits is true
+PASS listItem.traits != tableItem.traits is true
+PASS listItem.traits != landmarkItem.traits is true
+PASS tableItem.traits != initialItem.traits is true
+PASS tableItem.traits != landmarkItem.traits is true
+PASS landmarkItem.traits != initialItem.traits is true
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitytableslistshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/tables-lists.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/tables-lists.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/tables-lists.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -8,6 +8,8 @@
</span><span class="cx"> </head>
</span><span class="cx"> <body id="body">
</span><span class="cx">
</span><ins>+<div id="content" role="group">
+
</ins><span class="cx"> item 1
</span><span class="cx">
</span><span class="cx"> <ol>
</span><span class="lines">@@ -24,6 +26,8 @@
</span><span class="cx"> <b>landmark 1</b>
</span><span class="cx"> </div>
</span><span class="cx">
</span><ins>+</div>
+
</ins><span class="cx"> <p id="description"></p>
</span><span class="cx"> <div id="console"></div>
</span><span class="cx">
</span><span class="lines">@@ -33,21 +37,21 @@
</span><span class="cx">
</span><span class="cx"> if (window.accessibilityController) {
</span><span class="cx">
</span><del>- var root = accessibilityController.rootElement;
</del><ins>+ var root = accessibilityController.accessibleElementById("content");
</ins><span class="cx">
</span><span class="cx"> var initialItem = root.childAtIndex(0).childAtIndex(0);
</span><span class="cx"> var listItem = root.childAtIndex(1).childAtIndex(0).childAtIndex(0);
</span><span class="cx"> var tableItem = root.childAtIndex(2).childAtIndex(0);
</span><del>- var landmarkItem = root.childAtIndex(5).childAtIndex(0).childAtIndex(0);
</del><ins>+ var landmarkItem = root.childAtIndex(3).childAtIndex(0);
</ins><span class="cx">
</span><del>- shouldBe("listItem.iphoneTraits != initialItem.iphoneTraits", "true");
- shouldBe("listItem.iphoneTraits != tableItem.iphoneTraits", "true");
- shouldBe("listItem.iphoneTraits != landmarkItem.iphoneTraits", "true");
</del><ins>+ shouldBe("listItem.traits != initialItem.traits", "true");
+ shouldBe("listItem.traits != tableItem.traits", "true");
+ shouldBe("listItem.traits != landmarkItem.traits", "true");
</ins><span class="cx">
</span><del>- shouldBe("tableItem.iphoneTraits != initialItem.iphoneTraits", "true");
- shouldBe("tableItem.iphoneTraits != landmarkItem.iphoneTraits", "true");
</del><ins>+ shouldBe("tableItem.traits != initialItem.traits", "true");
+ shouldBe("tableItem.traits != landmarkItem.traits", "true");
</ins><span class="cx">
</span><del>- shouldBe("landmarkItem.iphoneTraits != initialItem.iphoneTraits", "true");
</del><ins>+ shouldBe("landmarkItem.traits != initialItem.traits", "true");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitytextmarkerlistitemexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/text-marker-list-item-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/text-marker-list-item-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/text-marker-list-item-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS text is '1. item 1'
</del><ins>+FAIL text should be 1. item 1. Was 1. .
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitytextmarkerlistitemhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/text-marker-list-item.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/text-marker-list-item.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/text-marker-list-item.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -8,7 +8,7 @@
</span><span class="cx"> </head>
</span><span class="cx"> <body id="body">
</span><span class="cx">
</span><del>-<ol>
</del><ins>+<ol id="list">
</ins><span class="cx"> <li>item 1</li>
</span><span class="cx"> </ol>
</span><span class="cx">
</span><span class="lines">@@ -21,7 +21,7 @@
</span><span class="cx">
</span><span class="cx"> if (window.accessibilityController) {
</span><span class="cx">
</span><del>- var obj = accessibilityController.rootElement;
</del><ins>+ var obj = accessibilityController.accessibleElementById("list");
</ins><span class="cx"> var text = obj.stringForRange(0, 6);
</span><span class="cx"> shouldBe("text", "'1. item 1'");
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitytextmarkervalidationhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/text-marker-validation.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/text-marker-validation.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/text-marker-validation.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -8,10 +8,10 @@
</span><span class="cx"> </head>
</span><span class="cx"> <body>
</span><span class="cx">
</span><del>-<div>element 1</div>
-<div>element 2</div>
-<div>element 3</div>
-<div>element 4</div>
</del><ins>+<div id="element1">element 1</div>
+<div id="element2">element 2</div>
+<div id="element3">element 3</div>
+<div id="element4">element 4</div>
</ins><span class="cx">
</span><span class="cx"> <p id="description"></p>
</span><span class="cx"> <div id="console"></div>
</span><span class="lines">@@ -22,10 +22,10 @@
</span><span class="cx">
</span><span class="cx"> if (window.accessibilityController) {
</span><span class="cx">
</span><del>- var obj = accessibilityController.rootElement.childAtIndex(2);
</del><ins>+ var obj = accessibilityController.accessibleElementById("element3");
</ins><span class="cx">
</span><del>- var textPos = obj.iphoneElementTextPosition;
- var textLen = obj.iphoneElementTextLength;
</del><ins>+ var textPos = obj.elementTextPosition;
+ var textLen = obj.elementTextLength;
</ins><span class="cx">
</span><span class="cx"> var succeeded = textPos == 20 && textLen == 9;
</span><span class="cx"> shouldBe("succeeded", "true");
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitytextroleexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/text-role-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/text-role-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/text-role-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS textrole.iphoneLabel is 'AXLabel: all at once'
</del><ins>+PASS textrole.description is 'AXLabel: all at once'
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitytextrolehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/text-role.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/text-role.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/text-role.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -23,9 +23,8 @@
</span><span class="cx">
</span><span class="cx"> if (window.accessibilityController) {
</span><span class="cx">
</span><del>- document.getElementById("textrole").focus();
- var textrole = accessibilityController.rootElement.childAtIndex(0);
- shouldBe("textrole.iphoneLabel", "'AXLabel: all at once'");
</del><ins>+ var textrole = accessibilityController.accessibleElementById("textrole");
+ shouldBe("textrole.description", "'AXLabel: all at once'");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitytextfieldinaxvalueexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/textfield-in-axvalue-expected.txt (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/textfield-in-axvalue-expected.txt        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/textfield-in-axvalue-expected.txt        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -8,12 +8,12 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS textfield.iphoneLabel is 'AXLabel: Search'
-PASS textfield.iphoneValue is 'AXValue: hello'
-PASS h1.iphoneLabel is 'AXLabel: H1 Test'
-PASS h1.iphoneValue is 'AXValue: 1'
-PASS button.iphoneLabel is 'AXLabel: Button Title'
-PASS button.iphoneValue is 'AXValue: '
</del><ins>+PASS textfield.description is 'AXLabel: Search'
+PASS textfield.stringValue is 'AXValue: hello'
+PASS h1.description is 'AXLabel: H1 Test'
+PASS h1.stringValue is 'AXValue: 1'
+PASS button.description is 'AXLabel: Button Title'
+PASS button.stringValue is 'AXValue: '
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx">
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitytextfieldinaxvaluehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/textfield-in-axvalue.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/textfield-in-axvalue.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/textfield-in-axvalue.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -22,18 +22,18 @@
</span><span class="cx">
</span><span class="cx"> if (window.accessibilityController) {
</span><span class="cx">
</span><del>- var textfield = accessibilityController.rootElement.childAtIndex(0).childAtIndex(0);
- shouldBe("textfield.iphoneLabel", "'AXLabel: Search'");
- shouldBe("textfield.iphoneValue", "'AXValue: hello'");
</del><ins>+ var textfield = accessibilityController.accessibleElementById("textfield");
+ shouldBe("textfield.description", "'AXLabel: Search'");
+ shouldBe("textfield.stringValue", "'AXValue: hello'");
</ins><span class="cx">
</span><del>- var h1 = accessibilityController.rootElement.childAtIndex(1);
- shouldBe("h1.iphoneLabel", "'AXLabel: H1 Test'");
</del><ins>+ var h1 = accessibilityController.accessibleElementById("h1");
+ shouldBe("h1.description", "'AXLabel: H1 Test'");
</ins><span class="cx"> // Should be 1 for the heading level.
</span><del>- shouldBe("h1.iphoneValue", "'AXValue: 1'");
</del><ins>+ shouldBe("h1.stringValue", "'AXValue: 1'");
</ins><span class="cx">
</span><del>- var button = accessibilityController.rootElement.childAtIndex(2).childAtIndex(0);
- shouldBe("button.iphoneLabel", "'AXLabel: Button Title'");
- shouldBe("button.iphoneValue", "'AXValue: '");
</del><ins>+ var button = accessibilityController.accessibleElementById("button");
+ shouldBe("button.description", "'AXLabel: Button Title'");
+ shouldBe("button.stringValue", "'AXValue: '");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilitytogglebuttonhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/toggle-button.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/toggle-button.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/toggle-button.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -21,12 +21,12 @@
</span><span class="cx"> if (window.accessibilityController) {
</span><span class="cx">
</span><span class="cx"> var button1 = accessibilityController.accessibleElementById("button1");
</span><del>- debug("Button1 : " + button1.iphoneLabel);
- debug("Button1 : " + button1.iphoneValue);
</del><ins>+ debug("Button1 : " + button1.description);
+ debug("Button1 : " + button1.stringValue);
</ins><span class="cx">
</span><span class="cx"> var button2 = accessibilityController.accessibleElementById("button2");
</span><del>- debug("Button2 : " + button2.iphoneLabel);
- debug("Button2 : " + button2.iphoneValue);
</del><ins>+ debug("Button2 : " + button2.description);
+ debug("Button2 : " + button2.stringValue);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> successfullyParsed = true;
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoraccessibilityurltesthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/accessibility/url-test.html (185542 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/accessibility/url-test.html        2015-06-14 04:53:14 UTC (rev 185542)
+++ trunk/LayoutTests/platform/ios-simulator/accessibility/url-test.html        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -8,9 +8,9 @@
</span><span class="cx"> </head>
</span><span class="cx"> <body id="body">
</span><span class="cx">
</span><del>-<input type="image" src="url-test1.html"><BR>
-<a href="#url-test2.html">test</a><BR>
-<img src="url-test3.png" width=100 height=100 alt="test"><BR>
</del><ins>+<input id="element1" type="image" src="url-test1.html"><BR>
+<a id="element2" href="#url-test2.html">test</a><BR>
+<img id="element3" src="url-test3.png" width=100 height=100 alt="test"><BR>
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> <p id="description"></p>
</span><span class="lines">@@ -22,13 +22,13 @@
</span><span class="cx">
</span><span class="cx"> if (window.accessibilityController) {
</span><span class="cx">
</span><del>- var element = accessibilityController.rootElement.childAtIndex(0).childAtIndex(0);
</del><ins>+ var element = accessibilityController.accessibleElementById("element1");
</ins><span class="cx"> shouldBe("element.url.indexOf('url-test1.html') != -1", "true");
</span><span class="cx">
</span><del>- element = accessibilityController.rootElement.childAtIndex(0).childAtIndex(1);
</del><ins>+ element = accessibilityController.accessibleElementById("element2");
</ins><span class="cx"> shouldBe("element.url.indexOf('url-test2.html') != -1", "true");
</span><span class="cx">
</span><del>- element = accessibilityController.rootElement.childAtIndex(0).childAtIndex(2);
</del><ins>+ element = accessibilityController.accessibleElementById("element3");
</ins><span class="cx"> shouldBe("element.url.indexOf('url-test3.png') != -1", "true");
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatorwk1TestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator-wk1/TestExpectations (185608 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator-wk1/TestExpectations        2015-06-16 20:51:04 UTC (rev 185608)
+++ trunk/LayoutTests/platform/ios-simulator-wk1/TestExpectations        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -1682,7 +1682,6 @@
</span><span class="cx"> inspector-protocol/debugger/regress-133182.html [ Failure ]
</span><span class="cx"> inspector-protocol/dom/getAccessibilityPropertiesForNode.html [ Failure ]
</span><span class="cx"> inspector-protocol/page/javascriptDialogEvents.html [ Failure ]
</span><del>-platform/ios-simulator/accessibility/disabled-states.html [ Failure ]
</del><span class="cx"> platform/ios-simulator/ios/fast/text/underline-scaling.html [ Failure ]
</span><span class="cx"> svg/custom/linking-uri-01-b.svg [ Failure ]
</span><span class="cx"> compositing/backgrounds/background-image-with-negative-zindex.html [ ImageOnlyFailure ]
</span><span class="lines">@@ -1731,4 +1730,4 @@
</span><span class="cx"> fast/history/history-length.html [ Crash ]
</span><span class="cx"> storage/websql/alter-to-info-table.html [ Crash ]
</span><span class="cx">
</span><del>-webkit.org/b/145432 media/video-transformed-by-javascript.html [ Failure ]
</del><span class="cx">\ No newline at end of file
</span><ins>+webkit.org/b/145432 media/video-transformed-by-javascript.html [ Failure ]
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatorwk2TestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator-wk2/TestExpectations (185608 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator-wk2/TestExpectations        2015-06-16 20:51:04 UTC (rev 185608)
+++ trunk/LayoutTests/platform/ios-simulator-wk2/TestExpectations        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -1707,8 +1707,6 @@
</span><span class="cx"> platform/ios-simulator/ios/fast/coordinates/mouse-event.html
</span><span class="cx">
</span><span class="cx"> # iOS-specific tests that time out or fail in WebKitTestRunner due to missing DRT-specific functionality:
</span><del>-platform/ios-simulator/accessibility
-platform/ios-simulator/ios/accessibility
</del><span class="cx"> platform/ios-simulator/ios/fast/coordinates/touch-event-zoomed.html
</span><span class="cx"> platform/ios-simulator/ios/fast/coordinates/touch-event.html
</span><span class="cx"> platform/ios-simulator/ios/fast/events/touch/input-touch-target.html
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (185608 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-06-16 20:51:04 UTC (rev 185608)
+++ trunk/Source/WebCore/ChangeLog        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2015-06-15 Chris Fleizach <cfleizach@apple.com>
+
+ AX: iOS accessibility tests are not running because we need WKTR support
+ https://bugs.webkit.org/show_bug.cgi?id=145991
+
+ Reviewed by Daniel Bates.
+
+ Make some minor modifications to support notification handling in WKTR.
+
+ * accessibility/ios/AXObjectCacheIOS.mm:
+ (WebCore::AXObjectCache::postPlatformNotification):
+ (WebCore::AXObjectCache::postTextStateChangePlatformNotification):
+ * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
+ (-[WebAccessibilityObjectWrapper accessibilityClickPoint]):
+ (-[WebAccessibilityObjectWrapper description]):
+ (-[WebAccessibilityObjectWrapper accessibilitySetPostedNotificationCallback:withContext:]): Deleted.
+ (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:]): Deleted.
+
</ins><span class="cx"> 2015-06-16 Mark Lam <mark.lam@apple.com>
</span><span class="cx">
</span><span class="cx"> Use NakedPtr<Exception>& to return exception results.
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityiosAXObjectCacheIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/ios/AXObjectCacheIOS.mm (185608 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/ios/AXObjectCacheIOS.mm        2015-06-16 20:51:04 UTC (rev 185608)
+++ trunk/Source/WebCore/accessibility/ios/AXObjectCacheIOS.mm        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -95,7 +95,8 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // Used by DRT to know when notifications are posted.
</span><del>- [obj->wrapper() accessibilityPostedNotification:notificationString];
</del><ins>+ if (notificationString)
+ [obj->wrapper() accessibilityPostedNotification:notificationString];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void AXObjectCache::postTextStateChangePlatformNotification(AccessibilityObject* object, const AXTextStateChangeIntent&, const VisibleSelection&)
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityiosWebAccessibilityObjectWrapperIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm (185608 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm        2015-06-16 20:51:04 UTC (rev 185608)
+++ trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -2525,24 +2525,6 @@
</span><span class="cx"> return m_object->clickPoint();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-// These are used by DRT so that it can know when notifications are sent.
-// Since they are static, only one callback can be installed at a time (that's all DRT should need).
-typedef void (*AXPostedNotificationCallback)(id element, NSString* notification, void* context);
-static AXPostedNotificationCallback AXNotificationCallback = nullptr;
-static void* AXPostedNotificationContext = nullptr;
-
-- (void)accessibilitySetPostedNotificationCallback:(AXPostedNotificationCallback)function withContext:(void*)context
-{
- AXNotificationCallback = function;
- AXPostedNotificationContext = context;
-}
-
-- (void)accessibilityPostedNotification:(NSString *)notificationName
-{
- if (AXNotificationCallback && notificationName)
- AXNotificationCallback(self, notificationName, AXPostedNotificationContext);
-}
-
</del><span class="cx"> #ifndef NDEBUG
</span><span class="cx"> - (NSString *)description
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (185608 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2015-06-16 20:51:04 UTC (rev 185608)
+++ trunk/Tools/ChangeLog        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -1,3 +1,134 @@
</span><ins>+2015-06-15 Chris Fleizach <cfleizach@apple.com>
+
+ AX: iOS accessibility tests are not running because we need WKTR support
+ https://bugs.webkit.org/show_bug.cgi?id=145991
+
+ Reviewed by Daniel Bates.
+
+ Add support for WKTR iOS accessibility.
+ Utilize the notification handling mechanisms that Mac already uses.
+ Rename iphone* DRT methods to either use existing methods that are similar, or rename to more generic names.
+
+ * DumpRenderTree/AccessibilityUIElement.cpp:
+ (stringForSelectionCallback):
+ (getIdentifierCallback):
+ (getTraitsCallback):
+ (getElementTextPositionCallback):
+ (getElementTextLengthCallback):
+ (AccessibilityUIElement::getJSClass):
+ (getIPhoneLabelCallback): Deleted.
+ (getIPhoneHintCallback): Deleted.
+ (getIPhoneValueCallback): Deleted.
+ (getIPhoneIdentifierCallback): Deleted.
+ (getIPhoneTraitsCallback): Deleted.
+ (getIPhoneIsElementCallback): Deleted.
+ (getIPhoneElementTextPositionCallback): Deleted.
+ (getIPhoneElementTextLengthCallback): Deleted.
+ * DumpRenderTree/AccessibilityUIElement.h:
+ * DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
+ (AccessibilityUIElement::identifier):
+ (AccessibilityUIElement::traits):
+ (AccessibilityUIElement::elementTextPosition):
+ (AccessibilityUIElement::elementTextLength):
+ (AccessibilityUIElement::description):
+ (AccessibilityUIElement::orientation):
+ (AccessibilityUIElement::stringValue):
+ (AccessibilityUIElement::language):
+ (AccessibilityUIElement::helpText):
+ (AccessibilityUIElement::intValue):
+ (AccessibilityUIElement::isSelected):
+ (AccessibilityUIElement::isExpanded):
+ (AccessibilityUIElement::documentURI):
+ (AccessibilityUIElement::addNotificationListener):
+ (AccessibilityUIElement::removeNotificationListener):
+ (AccessibilityUIElement::isFocusable):
+ (AccessibilityUIElement::isIgnored):
+ (AccessibilityUIElement::hasPopup):
+ (AccessibilityUIElement::iphoneLabel): Deleted.
+ (AccessibilityUIElement::iphoneHint): Deleted.
+ (AccessibilityUIElement::iphoneValue): Deleted.
+ (AccessibilityUIElement::iphoneIdentifier): Deleted.
+ (AccessibilityUIElement::iphoneTraits): Deleted.
+ (AccessibilityUIElement::iphoneIsElement): Deleted.
+ (AccessibilityUIElement::iphoneElementTextPosition): Deleted.
+ (AccessibilityUIElement::iphoneElementTextLength): Deleted.
+ (_accessibilityNotificationCallback): Deleted.
+ * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
+ (WTR::AccessibilityUIElement::isValid):
+ (WTR::AccessibilityUIElement::identifier):
+ (WTR::AccessibilityUIElement::traits):
+ (WTR::AccessibilityUIElement::elementTextPosition):
+ (WTR::AccessibilityUIElement::elementTextLength):
+ (WTR::AccessibilityUIElement::stringForSelection):
+ (WTR::AccessibilityUIElement::elementsForRange):
+ (WTR::AccessibilityUIElement::increaseTextSelection):
+ (WTR::AccessibilityUIElement::decreaseTextSelection):
+ (WTR::AccessibilityUIElement::linkedElement):
+ (WTR::AccessibilityUIElement::headerElementAtIndex):
+ (WTR::AccessibilityUIElement::assistiveTechnologySimulatedFocus):
+ (WTR::AccessibilityUIElement::characterAtOffset):
+ * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
+ * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
+ * WebKitTestRunner/InjectedBundle/ios/AccessibilityControllerIOS.mm:
+ (WTR::findAccessibleObjectById):
+ (WTR::AccessibilityController::accessibleElementById):
+ * WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
+ (+[NSString stringWithJSStringRef:]):
+ (-[NSString createJSStringRef]):
+ (WTR::convertNSArrayToVector):
+ (WTR::concatenateAttributeAndValue):
+ (WTR::AccessibilityUIElement::AccessibilityUIElement):
+ (WTR::AccessibilityUIElement::isEqual):
+ (WTR::AccessibilityUIElement::headerElementAtIndex):
+ (WTR::AccessibilityUIElement::linkedElement):
+ (WTR::AccessibilityUIElement::getLinkedUIElements):
+ (WTR::AccessibilityUIElement::elementAtPoint):
+ (WTR::convertElementsToObjectArray):
+ (WTR::AccessibilityUIElement::elementsForRange):
+ (WTR::AccessibilityUIElement::indexOfChild):
+ (WTR::AccessibilityUIElement::stringAttributeValue):
+ (WTR::AccessibilityUIElement::description):
+ (WTR::AccessibilityUIElement::orientation):
+ (WTR::AccessibilityUIElement::stringValue):
+ (WTR::AccessibilityUIElement::language):
+ (WTR::AccessibilityUIElement::helpText):
+ (WTR::AccessibilityUIElement::x):
+ (WTR::AccessibilityUIElement::clickPointX):
+ (WTR::AccessibilityUIElement::clickPointY):
+ (WTR::AccessibilityUIElement::intValue):
+ (WTR::AccessibilityUIElement::minValue):
+ (WTR::AccessibilityUIElement::maxValue):
+ (WTR::AccessibilityUIElement::valueDescription):
+ (WTR::AccessibilityUIElement::isSelected):
+ (WTR::AccessibilityUIElement::isSelectedOptionActive):
+ (WTR::AccessibilityUIElement::stringForRange):
+ (WTR::AccessibilityUIElement::attributedStringForRange):
+ (WTR::AccessibilityUIElement::attributesOfHeader):
+ (WTR::AccessibilityUIElement::traits):
+ (WTR::AccessibilityUIElement::identifier):
+ (WTR::AccessibilityUIElement::rowCount):
+ (WTR::AccessibilityUIElement::rowIndexRange):
+ (WTR::AccessibilityUIElement::columnIndexRange):
+ (WTR::AccessibilityUIElement::cellForColumnAndRow):
+ (WTR::AccessibilityUIElement::horizontalScrollbar):
+ (WTR::AccessibilityUIElement::documentURI):
+ (WTR::AccessibilityUIElement::assistiveTechnologySimulatedFocus):
+ (WTR::AccessibilityUIElement::increaseTextSelection):
+ (WTR::AccessibilityUIElement::decreaseTextSelection):
+ (WTR::AccessibilityUIElement::stringForSelection):
+ (WTR::AccessibilityUIElement::elementTextPosition):
+ (WTR::AccessibilityUIElement::elementTextLength):
+ (WTR::AccessibilityUIElement::url):
+ (WTR::AccessibilityUIElement::addNotificationListener):
+ (WTR::AccessibilityUIElement::removeNotificationListener):
+ (WTR::AccessibilityUIElement::isFocusable):
+ (WTR::AccessibilityUIElement::isIgnored):
+ (WTR::AccessibilityUIElement::hasPopup):
+ (WTR::AccessibilityUIElement::mathPrescriptsDescription):
+ (WTR::_CGPathEnumerationIteration):
+ (WTR::AccessibilityUIElement::pathDescription):
+ (WTR::AccessibilityUIElement::supportedActions):
+
</ins><span class="cx"> 2015-06-16 Mark Lam <mark.lam@apple.com>
</span><span class="cx">
</span><span class="cx"> Use NakedPtr<Exception>& to return exception results.
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreeAccessibilityUIElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/AccessibilityUIElement.cpp (185608 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/AccessibilityUIElement.cpp        2015-06-16 20:51:04 UTC (rev 185608)
+++ trunk/Tools/DumpRenderTree/AccessibilityUIElement.cpp        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -1304,52 +1304,29 @@
</span><span class="cx"> return JSValueMakeString(context, labelString.get());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static JSValueRef getIPhoneLabelCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef propertyName, JSValueRef* exception)
</del><ins>+static JSValueRef getIdentifierCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef propertyName, JSValueRef* exception)
</ins><span class="cx"> {
</span><del>- JSRetainPtr<JSStringRef> labelString(Adopt, toAXElement(thisObject)->iphoneLabel());
- return JSValueMakeString(context, labelString.get());
-}
-
-static JSValueRef getIPhoneHintCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef propertyName, JSValueRef* exception)
-{
- JSRetainPtr<JSStringRef> hintString(Adopt, toAXElement(thisObject)->iphoneHint());
- return JSValueMakeString(context, hintString.get());
-}
-
-static JSValueRef getIPhoneValueCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef propertyName, JSValueRef* exception)
-{
- JSRetainPtr<JSStringRef> valueString(Adopt, toAXElement(thisObject)->iphoneValue());
</del><ins>+ JSRetainPtr<JSStringRef> valueString(Adopt, toAXElement(thisObject)->identifier());
</ins><span class="cx"> return JSValueMakeString(context, valueString.get());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static JSValueRef getIPhoneIdentifierCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef propertyName, JSValueRef* exception)
-{
- JSRetainPtr<JSStringRef> valueString(Adopt, toAXElement(thisObject)->iphoneIdentifier());
- return JSValueMakeString(context, valueString.get());
-}
</del><span class="cx">
</span><del>-
-static JSValueRef getIPhoneTraitsCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef propertyName, JSValueRef* exception)
</del><ins>+static JSValueRef getTraitsCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef propertyName, JSValueRef* exception)
</ins><span class="cx"> {
</span><del>- JSRetainPtr<JSStringRef> valueString(Adopt, toAXElement(thisObject)->iphoneTraits());
</del><ins>+ JSRetainPtr<JSStringRef> valueString(Adopt, toAXElement(thisObject)->traits());
</ins><span class="cx"> return JSValueMakeString(context, valueString.get());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static JSValueRef getIPhoneIsElementCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef propertyName, JSValueRef* exception)
</del><ins>+static JSValueRef getElementTextPositionCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef propertyName, JSValueRef* exception)
</ins><span class="cx"> {
</span><del>- return JSValueMakeBoolean(context, toAXElement(thisObject)->iphoneIsElement());
</del><ins>+ return JSValueMakeNumber(context, toAXElement(thisObject)->elementTextPosition());
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-static JSValueRef getIPhoneElementTextPositionCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef propertyName, JSValueRef* exception)
</del><ins>+static JSValueRef getElementTextLengthCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef propertyName, JSValueRef* exception)
</ins><span class="cx"> {
</span><del>- return JSValueMakeNumber(context, toAXElement(thisObject)->iphoneElementTextPosition());
</del><ins>+ return JSValueMakeNumber(context, toAXElement(thisObject)->elementTextLength());
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-static JSValueRef getIPhoneElementTextLengthCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef propertyName, JSValueRef* exception)
-{
- return JSValueMakeNumber(context, toAXElement(thisObject)->iphoneElementTextLength());
-}
-
</del><span class="cx"> #endif // PLATFORM(IOS)
</span><span class="cx">
</span><span class="cx"> #if PLATFORM(MAC) && !PLATFORM(IOS)
</span><span class="lines">@@ -1599,14 +1576,10 @@
</span><span class="cx"> { "startTextMarker", startTextMarkerCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
</span><span class="cx"> { "endTextMarker", endTextMarkerCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>- { "iphoneLabel", getIPhoneLabelCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
- { "iphoneHint", getIPhoneHintCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
- { "iphoneValue", getIPhoneValueCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
- { "iphoneIdentifier", getIPhoneIdentifierCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
- { "iphoneTraits", getIPhoneTraitsCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
- { "iphoneIsElement", getIPhoneIsElementCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
- { "iphoneElementTextPosition", getIPhoneElementTextPositionCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
- { "iphoneElementTextLength", getIPhoneElementTextLengthCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
</del><ins>+ { "identifier", getIdentifierCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
+ { "traits", getTraitsCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
+ { "elementTextPosition", getElementTextPositionCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
+ { "elementTextLength", getElementTextLengthCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
</ins><span class="cx"> { "stringForSelection", stringForSelectionCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
</span><span class="cx"> #endif // PLATFORM(IOS)
</span><span class="cx"> #if PLATFORM(MAC) && !PLATFORM(IOS)
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreeAccessibilityUIElementh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/AccessibilityUIElement.h (185608 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/AccessibilityUIElement.h        2015-06-16 20:51:04 UTC (rev 185608)
+++ trunk/Tools/DumpRenderTree/AccessibilityUIElement.h        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -274,14 +274,10 @@
</span><span class="cx"> void removeNotificationListener();
</span><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>- JSStringRef iphoneLabel();
- JSStringRef iphoneValue();
- JSStringRef iphoneTraits();
- JSStringRef iphoneHint();
- JSStringRef iphoneIdentifier();
- bool iphoneIsElement();
- int iphoneElementTextPosition();
- int iphoneElementTextLength();
</del><ins>+ JSStringRef traits();
+ JSStringRef identifier();
+ int elementTextPosition();
+ int elementTextLength();
</ins><span class="cx"> AccessibilityUIElement headerElementAtIndex(unsigned);
</span><span class="cx"> // This will simulate the accessibilityDidBecomeFocused API in UIKit.
</span><span class="cx"> void assistiveTechnologySimulatedFocus();
</span><span class="lines">@@ -300,9 +296,7 @@
</span><span class="cx"> static JSClassRef getJSClass();
</span><span class="cx"> PlatformUIElement m_element;
</span><span class="cx">
</span><del>-#if PLATFORM(IOS)
- JSObjectRef m_notificationFunctionCallback;
-#elif PLATFORM(MAC)
</del><ins>+#if PLATFORM(COCOA)
</ins><span class="cx"> // A retained, platform specific object used to help manage notifications for this object.
</span><span class="cx"> NotificationHandler m_notificationHandler;
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreeiosAccessibilityUIElementIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm (185608 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm        2015-06-16 20:51:04 UTC (rev 185608)
+++ trunk/Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> #import "AccessibilityUIElement.h"
</span><span class="cx">
</span><span class="cx"> #import "AccessibilityCommonMac.h"
</span><ins>+#import "AccessibilityNotificationHandler.h"
</ins><span class="cx"> #import <Foundation/Foundation.h>
</span><span class="cx"> #import <JavaScriptCore/JSRetainPtr.h>
</span><span class="cx"> #import <JavaScriptCore/JSStringRef.h>
</span><span class="lines">@@ -78,6 +79,7 @@
</span><span class="cx"> - (CGFloat)_accessibilityMaxValue;
</span><span class="cx"> - (void)_accessibilitySetValue:(NSString *)value;
</span><span class="cx"> - (void)_accessibilityActivate;
</span><ins>+- (UIAccessibilityTraits)_axSelectedTrait;
</ins><span class="cx"> @end
</span><span class="cx">
</span><span class="cx"> @interface NSObject (WebAccessibilityObjectWrapperPrivate)
</span><span class="lines">@@ -100,43 +102,23 @@
</span><span class="cx">
</span><span class="cx"> #pragma mark iPhone Attributes
</span><span class="cx">
</span><del>-JSStringRef AccessibilityUIElement::iphoneLabel()
</del><ins>+JSStringRef AccessibilityUIElement::identifier()
</ins><span class="cx"> {
</span><del>- return concatenateAttributeAndValue(@"AXLabel", [m_element accessibilityLabel]);
-}
-
-JSStringRef AccessibilityUIElement::iphoneHint()
-{
- return concatenateAttributeAndValue(@"AXHint", [m_element accessibilityHint]);
-}
-
-JSStringRef AccessibilityUIElement::iphoneValue()
-{
- return concatenateAttributeAndValue(@"AXValue", [m_element accessibilityValue]);
-}
-
-JSStringRef AccessibilityUIElement::iphoneIdentifier()
-{
</del><span class="cx"> return concatenateAttributeAndValue(@"AXIdentifier", [m_element accessibilityIdentifier]);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-JSStringRef AccessibilityUIElement::iphoneTraits()
</del><ins>+JSStringRef AccessibilityUIElement::traits()
</ins><span class="cx"> {
</span><span class="cx"> return concatenateAttributeAndValue(@"AXTraits", [NSString stringWithFormat:@"%qu", [m_element accessibilityTraits]]);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool AccessibilityUIElement::iphoneIsElement()
</del><ins>+int AccessibilityUIElement::elementTextPosition()
</ins><span class="cx"> {
</span><del>- return [m_element isAccessibilityElement];
-}
-
-int AccessibilityUIElement::iphoneElementTextPosition()
-{
</del><span class="cx"> NSRange range = [[m_element valueForKey:@"elementTextRange"] rangeValue];
</span><span class="cx"> return range.location;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-int AccessibilityUIElement::iphoneElementTextLength()
</del><ins>+int AccessibilityUIElement::elementTextLength()
</ins><span class="cx"> {
</span><span class="cx"> NSRange range = [[m_element valueForKey:@"elementTextRange"] rangeValue];
</span><span class="cx"> return range.length;
</span><span class="lines">@@ -490,8 +472,8 @@
</span><span class="cx">
</span><span class="cx"> JSStringRef AccessibilityUIElement::description()
</span><span class="cx"> {
</span><del>- return JSStringCreateWithCharacters(0, 0);
-}
</del><ins>+ return concatenateAttributeAndValue(@"AXLabel", [m_element accessibilityLabel]);
+}
</ins><span class="cx">
</span><span class="cx"> JSStringRef AccessibilityUIElement::orientation() const
</span><span class="cx"> {
</span><span class="lines">@@ -500,7 +482,7 @@
</span><span class="cx">
</span><span class="cx"> JSStringRef AccessibilityUIElement::stringValue()
</span><span class="cx"> {
</span><del>- return JSStringCreateWithCharacters(0, 0);
</del><ins>+ return concatenateAttributeAndValue(@"AXValue", [m_element accessibilityValue]);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> JSStringRef AccessibilityUIElement::language()
</span><span class="lines">@@ -510,7 +492,7 @@
</span><span class="cx">
</span><span class="cx"> JSStringRef AccessibilityUIElement::helpText() const
</span><span class="cx"> {
</span><del>- return JSStringCreateWithCharacters(0, 0);
</del><ins>+ return concatenateAttributeAndValue(@"AXHint", [m_element accessibilityHint]);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> double AccessibilityUIElement::intValue() const
</span><span class="lines">@@ -562,7 +544,8 @@
</span><span class="cx"> bool AccessibilityUIElement::isSelected() const
</span><span class="cx"> {
</span><span class="cx"> UIAccessibilityTraits traits = [m_element accessibilityTraits];
</span><del>- return (traits & UIAccessibilityTraitSelected);
</del><ins>+ bool result = (traits & [m_element _axSelectedTrait]) == [m_element _axSelectedTrait];
+ return result;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool AccessibilityUIElement::isExpanded() const
</span><span class="lines">@@ -724,32 +707,31 @@
</span><span class="cx"> return JSStringCreateWithCharacters(0, 0);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static void _accessibilityNotificationCallback(id element, NSString* notification, void* context)
-{
- if (!context)
- return;
-
- JSObjectRef functionCallback = static_cast<JSObjectRef>(context);
-
- JSRetainPtr<JSStringRef> jsNotification(Adopt, [notification createJSStringRef]);
- JSValueRef argument = JSValueMakeString([mainFrame globalContext], jsNotification.get());
- JSObjectCallAsFunction([mainFrame globalContext], functionCallback, NULL, 1, &argument, NULL);
-}
-
</del><span class="cx"> bool AccessibilityUIElement::addNotificationListener(JSObjectRef functionCallback)
</span><span class="cx"> {
</span><span class="cx"> if (!functionCallback)
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- m_notificationFunctionCallback = functionCallback;
- [platformUIElement() accessibilitySetPostedNotificationCallback:_accessibilityNotificationCallback withContext:reinterpret_cast<void*>(m_notificationFunctionCallback)];
- return true;
</del><ins>+ // iOS programmers should not be adding more than one notification listener per element.
+ // Other platforms may be different.
+ if (m_notificationHandler)
+ return false;
+ m_notificationHandler = [[AccessibilityNotificationHandler alloc] init];
+ [m_notificationHandler setPlatformElement:platformUIElement()];
+ [m_notificationHandler setCallback:functionCallback];
+ [m_notificationHandler startObserving];
+
+ return true;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void AccessibilityUIElement::removeNotificationListener()
</span><span class="cx"> {
</span><del>- m_notificationFunctionCallback = 0;
- [platformUIElement() accessibilitySetPostedNotificationCallback:nil withContext:nil];
</del><ins>+ // iOS programmers should not be trying to remove a listener that's already removed.
+ ASSERT(m_notificationHandler);
+
+ [m_notificationHandler stopObserving];
+ [m_notificationHandler release];
+ m_notificationHandler = nil;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool AccessibilityUIElement::isFocusable() const
</span><span class="lines">@@ -796,8 +778,7 @@
</span><span class="cx">
</span><span class="cx"> bool AccessibilityUIElement::isIgnored() const
</span><span class="cx"> {
</span><del>- // FIXME: implement
- return false;
</del><ins>+ return ![m_element isAccessibilityElement];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool AccessibilityUIElement::hasPopup() const
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleAccessibilityUIElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp (185608 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp        2015-06-16 20:51:04 UTC (rev 185608)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -53,6 +53,21 @@
</span><span class="cx"> return m_element;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+// iOS specific methods
+#if !PLATFORM(IOS)
+JSRetainPtr<JSStringRef> AccessibilityUIElement::identifier() { return nullptr; }
+JSRetainPtr<JSStringRef> AccessibilityUIElement::traits() { return nullptr; }
+int AccessibilityUIElement::elementTextPosition() { return 0; }
+int AccessibilityUIElement::elementTextLength() { return 0; }
+JSRetainPtr<JSStringRef> AccessibilityUIElement::stringForSelection() { return nullptr; }
+JSValueRef AccessibilityUIElement::elementsForRange(unsigned, unsigned) { return nullptr; }
+void AccessibilityUIElement::increaseTextSelection() { }
+void AccessibilityUIElement::decreaseTextSelection() { }
+PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::linkedElement() { return nullptr; }
+PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::headerElementAtIndex(unsigned) { return nullptr; }
+void AccessibilityUIElement::assistiveTechnologySimulatedFocus() { return; }
+#endif
+
</ins><span class="cx"> // Unsupported methods on various platforms. As they're implemented on other platforms this list should be modified.
</span><span class="cx"> #if (!PLATFORM(GTK) && !PLATFORM(EFL)) || !HAVE(ACCESSIBILITY)
</span><span class="cx"> JSRetainPtr<JSStringRef> AccessibilityUIElement::characterAtOffset(int) { return 0; }
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleAccessibilityUIElementh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h (185608 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h        2015-06-16 20:51:04 UTC (rev 185608)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -263,6 +263,18 @@
</span><span class="cx"> // Make sure you call remove, because you can't rely on objects being deallocated in a timely fashion.
</span><span class="cx"> bool removeNotificationListener();
</span><span class="cx">
</span><ins>+ JSRetainPtr<JSStringRef> identifier();
+ JSRetainPtr<JSStringRef> traits();
+ int elementTextPosition();
+ int elementTextLength();
+ JSRetainPtr<JSStringRef> stringForSelection();
+ JSValueRef elementsForRange(unsigned location, unsigned length);
+ void increaseTextSelection();
+ void decreaseTextSelection();
+ PassRefPtr<AccessibilityUIElement> linkedElement();
+ PassRefPtr<AccessibilityUIElement> headerElementAtIndex(unsigned index);
+ void assistiveTechnologySimulatedFocus();
+
</ins><span class="cx"> private:
</span><span class="cx"> AccessibilityUIElement(PlatformUIElement);
</span><span class="cx"> AccessibilityUIElement(const AccessibilityUIElement&);
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleBindingsAccessibilityUIElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl (185608 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl        2015-06-16 20:51:04 UTC (rev 185608)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -201,7 +201,21 @@
</span><span class="cx"> readonly attribute DOMString mathPrescriptsDescription;
</span><span class="cx">
</span><span class="cx"> readonly attribute DOMString pathDescription;
</span><del>-
</del><ins>+
+ // iOS specific accessibility methods.
+ readonly attribute DOMString identifier;
+ readonly attribute DOMString traits;
+ readonly attribute int elementTextPosition;
+ readonly attribute int elementTextLength;
+ readonly attribute DOMString stringForSelection;
+ object elementsForRange(unsigned long location, unsigned long length);
+ void increaseTextSelection();
+ void decreaseTextSelection();
+ AccessibilityUIElement linkedElement();
+ AccessibilityUIElement headerElementAtIndex(unsigned long index);
+ // This will simulate the accessibilityDidBecomeFocused API in UIKit.
+ void assistiveTechnologySimulatedFocus();
+
</ins><span class="cx"> // Notification support.
</span><span class="cx"> boolean addNotificationListener(object callbackFunction);
</span><span class="cx"> boolean removeNotificationListener();
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleiosAccessibilityControllerIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityControllerIOS.mm (185608 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityControllerIOS.mm        2015-06-16 20:51:04 UTC (rev 185608)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityControllerIOS.mm        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -68,7 +68,18 @@
</span><span class="cx">
</span><span class="cx"> static id findAccessibleObjectById(id obj, NSString *idAttribute)
</span><span class="cx"> {
</span><del>- return 0;
</del><ins>+ id objIdAttribute = [obj accessibilityIdentifier];
+ if ([objIdAttribute isKindOfClass:[NSString class]] && [objIdAttribute isEqualToString:idAttribute])
+ return obj;
+
+ NSUInteger childrenCount = [obj accessibilityElementCount];
+ for (NSUInteger i = 0; i < childrenCount; ++i) {
+ id result = findAccessibleObjectById([obj accessibilityElementAtIndex:i], idAttribute);
+ if (result)
+ return result;
+ }
+
+ return nil;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> PassRefPtr<AccessibilityUIElement> AccessibilityController::accessibleElementById(JSStringRef idAttribute)
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleiosAccessibilityUIElementIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm (185608 => 185609)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm        2015-06-16 20:51:04 UTC (rev 185608)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm        2015-06-16 20:58:39 UTC (rev 185609)
</span><span class="lines">@@ -28,10 +28,85 @@
</span><span class="cx"> #import "AccessibilityUIElement.h"
</span><span class="cx"> #import "InjectedBundle.h"
</span><span class="cx"> #import "InjectedBundlePage.h"
</span><ins>+#import <Foundation/Foundation.h>
+#import <JavaScriptCore/JSRetainPtr.h>
+#import <JavaScriptCore/JSStringRef.h>
+#import <JavaScriptCore/JSStringRefCF.h>
</ins><span class="cx"> #import <UIKit/UIKit.h>
</span><ins>+#import <WebCore/TextGranularity.h>
+#import <WebKit/WKBundleFrame.h>
+#import <wtf/RetainPtr.h>
+#import <wtf/Vector.h>
</ins><span class="cx">
</span><ins>+typedef void (*AXPostedNotificationCallback)(id element, NSString* notification, void* context);
+
+@interface NSObject (UIAccessibilityHidden)
+- (id)accessibilityHitTest:(CGPoint)point;
+- (id)accessibilityLinkedElement;
+- (NSRange)accessibilityColumnRange;
+- (NSRange)accessibilityRowRange;
+- (id)accessibilityElementForRow:(NSInteger)row andColumn:(NSInteger)column;
+- (NSURL *)accessibilityURL;
+- (NSArray *)accessibilityHeaderElements;
+- (NSString *)accessibilityPlaceholderValue;
+- (NSString *)stringForRange:(NSRange)range;
+- (NSArray *)elementsForRange:(NSRange)range;
+- (NSString *)selectionRangeString;
+- (CGPoint)accessibilityClickPoint;
+- (void)accessibilityModifySelection:(WebCore::TextGranularity)granularity increase:(BOOL)increase;
+- (void)accessibilitySetPostedNotificationCallback:(AXPostedNotificationCallback)function withContext:(void*)context;
+- (CGFloat)_accessibilityMinValue;
+- (CGFloat)_accessibilityMaxValue;
+- (void)_accessibilitySetValue:(NSString *)value;
+- (void)_accessibilityActivate;
+- (UIAccessibilityTraits)_axSelectedTrait;
+@end
+
+@interface NSObject (WebAccessibilityObjectWrapperPrivate)
+- (CGPathRef)_accessibilityPath;
+@end
+
+@implementation NSString (JSStringRefAdditions)
+
++ (NSString *)stringWithJSStringRef:(JSStringRef)jsStringRef
+{
+ if (!jsStringRef)
+ return nil;
+
+ CFStringRef cfString = JSStringCopyCFString(kCFAllocatorDefault, jsStringRef);
+ return [(NSString *)cfString autorelease];
+}
+
+- (JSStringRef)createJSStringRef
+{
+ return JSStringCreateWithCFString((CFStringRef)self);
+}
+
+@end
+
</ins><span class="cx"> namespace WTR {
</span><span class="cx">
</span><ins>+static void convertNSArrayToVector(NSArray* array, Vector<RefPtr<AccessibilityUIElement> >& elementVector)
+{
+ NSUInteger count = [array count];
+ for (NSUInteger i = 0; i < count; ++i)
+ elementVector.append(AccessibilityUIElement::create([array objectAtIndex:i]));
+}
+
+static JSStringRef concatenateAttributeAndValue(NSString* attribute, NSString* value)
+{
+ Vector<UniChar> buffer([attribute length]);
+ [attribute getCharacters:buffer.data()];
+ buffer.append(':');
+ buffer.append(' ');
+
+ Vector<UniChar> valueBuffer([value length]);
+ [value getCharacters:valueBuffer.data()];
+ buffer.appendVector(valueBuffer);
+
+ return JSStringCreateWithCharacters(buffer.data(), buffer.size());
+}
+
</ins><span class="cx"> AccessibilityUIElement::AccessibilityUIElement(PlatformUIElement element)
</span><span class="cx"> : m_element(element)
</span><span class="cx"> {
</span><span class="lines">@@ -58,6 +133,24 @@
</span><span class="cx"> return platformUIElement() == otherElement->platformUIElement();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::headerElementAtIndex(unsigned index)
+{
+ NSArray *headers = [m_element accessibilityHeaderElements];
+ if (index < [headers count])
+ return AccessibilityUIElement::create([headers objectAtIndex:index]);
+
+ return nullptr;
+}
+
+PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::linkedElement()
+{
+ id linkedElement = [m_element accessibilityLinkedElement];
+ if (linkedElement)
+ return AccessibilityUIElement::create(linkedElement);
+
+ return nullptr;
+}
+
</ins><span class="cx"> void AccessibilityUIElement::getLinkedUIElements(Vector<RefPtr<AccessibilityUIElement> >& elementVector)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="lines">@@ -90,9 +183,35 @@
</span><span class="cx">
</span><span class="cx"> PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::elementAtPoint(int x, int y)
</span><span class="cx"> {
</span><del>- return 0;
</del><ins>+ id element = [m_element accessibilityHitTest:CGPointMake(x, y)];
+ if (!element)
+ return nil;
+
+ return AccessibilityUIElement::create(element);
</ins><span class="cx"> }
</span><ins>+
+static JSValueRef convertElementsToObjectArray(JSContextRef context, Vector<RefPtr<AccessibilityUIElement>>& elements)
+{
+ JSValueRef arrayResult = JSObjectMakeArray(context, 0, nullptr, nullptr);
+ JSObjectRef arrayObj = JSValueToObject(context, arrayResult, nullptr);
+ size_t elementCount = elements.size();
+ for (size_t i = 0; i < elementCount; ++i)
+ JSObjectSetPropertyAtIndex(context, arrayObj, i, JSObjectMake(context, elements[i]->wrapperClass(), elements[i].get()), nullptr);
+
+ return arrayResult;
+}
</ins><span class="cx">
</span><ins>+JSValueRef AccessibilityUIElement::elementsForRange(unsigned location, unsigned length)
+{
+ WKBundleFrameRef mainFrame = WKBundlePageGetMainFrame(InjectedBundle::singleton().page()->page());
+ JSContextRef context = WKBundleFrameGetJavaScriptContext(mainFrame);
+
+ NSArray *elementsForRange = [m_element elementsForRange:NSMakeRange(location, length)];
+ Vector<RefPtr<AccessibilityUIElement>> elements;
+ convertNSArrayToVector(elementsForRange, elements);
+ return convertElementsToObjectArray(context, elements);
+}
+
</ins><span class="cx"> unsigned AccessibilityUIElement::indexOfChild(AccessibilityUIElement* element)
</span><span class="cx"> {
</span><span class="cx"> return 0;
</span><span class="lines">@@ -190,6 +309,9 @@
</span><span class="cx">
</span><span class="cx"> JSRetainPtr<JSStringRef> AccessibilityUIElement::stringAttributeValue(JSStringRef attribute)
</span><span class="cx"> {
</span><ins>+ if (JSStringIsEqualToUTF8CString(attribute, "AXPlaceholderValue"))
+ return [[m_element accessibilityPlaceholderValue] createJSStringRef];
+
</ins><span class="cx"> return JSStringCreateWithCharacters(0, 0);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -266,7 +388,7 @@
</span><span class="cx">
</span><span class="cx"> JSRetainPtr<JSStringRef> AccessibilityUIElement::description()
</span><span class="cx"> {
</span><del>- return JSStringCreateWithCharacters(0, 0);
</del><ins>+ return concatenateAttributeAndValue(@"AXLabel", [m_element accessibilityLabel]);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> JSRetainPtr<JSStringRef> AccessibilityUIElement::orientation() const
</span><span class="lines">@@ -276,7 +398,7 @@
</span><span class="cx">
</span><span class="cx"> JSRetainPtr<JSStringRef> AccessibilityUIElement::stringValue()
</span><span class="cx"> {
</span><del>- return JSStringCreateWithCharacters(0, 0);
</del><ins>+ return concatenateAttributeAndValue(@"AXValue", [m_element accessibilityValue]);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> JSRetainPtr<JSStringRef> AccessibilityUIElement::language()
</span><span class="lines">@@ -286,7 +408,7 @@
</span><span class="cx">
</span><span class="cx"> JSRetainPtr<JSStringRef> AccessibilityUIElement::helpText() const
</span><span class="cx"> {
</span><del>- return JSStringCreateWithCharacters(0, 0);
</del><ins>+ return concatenateAttributeAndValue(@"AXHint", [m_element accessibilityHint]);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> double AccessibilityUIElement::x()
</span><span class="lines">@@ -315,12 +437,12 @@
</span><span class="cx">
</span><span class="cx"> double AccessibilityUIElement::clickPointX()
</span><span class="cx"> {
</span><del>- return 0;
</del><ins>+ return [m_element accessibilityClickPoint].x;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> double AccessibilityUIElement::clickPointY()
</span><span class="cx"> {
</span><del>- return 0;
</del><ins>+ return [m_element accessibilityClickPoint].y;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> double AccessibilityUIElement::intValue() const
</span><span class="lines">@@ -330,14 +452,15 @@
</span><span class="cx">
</span><span class="cx"> double AccessibilityUIElement::minValue()
</span><span class="cx"> {
</span><del>- return 0;
</del><ins>+ return [m_element _accessibilityMinValue];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> double AccessibilityUIElement::maxValue()
</span><span class="cx"> {
</span><del>- return 0;
</del><ins>+ return [m_element _accessibilityMaxValue];
</ins><span class="cx"> }
</span><span class="cx">
</span><ins>+
</ins><span class="cx"> JSRetainPtr<JSStringRef> AccessibilityUIElement::valueDescription()
</span><span class="cx"> {
</span><span class="cx"> return JSStringCreateWithCharacters(0, 0);
</span><span class="lines">@@ -382,7 +505,7 @@
</span><span class="cx"> bool AccessibilityUIElement::isSelected() const
</span><span class="cx"> {
</span><span class="cx"> UIAccessibilityTraits traits = [m_element accessibilityTraits];
</span><del>- return (traits & UIAccessibilityTraitSelected);
</del><ins>+ return (traits & [m_element _axSelectedTrait]) == [m_element _axSelectedTrait];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool AccessibilityUIElement::isSelectedOptionActive() const
</span><span class="lines">@@ -455,7 +578,11 @@
</span><span class="cx">
</span><span class="cx"> JSRetainPtr<JSStringRef> AccessibilityUIElement::stringForRange(unsigned location, unsigned length)
</span><span class="cx"> {
</span><del>- return JSStringCreateWithCharacters(0, 0);
</del><ins>+ NSString *stringForRange = [m_element stringForRange:NSMakeRange(location, length)];
+ if (!stringForRange)
+ return nullptr;
+
+ return [stringForRange createJSStringRef];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> JSRetainPtr<JSStringRef> AccessibilityUIElement::attributedStringForRange(unsigned location, unsigned length)
</span><span class="lines">@@ -513,6 +640,16 @@
</span><span class="cx"> return JSStringCreateWithCharacters(0, 0);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+JSRetainPtr<JSStringRef> AccessibilityUIElement::traits()
+{
+ return concatenateAttributeAndValue(@"AXTraits", [NSString stringWithFormat:@"%qu", [m_element accessibilityTraits]]);
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::identifier()
+{
+ return concatenateAttributeAndValue(@"AXIdentifier", [m_element accessibilityIdentifier]);
+}
+
</ins><span class="cx"> int AccessibilityUIElement::rowCount()
</span><span class="cx"> {
</span><span class="cx"> return -1;
</span><span class="lines">@@ -530,17 +667,21 @@
</span><span class="cx">
</span><span class="cx"> JSRetainPtr<JSStringRef> AccessibilityUIElement::rowIndexRange()
</span><span class="cx"> {
</span><del>- return JSStringCreateWithCharacters(0, 0);
</del><ins>+ NSRange range = [m_element accessibilityRowRange];
+ NSMutableString* rangeDescription = [NSMutableString stringWithFormat:@"{%lu, %lu}", (unsigned long)range.location, (unsigned long)range.length];
+ return [rangeDescription createJSStringRef];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> JSRetainPtr<JSStringRef> AccessibilityUIElement::columnIndexRange()
</span><span class="cx"> {
</span><del>- return JSStringCreateWithCharacters(0, 0);
</del><ins>+ NSRange range = [m_element accessibilityColumnRange];
+ NSMutableString* rangeDescription = [NSMutableString stringWithFormat:@"{%lu, %lu}", (unsigned long)range.location, (unsigned long)range.length];
+ return [rangeDescription createJSStringRef];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::cellForColumnAndRow(unsigned col, unsigned row)
</span><span class="cx"> {
</span><del>- return 0;
</del><ins>+ return AccessibilityUIElement::create([m_element accessibilityElementForRow:row andColumn:col]);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::horizontalScrollbar() const
</span><span class="lines">@@ -610,19 +751,75 @@
</span><span class="cx"> return JSStringCreateWithCharacters(0, 0);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void AccessibilityUIElement::assistiveTechnologySimulatedFocus()
+{
+ [m_element accessibilityElementDidBecomeFocused];
+}
+
+void AccessibilityUIElement::increaseTextSelection()
+{
+ [m_element accessibilityModifySelection:WebCore::CharacterGranularity increase:YES];
+}
+
+void AccessibilityUIElement::decreaseTextSelection()
+{
+ [m_element accessibilityModifySelection:WebCore::CharacterGranularity increase:NO];
+}
+
+JSRetainPtr<JSStringRef> AccessibilityUIElement::stringForSelection()
+{
+ NSString *stringForRange = [m_element selectionRangeString];
+ if (!stringForRange)
+ return nullptr;
+
+ return [stringForRange createJSStringRef];
+}
+
+int AccessibilityUIElement::elementTextPosition()
+{
+ NSRange range = [[m_element valueForKey:@"elementTextRange"] rangeValue];
+ return range.location;
+}
+
+int AccessibilityUIElement::elementTextLength()
+{
+ NSRange range = [[m_element valueForKey:@"elementTextRange"] rangeValue];
+ return range.length;
+}
+
</ins><span class="cx"> JSRetainPtr<JSStringRef> AccessibilityUIElement::url()
</span><span class="cx"> {
</span><del>- return JSStringCreateWithCharacters(0, 0);
</del><ins>+ NSURL *url = [m_element accessibilityURL];
+ return [[url absoluteString] createJSStringRef];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool AccessibilityUIElement::addNotificationListener(JSValueRef functionCallback)
</span><span class="cx"> {
</span><del>- return false;
</del><ins>+ if (!functionCallback)
+ return false;
+
+ // iOS programmers should not be adding more than one notification listener per element.
+ // Other platforms may be different.
+ if (m_notificationHandler)
+ return false;
+ m_notificationHandler = [[AccessibilityNotificationHandler alloc] init];
+ [m_notificationHandler setPlatformElement:platformUIElement()];
+ [m_notificationHandler setCallback:functionCallback];
+ [m_notificationHandler startObserving];
+
+ return true;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool AccessibilityUIElement::removeNotificationListener()
</span><span class="cx"> {
</span><del>- return false;
</del><ins>+ // iOS programmers should not be trying to remove a listener that's already removed.
+ ASSERT(m_notificationHandler);
+
+ [m_notificationHandler stopObserving];
+ [m_notificationHandler release];
+ m_notificationHandler = nil;
+
+ return true;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool AccessibilityUIElement::isFocusable() const
</span><span class="lines">@@ -662,7 +859,8 @@
</span><span class="cx">
</span><span class="cx"> bool AccessibilityUIElement::isIgnored() const
</span><span class="cx"> {
</span><del>- return false;
</del><ins>+ bool isAccessibilityElement = [m_element isAccessibilityElement];
+ return !isAccessibilityElement;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool AccessibilityUIElement::hasPopup() const
</span><span class="lines">@@ -796,9 +994,36 @@
</span><span class="cx"> return 0;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+static void _CGPathEnumerationIteration(void *info, const CGPathElement *element)
+{
+ NSMutableString *result = (NSMutableString *)info;
+ switch (element->type) {
+ case kCGPathElementMoveToPoint:
+ [result appendString:@"\tMove to point\n"];
+ break;
+ case kCGPathElementAddLineToPoint:
+ [result appendString:@"\tLine to\n"];
+ break;
+ case kCGPathElementAddQuadCurveToPoint:
+ [result appendString:@"\tQuad curve to\n"];
+ break;
+ case kCGPathElementAddCurveToPoint:
+ [result appendString:@"\tCurve to\n"];
+ break;
+ case kCGPathElementCloseSubpath:
+ [result appendString:@"\tClose\n"];
+ break;
+ }
+}
+
</ins><span class="cx"> JSRetainPtr<JSStringRef> AccessibilityUIElement::pathDescription() const
</span><span class="cx"> {
</span><del>- return 0;
</del><ins>+ NSMutableString *result = [NSMutableString stringWithString:@"\nStart Path\n"];
+ CGPathRef pathRef = [m_element _accessibilityPath];
+
+ CGPathApply(pathRef, result, _CGPathEnumerationIteration);
+
+ return [result createJSStringRef];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> JSRetainPtr<JSStringRef> AccessibilityUIElement::supportedActions() const
</span></span></pre>
</div>
</div>
</body>
</html>