<!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  &lt;cfleizach@apple.com&gt;
+
+        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  &lt;bfulgham@apple.com&gt;
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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"> &lt;/head&gt;
</span><span class="cx"> &lt;body id=&quot;body&quot;&gt;
</span><span class="cx"> 
</span><ins>+&lt;div id=&quot;container&quot; role=&quot;group&quot;&gt;
+
</ins><span class="cx"> &lt;img src=&quot;resources/cake.png&quot; usemap=&quot;#map&quot; id=&quot;backImg&quot; alt=&quot;&quot; width=&quot;225&quot; height=&quot;206&quot;&gt;
</span><span class="cx"> 
</span><del>-&lt;map name=&quot;map&quot; aria-labelledby=&quot;papercolor&quot;&gt;
</del><ins>+&lt;map id=&quot;link&quot; name=&quot;map&quot; aria-labelledby=&quot;papercolor&quot;&gt;
</ins><span class="cx">         &lt;area shape=&quot;rect&quot; tabindex=&quot;0&quot; alt=&quot;yellow&quot; href=&quot;#&quot; coords=&quot;19,28,46,52&quot; id=&quot;yellow&quot;&gt;
</span><span class="cx">         &lt;area shape=&quot;rect&quot; tabindex=&quot;0&quot; alt=&quot;orange&quot; href=&quot;#&quot; coords=&quot;58,28,85,52&quot; id=&quot;orange&quot;&gt;
</span><span class="cx"> &lt;/map&gt;
</span><ins>+&lt;/div&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
</span><span class="cx"> &lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
</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(&quot;body&quot;).focus();
-        var link = accessibilityController.focusedElement.childAtIndex(0).childAtIndex(0);
-        shouldBe(&quot;link.iphoneLabel&quot;, &quot;'AXLabel: yellow'&quot;);
</del><ins>+        var link = accessibilityController.accessibleElementById(&quot;container&quot;).childAtIndex(0);
+        shouldBe(&quot;link.description&quot;, &quot;'AXLabel: yellow'&quot;);
</ins><span class="cx"> 
</span><span class="cx">         document.getElementById(&quot;backImg&quot;).parentNode.removeChild(document.getElementById(&quot;backImg&quot;));
</span><span class="cx"> 
</span><span class="cx">         // Should not crash here when asking for parentElement (even though it was removed).
</span><del>-        shouldBe(&quot;link.parentElement().iphoneLabel&quot;, &quot;'AXLabel: '&quot;);
</del><ins>+        shouldBeTrue(&quot;link.parentElement() == null || link.parentElement().isValid&quot;);
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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(&quot;link&quot;).focus();
</span><span class="cx">         var link = accessibilityController.focusedElement;
</span><del>-        shouldBe(&quot;link.iphoneHint&quot;, &quot;'AXHint: This is a hint'&quot;);
</del><ins>+        shouldBe(&quot;link.helpText&quot;, &quot;'AXHint: This is a hint'&quot;);
</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(&quot;button1&quot;);
</span><span class="cx">         debug(&quot;Button 1 should expose alternative text only.&quot;);
</span><del>-        shouldBe(&quot;button1.iphoneLabel&quot;, &quot;'AXLabel: PLAY'&quot;);
</del><ins>+        shouldBe(&quot;button1.description&quot;, &quot;'AXLabel: PLAY'&quot;);
</ins><span class="cx"> 
</span><span class="cx">         var button2 = accessibilityController.accessibleElementById(&quot;button2&quot;);
</span><span class="cx">         debug(&quot;Button 2 should expose internal text only.&quot;);
</span><del>-        shouldBe(&quot;button2.iphoneLabel&quot;, &quot;'AXLabel: 1'&quot;);
</del><ins>+        shouldBe(&quot;button2.description&quot;, &quot;'AXLabel: 1'&quot;);
</ins><span class="cx"> 
</span><span class="cx">         var text1 = accessibilityController.accessibleElementById(&quot;text1&quot;);
</span><span class="cx">         debug(&quot;Text 1 should rely on the stringValue() in the label field.&quot;);
</span><del>-        shouldBe(&quot;text1.iphoneLabel&quot;, &quot;'AXLabel: text1'&quot;);
</del><ins>+        shouldBe(&quot;text1.description&quot;, &quot;'AXLabel: text1'&quot;);
</ins><span class="cx"> 
</span><span class="cx">         var link1 = accessibilityController.accessibleElementById(&quot;link1&quot;);
</span><span class="cx">         debug(&quot;Link1 should combine the title field and the aria-label field.&quot;);
</span><del>-        shouldBe(&quot;link1.iphoneLabel&quot;, &quot;'AXLabel: link1, link1-title'&quot;);
</del><ins>+        shouldBe(&quot;link1.description&quot;, &quot;'AXLabel: link1, link1-title'&quot;);
</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(&quot;This test thats disabled and aria-disabled change the traits returned.&quot;)')
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+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"> &lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
</span><span class="cx"> &lt;html&gt;
</span><span class="cx"> &lt;head&gt;
</span><del>-&lt;link rel=&quot;stylesheet&quot; href=&quot;../../../fast/js/resources/js-test-style.css&quot;&gt;
-&lt;script src=&quot;../../../fast/js/resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script&gt;
</span><span class="cx"> var successfullyParsed = false;
</span><del>-if (window.testRunner)
-  testRunner.dumpAsText();
</del><span class="cx"> &lt;/script&gt;
</span><span class="cx"> &lt;/head&gt;
</span><span class="cx"> &lt;body&gt;
</span><span class="lines">@@ -32,11 +29,11 @@
</span><span class="cx"> 
</span><span class="cx">        document.getElementById(&quot;button2&quot;).focus();
</span><span class="cx">        var btn2 = accessibilityController.focusedElement;
</span><del>-       shouldBe(&quot;btn1.iphoneTraits != btn2.iphoneTraits&quot;, &quot;true&quot;);
</del><ins>+       shouldBe(&quot;btn1.traits != btn2.traits&quot;, &quot;true&quot;);
</ins><span class="cx"> 
</span><span class="cx">        document.getElementById(&quot;button3&quot;).focus();
</span><span class="cx">        var btn3 = accessibilityController.focusedElement;
</span><del>-       shouldBe(&quot;btn2.iphoneTraits == btn3.iphoneTraits&quot;, &quot;true&quot;);
</del><ins>+       shouldBe(&quot;btn2.traits == btn3.traits&quot;, &quot;true&quot;);
</ins><span class="cx"> 
</span><span class="cx">        document.getElementById(&quot;select1&quot;).focus();
</span><span class="cx">        var select1 = accessibilityController.focusedElement;
</span><span class="lines">@@ -44,13 +41,13 @@
</span><span class="cx">        document.getElementById(&quot;select2&quot;).focus();
</span><span class="cx">        var select2 = accessibilityController.focusedElement;
</span><span class="cx"> 
</span><del>-       shouldBe(&quot;select1.iphoneTraits != select2.iphoneTraits&quot;, &quot;true&quot;);
</del><ins>+       shouldBe(&quot;select1.traits != select2.traits&quot;, &quot;true&quot;);
</ins><span class="cx">    }
</span><span class="cx"> 
</span><span class="cx">    successfullyParsed = true;
</span><span class="cx"> &lt;/script&gt;
</span><span class="cx"> 
</span><del>-&lt;script src=&quot;../../../fast/js/resources/js-test-post.js&quot;&gt;&lt;/script&gt;
</del><ins>+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;/body&gt;
</span><span class="cx"> &lt;/html&gt;
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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(&quot;textInsideLink.iphoneLabel&quot;, &quot;'AXLabel: link1'&quot;);
</del><ins>+        var textInsideLink = accessibilityController.accessibleElementById(&quot;link1&quot;).childAtIndex(0);
+        shouldBe(&quot;textInsideLink.description&quot;, &quot;'AXLabel: link1'&quot;);
</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(&quot;textInsideHeading.iphoneLabel&quot;, &quot;'AXLabel: heading1'&quot;);
</del><ins>+        var textInsideHeading = accessibilityController.accessibleElementById(&quot;heading1&quot;).childAtIndex(0);
+        shouldBe(&quot;textInsideHeading.description&quot;, &quot;'AXLabel: heading1'&quot;);
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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(&quot;file-input&quot;);
</span><del>-        shouldBe(&quot;button1.iphoneLabel&quot;, &quot;'AXLabel: Choose File'&quot;);
-        shouldBe(&quot;button1.iphoneValue&quot;, &quot;'AXValue: no file selected'&quot;);
</del><ins>+        shouldBe(&quot;button1.description&quot;, &quot;'AXLabel: Choose File'&quot;);
+        shouldBe(&quot;button1.stringValue&quot;, &quot;'AXValue: no file selected'&quot;);
</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 == &quot;AXFocusChanged&quot;) {
</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(&quot;addedNotification&quot;, &quot;true&quot;);
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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(&quot;button1&quot;).focus();
</span><span class="cx">         var button1 = accessibilityController.focusedElement;
</span><del>-        shouldBe(&quot;button1.iphoneIdentifier&quot;, &quot;'AXIdentifier: button1'&quot;);
</del><ins>+        shouldBe(&quot;button1.identifier&quot;, &quot;'AXIdentifier: button1'&quot;);
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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(&quot;name&quot;).focus();
</span><span class="cx">         var link = accessibilityController.focusedElement;
</span><del>-        shouldBe(&quot;link.linkedElement().iphoneLabel&quot;, &quot;'AXLabel: Linked Element'&quot;);
</del><ins>+        shouldBe(&quot;link.linkedElement().description&quot;, &quot;'AXLabel: Linked Element'&quot;);
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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(&quot;main&quot;);
</span><del>-        shouldBe(&quot;main.iphoneLabel&quot;, &quot;'AXLabel: main'&quot;);
</del><ins>+        shouldBe(&quot;main.description&quot;, &quot;'AXLabel: main'&quot;);
</ins><span class="cx"> 
</span><span class="cx">         var banner = accessibilityController.accessibleElementById(&quot;banner&quot;);
</span><del>-        shouldBe(&quot;banner.iphoneLabel&quot;, &quot;'AXLabel: banner'&quot;);
</del><ins>+        shouldBe(&quot;banner.description&quot;, &quot;'AXLabel: banner'&quot;);
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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"> &lt;/head&gt;
</span><span class="cx"> &lt;body&gt;
</span><span class="cx"> 
</span><del>-&lt;a href=&quot;store.html&quot;&gt;
</del><ins>+&lt;a href=&quot;store.html&quot; id=&quot;link&quot;&gt;
</ins><span class="cx"> &lt;span&gt;
</span><span class="cx"> &lt;img src=&quot;image.gif&quot; width=100 height=100 alt=&quot;&quot;&gt;
</span><span class="cx"> &lt;strong&gt;iPhone&lt;/strong&gt;From $99&lt;/span&gt;                                                     
</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(&quot;obj.iphoneIsElement&quot;, &quot;true&quot;);
-        shouldBe(&quot;obj.iphoneLabel&quot;, &quot;'AXLabel:  iPhoneFrom $99'&quot;);
</del><ins>+        var obj = accessibilityController.accessibleElementById(&quot;link&quot;);
+        shouldBe(&quot;obj.isIgnored&quot;, &quot;false&quot;);
+        shouldBe(&quot;obj.description&quot;, &quot;'AXLabel: iPhone From $99'&quot;);
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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"> &lt;/head&gt;
</span><span class="cx"> &lt;body&gt;
</span><span class="cx"> 
</span><del>-&lt;a href=&quot;store.html&quot;&gt;
</del><ins>+&lt;a href=&quot;store.html&quot; id=&quot;link&quot;&gt;
</ins><span class="cx"> &lt;img src=&quot;image.gif&quot; width=100 height=100 alt=&quot;Hello World&quot;&gt;
</span><span class="cx"> &lt;/a&gt;
</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(&quot;obj.iphoneIsElement&quot;, &quot;true&quot;);
-        shouldBe(&quot;obj.iphoneLabel&quot;, &quot;'AXLabel: Hello World'&quot;);
</del><ins>+        var obj = accessibilityController.accessibleElementById(&quot;link&quot;);
+        shouldBeFalse(&quot;obj.isIgnored&quot;);
+        shouldBe(&quot;obj.description&quot;, &quot;'AXLabel: Hello World'&quot;);
</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(&quot;group&quot;).focus();
</span><span class="cx">        var group = accessibilityController.focusedElement;
</span><span class="cx">        shouldBe(&quot;group.childrenCount&quot;, &quot;5&quot;);
</span><del>-       shouldBe(&quot;group.childAtIndex(0).iphoneLabel&quot;, &quot;'AXLabel: Raman scattering study of the'&quot;);
-       shouldBe(&quot;group.childAtIndex(1).iphoneLabel&quot;, &quot;'AXLabel:  F e sub 1  minus x, end subscript. C o sub x, S b sub 2, math'&quot;);
-       shouldBe(&quot;group.childAtIndex(2).iphoneLabel&quot;, &quot;'AXLabel: and'&quot;);
-       shouldBe(&quot;group.childAtIndex(3).iphoneLabel&quot;, &quot;'AXLabel:   open, 0  less than or equal to x  less than or equal to 1,  close, math'&quot;);
-       shouldBe(&quot;group.childAtIndex(4).iphoneLabel&quot;, &quot;'AXLabel: single crystals.'&quot;);
</del><ins>+       shouldBe(&quot;group.childAtIndex(0).description&quot;, &quot;'AXLabel: Raman scattering study of the'&quot;);
+       shouldBe(&quot;group.childAtIndex(1).description&quot;, &quot;'AXLabel:  F e sub 1  minus x, end subscript. C o sub x, S b sub 2, math'&quot;);
+       shouldBe(&quot;group.childAtIndex(2).description&quot;, &quot;'AXLabel: and'&quot;);
+       shouldBe(&quot;group.childAtIndex(3).description&quot;, &quot;'AXLabel:   open, 0  less than or equal to x  less than or equal to 1,  close, math'&quot;);
+       shouldBe(&quot;group.childAtIndex(4).description&quot;, &quot;'AXLabel: single crystals.'&quot;);
</ins><span class="cx"> 
</span><del>-       shouldBeTrue(&quot;group.childAtIndex(0).iphoneIsElement&quot;);
-       shouldBeTrue(&quot;group.childAtIndex(1).iphoneIsElement&quot;);
-       shouldBeTrue(&quot;group.childAtIndex(2).iphoneIsElement&quot;);
-       shouldBeTrue(&quot;group.childAtIndex(3).iphoneIsElement&quot;);
-       shouldBeTrue(&quot;group.childAtIndex(4).iphoneIsElement&quot;);
</del><ins>+       shouldBeFalse(&quot;group.childAtIndex(0).isIgnored&quot;);
+       shouldBeFalse(&quot;group.childAtIndex(1).isIgnored&quot;);
+       shouldBeFalse(&quot;group.childAtIndex(2).isIgnored&quot;);
+       shouldBeFalse(&quot;group.childAtIndex(3).isIgnored&quot;);
+       shouldBeFalse(&quot;group.childAtIndex(4).isIgnored&quot;);
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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(&quot;check1&quot;).focus();
</span><del>-        shouldBe(&quot;accessibilityController.focusedElement.iphoneValue&quot;, &quot;'AXValue: 0'&quot;);
</del><ins>+        shouldBe(&quot;accessibilityController.focusedElement.stringValue&quot;, &quot;'AXValue: 0'&quot;);
</ins><span class="cx"> 
</span><span class="cx">         document.getElementById(&quot;check2&quot;).focus();
</span><del>-        shouldBe(&quot;accessibilityController.focusedElement.iphoneValue&quot;, &quot;'AXValue: 1'&quot;);
</del><ins>+        shouldBe(&quot;accessibilityController.focusedElement.stringValue&quot;, &quot;'AXValue: 1'&quot;);
</ins><span class="cx"> 
</span><span class="cx">         document.getElementById(&quot;check3&quot;).focus();
</span><del>-        shouldBe(&quot;accessibilityController.focusedElement.iphoneValue&quot;, &quot;'AXValue: 2'&quot;);
</del><ins>+        shouldBe(&quot;accessibilityController.focusedElement.stringValue&quot;, &quot;'AXValue: 2'&quot;);
</ins><span class="cx"> 
</span><span class="cx">         document.getElementById(&quot;check4&quot;).focus();
</span><del>-        shouldBe(&quot;accessibilityController.focusedElement.iphoneValue&quot;, &quot;'AXValue: 1'&quot;);
</del><ins>+        shouldBe(&quot;accessibilityController.focusedElement.stringValue&quot;, &quot;'AXValue: 1'&quot;);
</ins><span class="cx"> 
</span><span class="cx">         document.getElementById(&quot;check5&quot;).focus();
</span><del>-        shouldBe(&quot;accessibilityController.focusedElement.iphoneValue&quot;, &quot;'AXValue: 0'&quot;);
</del><ins>+        shouldBe(&quot;accessibilityController.focusedElement.stringValue&quot;, &quot;'AXValue: 0'&quot;);
</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"> &lt;/head&gt;
</span><span class="cx"> &lt;body&gt;
</span><span class="cx"> 
</span><del>-&lt;a href=&quot;#&quot; title=&quot;LINK&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;empty.png&quot; width=100 height=100&gt;&lt;/a&gt;
</del><ins>+&lt;a id=&quot;link&quot; href=&quot;#&quot; title=&quot;LINK&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;empty.png&quot; width=100 height=100&gt;&lt;/a&gt;
</ins><span class="cx"> 
</span><del>-&lt;div role=&quot;heading&quot; aria-label=&quot;HEADING&quot; style='border:1px solid black; width:100px; height:100px;'&gt;&lt;/div&gt;
</del><ins>+&lt;div id=&quot;heading&quot; role=&quot;heading&quot; aria-label=&quot;HEADING&quot; style='border:1px solid black; width:100px; height:100px;'&gt;&lt;/div&gt;
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> &lt;script&gt;
</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 &amp;&amp; obj.iphoneLabel == &quot;AXLabel: LINK&quot;;
</del><ins>+        var obj = accessibilityController.accessibleElementById(&quot;link&quot;);
+        var succeeded = !obj.isIgnored &amp;&amp; obj.description == &quot;AXLabel: LINK&quot;;
</ins><span class="cx"> 
</span><span class="cx">         //  shouldBe(&quot;succeeded&quot;, &quot;true&quot;);
</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 &amp;&amp; obj.iphoneLabel == &quot;AXLabel: HEADING&quot;;
</del><ins>+        obj = accessibilityController.accessibleElementById(&quot;heading&quot;);
+        succeeded = !obj.isIgnored &amp;&amp; obj.description == &quot;AXLabel: HEADING&quot;;
</ins><span class="cx">         //  shouldBe(&quot;succeeded&quot;, &quot;true&quot;);
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+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"> &lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
</span><span class="cx"> &lt;html&gt;
</span><span class="cx"> &lt;head&gt;
</span><ins>+&lt;head&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script&gt;
</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"> &lt;/head&gt;
</span><span class="cx"> &lt;body&gt;
</span><span class="cx"> 
</span><del>-&lt;a href=&quot;#&quot;&gt;This is a link that &lt;b&gt;would&lt;/b&gt; normally appear &lt;b&gt;as multiple&lt;/b&gt; elements&lt;/a&gt;.
</del><ins>+&lt;a id=&quot;link&quot; href=&quot;#&quot;&gt;This is a link that &lt;b&gt;would&lt;/b&gt; normally appear &lt;b&gt;as multiple&lt;/b&gt; elements&lt;/a&gt;.
</ins><span class="cx"> 
</span><ins>+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
</ins><span class="cx"> &lt;script&gt;
</span><span class="cx"> 
</span><del>-    //description(&quot;This test makes sure that only one element is returned for the link object, instead of many elements that are all links.&quot;);
</del><ins>+    description(&quot;This test makes sure that only one element is returned for the link object, instead of many elements that are all links.&quot;);
</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 == &quot;AXLabel: This is a link that would normally appear as multiple elements&quot;;
-        //  shouldBe(&quot;succeeded&quot;, &quot;true&quot;);
-        var failed = false;
-        if (!succeeded) {
-            failed = true;
-        }
-
-        succeeded = obj.iphoneIsElement;
-        //  shouldBe(&quot;succeeded&quot;, &quot;true&quot;);
-
-        if (!succeeded) {
-           failed = true;
-        }
-
-        if (failed)
-            alert(&quot;Tests failed&quot;);
-        else
-           alert(&quot;Tests passed&quot;);
-
</del><ins>+        var obj = accessibilityController.accessibleElementById(&quot;link&quot;);
+        shouldBe(&quot;obj.description&quot;, &quot;'AXLabel: This is a link that would normally appear as multiple elements'&quot;);
+        shouldBeFalse(&quot;obj.isIgnored&quot;);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     successfullyParsed = true;
</span><span class="cx"> &lt;/script&gt;
</span><ins>+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> &lt;/body&gt;
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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 = &quot;AXValue: &quot;;
</span><del>-        shouldBe(&quot;pass.iphoneValue.length&quot;, &quot;password.length + axValue.length&quot;);
-        shouldBeFalse(&quot;pass.iphoneValue == password&quot;);
</del><ins>+        shouldBe(&quot;pass.stringValue.length&quot;, &quot;password.length + axValue.length&quot;);
+        shouldBeFalse(&quot;pass.stringValue == password&quot;);
</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(&quot;pass.stringAttributeValue('AXPlaceholderValue')&quot;, &quot;'place'&quot;);
</span><del>-        shouldBe(&quot;pass.iphoneValue&quot;, &quot;'AXValue: val'&quot;);
</del><ins>+        shouldBe(&quot;pass.stringValue&quot;, &quot;'AXValue: val'&quot;);
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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(&quot;pop&quot;).focus();
</span><span class="cx">         var pass = accessibilityController.focusedElement;
</span><span class="cx"> 
</span><del>-        shouldBe(&quot;pass.iphoneValue&quot;, &quot;'AXValue: item 1'&quot;);
-        shouldBe(&quot;pass.iphoneLabel&quot;, &quot;'AXLabel: '&quot;);
</del><ins>+        shouldBe(&quot;pass.stringValue&quot;, &quot;'AXValue: item 1'&quot;);
+        shouldBe(&quot;pass.description&quot;, &quot;'AXLabel: '&quot;);
</ins><span class="cx"> 
</span><span class="cx">         // Check the second popup button.
</span><span class="cx">         document.getElementById(&quot;pop2&quot;).focus();
</span><span class="cx">         pass = accessibilityController.focusedElement;
</span><span class="cx"> 
</span><del>-        shouldBe(&quot;pass.iphoneValue&quot;, &quot;'AXValue: item 2'&quot;);
-        shouldBe(&quot;pass.iphoneLabel&quot;, &quot;'AXLabel: Popup'&quot;);
</del><ins>+        shouldBe(&quot;pass.stringValue&quot;, &quot;'AXValue: item 2'&quot;);
+        shouldBe(&quot;pass.description&quot;, &quot;'AXLabel: Popup'&quot;);
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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(&quot;progressbar&quot;);
</span><del>-        shouldBe(&quot;button1.iphoneLabel&quot;, &quot;'AXLabel: Popularity'&quot;);
-        shouldBe(&quot;button1.iphoneValue&quot;, &quot;'AXValue: 5.00'&quot;);
-        shouldBeTrue(&quot;button1.iphoneIsElement&quot;);
</del><ins>+        shouldBe(&quot;button1.description&quot;, &quot;'AXLabel: Popularity'&quot;);
+        shouldBe(&quot;button1.stringValue&quot;, &quot;'AXValue: 5.00'&quot;);
+        shouldBeFalse(&quot;button1.isIgnored&quot;);
</ins><span class="cx">         shouldBe(&quot;button1.minValue&quot;, &quot;1&quot;);
</span><span class="cx">         shouldBe(&quot;button1.maxValue&quot;, &quot;12&quot;);
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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(&quot;checkbox.iphoneTraits != radio1.iphoneTraits&quot;);
</del><ins>+        shouldBeTrue(&quot;checkbox.traits != radio1.traits&quot;);
</ins><span class="cx"> 
</span><span class="cx">         // Verify the value of the checked radio item is correct.
</span><del>-        shouldBe(&quot;radio1.iphoneValue&quot;, &quot;'AXValue: 1'&quot;);
-        shouldBe(&quot;radio2.iphoneValue&quot;, &quot;'AXValue: 0'&quot;);
-        shouldBe(&quot;radio3.iphoneValue&quot;, &quot;'AXValue: 0'&quot;);
</del><ins>+        shouldBe(&quot;radio1.stringValue&quot;, &quot;'AXValue: 1'&quot;);
+        shouldBe(&quot;radio2.stringValue&quot;, &quot;'AXValue: 0'&quot;);
+        shouldBe(&quot;radio3.stringValue&quot;, &quot;'AXValue: 0'&quot;);
</ins><span class="cx"> 
</span><span class="cx">         // Verify the radio buttons are part of a group.
</span><span class="cx">         shouldBe(&quot;radio1.rowIndexRange()&quot;, &quot;'{0, 3}'&quot;);
</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(&quot;pass&quot;);
+        var textfield = accessibilityController.accessibleElementById(&quot;text&quot;);
+        var succeeded = passfield.traits != textfield.traits;
</ins><span class="cx"> 
</span><span class="cx">         //  shouldBe(&quot;succeeded&quot;, &quot;true&quot;);
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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(&quot;Verify that the SVG group is returned as an accessible element.&quot;);
</span><span class="cx">           var group1 = accessibilityController.accessibleElementById(&quot;group1&quot;);
</span><del>-          shouldBe(&quot;group1.iphoneLabel&quot;, &quot;'AXLabel: SVG TITLE 1'&quot;);
-          shouldBeTrue(&quot;group1.iphoneIsElement&quot;);
</del><ins>+          shouldBe(&quot;group1.description&quot;, &quot;'AXLabel: SVG TITLE 1'&quot;);
+          shouldBeFalse(&quot;group1.isIgnored&quot;);
</ins><span class="cx"> 
</span><span class="cx">           debug(&quot;\nVerify that you can hit-test to the SVG group.&quot;);
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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(&quot;fakeButton&quot;).focus();
</span><span class="cx">         var tab = accessibilityController.focusedElement;
</span><del>-        shouldBe(&quot;tab.iphoneLabel&quot;, &quot;'AXLabel: tab1'&quot;);
</del><ins>+        shouldBe(&quot;tab.description&quot;, &quot;'AXLabel: tab1'&quot;);
</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(&quot;realButton&quot;).focus();
</span><span class="cx">         var button = accessibilityController.focusedElement;
</span><span class="cx"> 
</span><del>-        shouldBeTrue(&quot;button.iphoneTraits != tab.iphoneTraits&quot;);
-        shouldBeTrue(&quot;tab.iphoneTraits != 0&quot;);
</del><ins>+        shouldBeTrue(&quot;button.traits != tab.traits&quot;);
+        shouldBeTrue(&quot;tab.traits != 0&quot;);
</ins><span class="cx"> 
</span><span class="cx">         shouldBeTrue(&quot;tab.isSelected&quot;);
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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"> &lt;/head&gt;
</span><span class="cx"> &lt;body id=&quot;body&quot;&gt;
</span><span class="cx"> 
</span><ins>+&lt;div id=&quot;content&quot; role=&quot;group&quot;&gt;
+
</ins><span class="cx"> item 1
</span><span class="cx"> 
</span><span class="cx"> &lt;ol&gt;
</span><span class="lines">@@ -24,6 +26,8 @@
</span><span class="cx"> &lt;b&gt;landmark 1&lt;/b&gt;
</span><span class="cx"> &lt;/div&gt;
</span><span class="cx"> 
</span><ins>+&lt;/div&gt;
+
</ins><span class="cx"> &lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
</span><span class="cx"> &lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
</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(&quot;content&quot;);
</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(&quot;listItem.iphoneTraits != initialItem.iphoneTraits&quot;, &quot;true&quot;);
-        shouldBe(&quot;listItem.iphoneTraits != tableItem.iphoneTraits&quot;, &quot;true&quot;);
-        shouldBe(&quot;listItem.iphoneTraits != landmarkItem.iphoneTraits&quot;, &quot;true&quot;);
</del><ins>+        shouldBe(&quot;listItem.traits != initialItem.traits&quot;, &quot;true&quot;);
+        shouldBe(&quot;listItem.traits != tableItem.traits&quot;, &quot;true&quot;);
+        shouldBe(&quot;listItem.traits != landmarkItem.traits&quot;, &quot;true&quot;);
</ins><span class="cx"> 
</span><del>-        shouldBe(&quot;tableItem.iphoneTraits != initialItem.iphoneTraits&quot;, &quot;true&quot;);
-        shouldBe(&quot;tableItem.iphoneTraits != landmarkItem.iphoneTraits&quot;, &quot;true&quot;);
</del><ins>+        shouldBe(&quot;tableItem.traits != initialItem.traits&quot;, &quot;true&quot;);
+        shouldBe(&quot;tableItem.traits != landmarkItem.traits&quot;, &quot;true&quot;);
</ins><span class="cx"> 
</span><del>-        shouldBe(&quot;landmarkItem.iphoneTraits != initialItem.iphoneTraits&quot;, &quot;true&quot;);
</del><ins>+        shouldBe(&quot;landmarkItem.traits != initialItem.traits&quot;, &quot;true&quot;);
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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"> &lt;/head&gt;
</span><span class="cx"> &lt;body id=&quot;body&quot;&gt;
</span><span class="cx"> 
</span><del>-&lt;ol&gt;
</del><ins>+&lt;ol id=&quot;list&quot;&gt;
</ins><span class="cx"> &lt;li&gt;item 1&lt;/li&gt;
</span><span class="cx"> &lt;/ol&gt;
</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(&quot;list&quot;);
</ins><span class="cx">         var text = obj.stringForRange(0, 6);
</span><span class="cx">         shouldBe(&quot;text&quot;, &quot;'1. item 1'&quot;);
</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"> &lt;/head&gt;
</span><span class="cx"> &lt;body&gt;
</span><span class="cx"> 
</span><del>-&lt;div&gt;element 1&lt;/div&gt;
-&lt;div&gt;element 2&lt;/div&gt;
-&lt;div&gt;element 3&lt;/div&gt;
-&lt;div&gt;element 4&lt;/div&gt;
</del><ins>+&lt;div id=&quot;element1&quot;&gt;element 1&lt;/div&gt;
+&lt;div id=&quot;element2&quot;&gt;element 2&lt;/div&gt;
+&lt;div id=&quot;element3&quot;&gt;element 3&lt;/div&gt;
+&lt;div id=&quot;element4&quot;&gt;element 4&lt;/div&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
</span><span class="cx"> &lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
</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(&quot;element3&quot;);
</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 &amp;&amp; textLen == 9;
</span><span class="cx">         shouldBe(&quot;succeeded&quot;, &quot;true&quot;);
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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(&quot;textrole&quot;).focus();
-        var textrole = accessibilityController.rootElement.childAtIndex(0);
-        shouldBe(&quot;textrole.iphoneLabel&quot;, &quot;'AXLabel: all at once'&quot;);
</del><ins>+        var textrole = accessibilityController.accessibleElementById(&quot;textrole&quot;);
+        shouldBe(&quot;textrole.description&quot;, &quot;'AXLabel: all at once'&quot;);
</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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</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(&quot;textfield.iphoneLabel&quot;, &quot;'AXLabel: Search'&quot;);
-        shouldBe(&quot;textfield.iphoneValue&quot;, &quot;'AXValue: hello'&quot;);
</del><ins>+        var textfield = accessibilityController.accessibleElementById(&quot;textfield&quot;);
+        shouldBe(&quot;textfield.description&quot;, &quot;'AXLabel: Search'&quot;);
+        shouldBe(&quot;textfield.stringValue&quot;, &quot;'AXValue: hello'&quot;);
</ins><span class="cx"> 
</span><del>-        var h1 = accessibilityController.rootElement.childAtIndex(1);
-        shouldBe(&quot;h1.iphoneLabel&quot;, &quot;'AXLabel: H1 Test'&quot;);
</del><ins>+        var h1 = accessibilityController.accessibleElementById(&quot;h1&quot;);
+        shouldBe(&quot;h1.description&quot;, &quot;'AXLabel: H1 Test'&quot;);
</ins><span class="cx">         // Should be 1 for the heading level.
</span><del>-        shouldBe(&quot;h1.iphoneValue&quot;, &quot;'AXValue: 1'&quot;);
</del><ins>+        shouldBe(&quot;h1.stringValue&quot;, &quot;'AXValue: 1'&quot;);
</ins><span class="cx"> 
</span><del>-        var button = accessibilityController.rootElement.childAtIndex(2).childAtIndex(0);
-        shouldBe(&quot;button.iphoneLabel&quot;, &quot;'AXLabel: Button Title'&quot;);
-        shouldBe(&quot;button.iphoneValue&quot;, &quot;'AXValue: '&quot;);
</del><ins>+        var button = accessibilityController.accessibleElementById(&quot;button&quot;);
+        shouldBe(&quot;button.description&quot;, &quot;'AXLabel: Button Title'&quot;);
+        shouldBe(&quot;button.stringValue&quot;, &quot;'AXValue: '&quot;);
</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(&quot;button1&quot;);
</span><del>-        debug(&quot;Button1 : &quot; + button1.iphoneLabel);
-        debug(&quot;Button1 : &quot; + button1.iphoneValue);
</del><ins>+        debug(&quot;Button1 : &quot; + button1.description);
+        debug(&quot;Button1 : &quot; + button1.stringValue);
</ins><span class="cx"> 
</span><span class="cx">         var button2 = accessibilityController.accessibleElementById(&quot;button2&quot;);
</span><del>-        debug(&quot;Button2 : &quot; + button2.iphoneLabel);
-        debug(&quot;Button2 : &quot; + button2.iphoneValue);
</del><ins>+        debug(&quot;Button2 : &quot; + button2.description);
+        debug(&quot;Button2 : &quot; + 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"> &lt;/head&gt;
</span><span class="cx"> &lt;body id=&quot;body&quot;&gt;
</span><span class="cx"> 
</span><del>-&lt;input type=&quot;image&quot; src=&quot;url-test1.html&quot;&gt;&lt;BR&gt;
-&lt;a href=&quot;#url-test2.html&quot;&gt;test&lt;/a&gt;&lt;BR&gt;
-&lt;img src=&quot;url-test3.png&quot; width=100 height=100 alt=&quot;test&quot;&gt;&lt;BR&gt;
</del><ins>+&lt;input id=&quot;element1&quot; type=&quot;image&quot; src=&quot;url-test1.html&quot;&gt;&lt;BR&gt;
+&lt;a id=&quot;element2&quot; href=&quot;#url-test2.html&quot;&gt;test&lt;/a&gt;&lt;BR&gt;
+&lt;img id=&quot;element3&quot; src=&quot;url-test3.png&quot; width=100 height=100 alt=&quot;test&quot;&gt;&lt;BR&gt;
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> &lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
</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(&quot;element1&quot;);
</ins><span class="cx">         shouldBe(&quot;element.url.indexOf('url-test1.html') != -1&quot;, &quot;true&quot;);
</span><span class="cx"> 
</span><del>-        element = accessibilityController.rootElement.childAtIndex(0).childAtIndex(1);
</del><ins>+        element = accessibilityController.accessibleElementById(&quot;element2&quot;);
</ins><span class="cx">         shouldBe(&quot;element.url.indexOf('url-test2.html') != -1&quot;, &quot;true&quot;);
</span><span class="cx"> 
</span><del>-        element = accessibilityController.rootElement.childAtIndex(0).childAtIndex(2);
</del><ins>+        element = accessibilityController.accessibleElementById(&quot;element3&quot;);
</ins><span class="cx">         shouldBe(&quot;element.url.indexOf('url-test3.png') != -1&quot;, &quot;true&quot;);
</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  &lt;cfleizach@apple.com&gt;
+
+        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  &lt;mark.lam@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Use NakedPtr&lt;Exception&gt;&amp; 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-&gt;wrapper() accessibilityPostedNotification:notificationString];
</del><ins>+    if (notificationString)
+        [obj-&gt;wrapper() accessibilityPostedNotification:notificationString];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void AXObjectCache::postTextStateChangePlatformNotification(AccessibilityObject* object, const AXTextStateChangeIntent&amp;, const VisibleSelection&amp;)
</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-&gt;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 &amp;&amp; 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  &lt;cfleizach@apple.com&gt;
+
+        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  &lt;mark.lam@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Use NakedPtr&lt;Exception&gt;&amp; 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&lt;JSStringRef&gt; labelString(Adopt, toAXElement(thisObject)-&gt;iphoneLabel());
-    return JSValueMakeString(context, labelString.get());
-}
-
-static JSValueRef getIPhoneHintCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef propertyName, JSValueRef* exception)
-{
-    JSRetainPtr&lt;JSStringRef&gt; hintString(Adopt, toAXElement(thisObject)-&gt;iphoneHint());
-    return JSValueMakeString(context, hintString.get());
-}
-
-static JSValueRef getIPhoneValueCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef propertyName, JSValueRef* exception)
-{
-    JSRetainPtr&lt;JSStringRef&gt; valueString(Adopt, toAXElement(thisObject)-&gt;iphoneValue());
</del><ins>+    JSRetainPtr&lt;JSStringRef&gt; valueString(Adopt, toAXElement(thisObject)-&gt;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&lt;JSStringRef&gt; valueString(Adopt, toAXElement(thisObject)-&gt;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&lt;JSStringRef&gt; valueString(Adopt, toAXElement(thisObject)-&gt;iphoneTraits());
</del><ins>+    JSRetainPtr&lt;JSStringRef&gt; valueString(Adopt, toAXElement(thisObject)-&gt;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)-&gt;iphoneIsElement());
</del><ins>+    return JSValueMakeNumber(context, toAXElement(thisObject)-&gt;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)-&gt;iphoneElementTextPosition());
</del><ins>+    return JSValueMakeNumber(context, toAXElement(thisObject)-&gt;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)-&gt;iphoneElementTextLength());
-}
-
</del><span class="cx"> #endif // PLATFORM(IOS)
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC) &amp;&amp; !PLATFORM(IOS)
</span><span class="lines">@@ -1599,14 +1576,10 @@
</span><span class="cx">         { &quot;startTextMarker&quot;, startTextMarkerCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
</span><span class="cx">         { &quot;endTextMarker&quot;, endTextMarkerCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-        { &quot;iphoneLabel&quot;, getIPhoneLabelCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
-        { &quot;iphoneHint&quot;, getIPhoneHintCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
-        { &quot;iphoneValue&quot;, getIPhoneValueCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
-        { &quot;iphoneIdentifier&quot;, getIPhoneIdentifierCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
-        { &quot;iphoneTraits&quot;, getIPhoneTraitsCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
-        { &quot;iphoneIsElement&quot;, getIPhoneIsElementCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
-        { &quot;iphoneElementTextPosition&quot;, getIPhoneElementTextPositionCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
-        { &quot;iphoneElementTextLength&quot;, getIPhoneElementTextLengthCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
</del><ins>+        { &quot;identifier&quot;, getIdentifierCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
+        { &quot;traits&quot;, getTraitsCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
+        { &quot;elementTextPosition&quot;, getElementTextPositionCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
+        { &quot;elementTextLength&quot;, getElementTextLengthCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
</ins><span class="cx">         { &quot;stringForSelection&quot;, stringForSelectionCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
</span><span class="cx"> #endif // PLATFORM(IOS)
</span><span class="cx"> #if PLATFORM(MAC) &amp;&amp; !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 &quot;AccessibilityUIElement.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #import &quot;AccessibilityCommonMac.h&quot;
</span><ins>+#import &quot;AccessibilityNotificationHandler.h&quot;
</ins><span class="cx"> #import &lt;Foundation/Foundation.h&gt;
</span><span class="cx"> #import &lt;JavaScriptCore/JSRetainPtr.h&gt;
</span><span class="cx"> #import &lt;JavaScriptCore/JSStringRef.h&gt;
</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(@&quot;AXLabel&quot;, [m_element accessibilityLabel]);
-}
-
-JSStringRef AccessibilityUIElement::iphoneHint()
-{
-    return concatenateAttributeAndValue(@&quot;AXHint&quot;, [m_element accessibilityHint]);
-}
-
-JSStringRef AccessibilityUIElement::iphoneValue()
-{
-    return concatenateAttributeAndValue(@&quot;AXValue&quot;, [m_element accessibilityValue]);
-}
-
-JSStringRef AccessibilityUIElement::iphoneIdentifier()
-{
</del><span class="cx">     return concatenateAttributeAndValue(@&quot;AXIdentifier&quot;, [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(@&quot;AXTraits&quot;, [NSString stringWithFormat:@&quot;%qu&quot;, [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:@&quot;elementTextRange&quot;] 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:@&quot;elementTextRange&quot;] 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(@&quot;AXLabel&quot;, [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(@&quot;AXValue&quot;, [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(@&quot;AXHint&quot;, [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 &amp; UIAccessibilityTraitSelected);
</del><ins>+    bool result = (traits &amp; [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&lt;JSObjectRef&gt;(context);
-    
-    JSRetainPtr&lt;JSStringRef&gt; jsNotification(Adopt, [notification createJSStringRef]);
-    JSValueRef argument = JSValueMakeString([mainFrame globalContext], jsNotification.get());
-    JSObjectCallAsFunction([mainFrame globalContext], functionCallback, NULL, 1, &amp;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&lt;void*&gt;(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&lt;JSStringRef&gt; AccessibilityUIElement::identifier() { return nullptr; }
+JSRetainPtr&lt;JSStringRef&gt; AccessibilityUIElement::traits() { return nullptr; }
+int AccessibilityUIElement::elementTextPosition() { return 0; }
+int AccessibilityUIElement::elementTextLength() { return 0; }
+JSRetainPtr&lt;JSStringRef&gt; AccessibilityUIElement::stringForSelection() { return nullptr; }
+JSValueRef AccessibilityUIElement::elementsForRange(unsigned, unsigned) { return nullptr; }
+void AccessibilityUIElement::increaseTextSelection() { }
+void AccessibilityUIElement::decreaseTextSelection() { }
+PassRefPtr&lt;AccessibilityUIElement&gt; AccessibilityUIElement::linkedElement() { return nullptr; }
+PassRefPtr&lt;AccessibilityUIElement&gt; 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) &amp;&amp; !PLATFORM(EFL)) || !HAVE(ACCESSIBILITY)
</span><span class="cx"> JSRetainPtr&lt;JSStringRef&gt; 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&lt;JSStringRef&gt; identifier();
+    JSRetainPtr&lt;JSStringRef&gt; traits();
+    int elementTextPosition();
+    int elementTextLength();
+    JSRetainPtr&lt;JSStringRef&gt; stringForSelection();
+    JSValueRef elementsForRange(unsigned location, unsigned length);
+    void increaseTextSelection();
+    void decreaseTextSelection();
+    PassRefPtr&lt;AccessibilityUIElement&gt; linkedElement();
+    PassRefPtr&lt;AccessibilityUIElement&gt; headerElementAtIndex(unsigned index);
+    void assistiveTechnologySimulatedFocus();
+    
</ins><span class="cx"> private:
</span><span class="cx">     AccessibilityUIElement(PlatformUIElement);
</span><span class="cx">     AccessibilityUIElement(const AccessibilityUIElement&amp;);
</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]] &amp;&amp; [objIdAttribute isEqualToString:idAttribute])
+        return obj;
+    
+    NSUInteger childrenCount = [obj accessibilityElementCount];
+    for (NSUInteger i = 0; i &lt; 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&lt;AccessibilityUIElement&gt; 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 &quot;AccessibilityUIElement.h&quot;
</span><span class="cx"> #import &quot;InjectedBundle.h&quot;
</span><span class="cx"> #import &quot;InjectedBundlePage.h&quot;
</span><ins>+#import &lt;Foundation/Foundation.h&gt;
+#import &lt;JavaScriptCore/JSRetainPtr.h&gt;
+#import &lt;JavaScriptCore/JSStringRef.h&gt;
+#import &lt;JavaScriptCore/JSStringRefCF.h&gt;
</ins><span class="cx"> #import &lt;UIKit/UIKit.h&gt;
</span><ins>+#import &lt;WebCore/TextGranularity.h&gt;
+#import &lt;WebKit/WKBundleFrame.h&gt;
+#import &lt;wtf/RetainPtr.h&gt;
+#import &lt;wtf/Vector.h&gt;
</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&lt;RefPtr&lt;AccessibilityUIElement&gt; &gt;&amp; elementVector)
+{
+    NSUInteger count = [array count];
+    for (NSUInteger i = 0; i &lt; count; ++i)
+        elementVector.append(AccessibilityUIElement::create([array objectAtIndex:i]));
+}    
+
+static JSStringRef concatenateAttributeAndValue(NSString* attribute, NSString* value)
+{
+    Vector&lt;UniChar&gt; buffer([attribute length]);
+    [attribute getCharacters:buffer.data()];
+    buffer.append(':');
+    buffer.append(' ');
+    
+    Vector&lt;UniChar&gt; 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-&gt;platformUIElement();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+PassRefPtr&lt;AccessibilityUIElement&gt; AccessibilityUIElement::headerElementAtIndex(unsigned index)
+{
+    NSArray *headers = [m_element accessibilityHeaderElements];
+    if (index &lt; [headers count])
+        return AccessibilityUIElement::create([headers objectAtIndex:index]);
+    
+    return nullptr;
+}
+
+PassRefPtr&lt;AccessibilityUIElement&gt; AccessibilityUIElement::linkedElement()
+{
+    id linkedElement = [m_element accessibilityLinkedElement];
+    if (linkedElement)
+        return AccessibilityUIElement::create(linkedElement);
+    
+    return nullptr;
+}
+
</ins><span class="cx"> void AccessibilityUIElement::getLinkedUIElements(Vector&lt;RefPtr&lt;AccessibilityUIElement&gt; &gt;&amp; 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&lt;AccessibilityUIElement&gt; 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&lt;RefPtr&lt;AccessibilityUIElement&gt;&gt;&amp; 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 &lt; elementCount; ++i)
+        JSObjectSetPropertyAtIndex(context, arrayObj, i, JSObjectMake(context, elements[i]-&gt;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()-&gt;page());
+    JSContextRef context = WKBundleFrameGetJavaScriptContext(mainFrame);
+
+    NSArray *elementsForRange = [m_element elementsForRange:NSMakeRange(location, length)];
+    Vector&lt;RefPtr&lt;AccessibilityUIElement&gt;&gt; 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&lt;JSStringRef&gt; AccessibilityUIElement::stringAttributeValue(JSStringRef attribute)
</span><span class="cx"> {
</span><ins>+    if (JSStringIsEqualToUTF8CString(attribute, &quot;AXPlaceholderValue&quot;))
+        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&lt;JSStringRef&gt; AccessibilityUIElement::description()
</span><span class="cx"> {
</span><del>-    return JSStringCreateWithCharacters(0, 0);
</del><ins>+    return concatenateAttributeAndValue(@&quot;AXLabel&quot;, [m_element accessibilityLabel]);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSRetainPtr&lt;JSStringRef&gt; AccessibilityUIElement::orientation() const
</span><span class="lines">@@ -276,7 +398,7 @@
</span><span class="cx"> 
</span><span class="cx"> JSRetainPtr&lt;JSStringRef&gt; AccessibilityUIElement::stringValue()
</span><span class="cx"> {
</span><del>-    return JSStringCreateWithCharacters(0, 0);
</del><ins>+    return concatenateAttributeAndValue(@&quot;AXValue&quot;, [m_element accessibilityValue]);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSRetainPtr&lt;JSStringRef&gt; AccessibilityUIElement::language()
</span><span class="lines">@@ -286,7 +408,7 @@
</span><span class="cx"> 
</span><span class="cx"> JSRetainPtr&lt;JSStringRef&gt; AccessibilityUIElement::helpText() const
</span><span class="cx"> {
</span><del>-    return JSStringCreateWithCharacters(0, 0);
</del><ins>+    return concatenateAttributeAndValue(@&quot;AXHint&quot;, [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&lt;JSStringRef&gt; 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 &amp; UIAccessibilityTraitSelected);
</del><ins>+    return (traits &amp; [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&lt;JSStringRef&gt; 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&lt;JSStringRef&gt; 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&lt;JSStringRef&gt; AccessibilityUIElement::traits()
+{
+    return concatenateAttributeAndValue(@&quot;AXTraits&quot;, [NSString stringWithFormat:@&quot;%qu&quot;, [m_element accessibilityTraits]]);
+}
+
+JSRetainPtr&lt;JSStringRef&gt; AccessibilityUIElement::identifier()
+{
+    return concatenateAttributeAndValue(@&quot;AXIdentifier&quot;, [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&lt;JSStringRef&gt; AccessibilityUIElement::rowIndexRange()
</span><span class="cx"> {
</span><del>-    return JSStringCreateWithCharacters(0, 0);
</del><ins>+    NSRange range = [m_element accessibilityRowRange];
+    NSMutableString* rangeDescription = [NSMutableString stringWithFormat:@&quot;{%lu, %lu}&quot;, (unsigned long)range.location, (unsigned long)range.length];
+    return [rangeDescription createJSStringRef];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSRetainPtr&lt;JSStringRef&gt; AccessibilityUIElement::columnIndexRange()
</span><span class="cx"> {
</span><del>-    return JSStringCreateWithCharacters(0, 0);
</del><ins>+    NSRange range = [m_element accessibilityColumnRange];
+    NSMutableString* rangeDescription = [NSMutableString stringWithFormat:@&quot;{%lu, %lu}&quot;, (unsigned long)range.location, (unsigned long)range.length];
+    return [rangeDescription createJSStringRef];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;AccessibilityUIElement&gt; 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&lt;AccessibilityUIElement&gt; 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&lt;JSStringRef&gt; AccessibilityUIElement::stringForSelection()
+{
+    NSString *stringForRange = [m_element selectionRangeString];
+    if (!stringForRange)
+        return nullptr;
+    
+    return [stringForRange createJSStringRef];
+}
+    
+int AccessibilityUIElement::elementTextPosition()
+{
+    NSRange range = [[m_element valueForKey:@&quot;elementTextRange&quot;] rangeValue];
+    return range.location;
+}
+
+int AccessibilityUIElement::elementTextLength()
+{
+    NSRange range = [[m_element valueForKey:@&quot;elementTextRange&quot;] rangeValue];
+    return range.length;    
+}
+    
</ins><span class="cx"> JSRetainPtr&lt;JSStringRef&gt; 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-&gt;type) {
+    case kCGPathElementMoveToPoint:
+        [result appendString:@&quot;\tMove to point\n&quot;];
+        break;
+    case kCGPathElementAddLineToPoint:
+        [result appendString:@&quot;\tLine to\n&quot;];
+        break;
+    case kCGPathElementAddQuadCurveToPoint:
+        [result appendString:@&quot;\tQuad curve to\n&quot;];
+        break;
+    case kCGPathElementAddCurveToPoint:
+        [result appendString:@&quot;\tCurve to\n&quot;];
+        break;
+    case kCGPathElementCloseSubpath:
+        [result appendString:@&quot;\tClose\n&quot;];
+        break;
+    }
+}
+
</ins><span class="cx"> JSRetainPtr&lt;JSStringRef&gt; AccessibilityUIElement::pathDescription() const
</span><span class="cx"> {
</span><del>-    return 0;
</del><ins>+    NSMutableString *result = [NSMutableString stringWithString:@&quot;\nStart Path\n&quot;];
+    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&lt;JSStringRef&gt; AccessibilityUIElement::supportedActions() const
</span></span></pre>
</div>
</div>

</body>
</html>