<!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>[165870] 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/165870">165870</a></dd>
<dt>Author</dt> <dd>samuel_white@apple.com</dd>
<dt>Date</dt> <dd>2014-03-18 23:16:40 -0700 (Tue, 18 Mar 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>AX: Not able to use arrow keys to read text with VoiceOver before selection is set someplace (anyplace).
https://bugs.webkit.org/show_bug.cgi?id=130250

Reviewed by Chris Fleizach.

Source/WebCore:

If initial selection isn't set when we handle selection movement for accessibility, we need to set it. If we don't, using arrow
keys to read text with VoiceOver doesn't work as expected. Things will only start working after the user holds shift and arrows
around to select any arbitrary thing to force selection to get set. This logic handles that special case more gracefully.

Test: platform/mac/accessibility/selection-initial.html

* page/EventHandler.cpp:
(WebCore::handleKeyboardSelectionMovement):
(WebCore::EventHandler::handleKeyboardSelectionMovementForAccessibility):
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):

Source/WebKit:

* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:

Source/WebKit/mac:

Added ability to toggle enhanced accessibility on and off to support tests that require it.

* WebView/WebFrame.mm:
(-[WebFrame enhancedAccessibilityEnabled]):
(-[WebFrame setEnhancedAccessibility:]):
* WebView/WebFramePrivate.h:

Source/WebKit2:

Added ability to toggle enhanced accessibility on and off to support tests that require it.

* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKAccessibilityEnableEnhancedAccessibility):
(WKAccessibilityEnhancedAccessibilityEnabled):
* WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:

Tools:

Added ability to toggle enhanced accessibility on and off to support tests that require it.

* DumpRenderTree/AccessibilityController.cpp:
(enableEnhancedAccessibilityCallback):
(getEnhancedAccessibilityEnabledCallback):
(AccessibilityController::getJSClass):
* DumpRenderTree/AccessibilityController.h:
* DumpRenderTree/atk/AccessibilityControllerAtk.cpp:
(AccessibilityController::enableEnhancedAccessibility):
(AccessibilityController::enhancedAccessibilityEnabled):
* DumpRenderTree/ios/AccessibilityControllerIOS.mm:
(AccessibilityController::enableEnhancedAccessibility):
(AccessibilityController::enhancedAccessibilityEnabled):
* DumpRenderTree/mac/AccessibilityControllerMac.mm:
(AccessibilityController::enableEnhancedAccessibility):
(AccessibilityController::enhancedAccessibilityEnabled):
* DumpRenderTree/win/AccessibilityControllerWin.cpp:
(AccessibilityController::enableEnhancedAccessibility):
(AccessibilityController::enhancedAccessibilityEnabled):
* WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:
(WTR::AccessibilityController::enableEnhancedAccessibility):
(WTR::AccessibilityController::enhancedAccessibilityEnabled):
* WebKitTestRunner/InjectedBundle/AccessibilityController.h:
* WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl:

LayoutTests:

Added test to ensure that initial selection gets set when enhanced accessibility is enabled and an arrow key is pressed.

* platform/mac/accessibility/selection-initial-expected.txt: Added.
* platform/mac/accessibility/selection-initial.html: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorepageEventHandlercpp">trunk/Source/WebCore/page/EventHandler.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingInternalscpp">trunk/Source/WebCore/testing/Internals.cpp</a></li>
<li><a href="#trunkSourceWebKitChangeLog">trunk/Source/WebKit/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitWebKitvcxprojWebKitExportGeneratorWebKitExportsdefin">trunk/Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebFramemm">trunk/Source/WebKit/mac/WebView/WebFrame.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebFramePrivateh">trunk/Source/WebKit/mac/WebView/WebFramePrivate.h</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleAPIcWKBundlePagecpp">trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleAPIcWKBundlePagePrivateh">trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsDumpRenderTreeAccessibilityControllercpp">trunk/Tools/DumpRenderTree/AccessibilityController.cpp</a></li>
<li><a href="#trunkToolsDumpRenderTreeAccessibilityControllerh">trunk/Tools/DumpRenderTree/AccessibilityController.h</a></li>
<li><a href="#trunkToolsDumpRenderTreeatkAccessibilityControllerAtkcpp">trunk/Tools/DumpRenderTree/atk/AccessibilityControllerAtk.cpp</a></li>
<li><a href="#trunkToolsDumpRenderTreeiosAccessibilityControllerIOSmm">trunk/Tools/DumpRenderTree/ios/AccessibilityControllerIOS.mm</a></li>
<li><a href="#trunkToolsDumpRenderTreemacAccessibilityControllerMacmm">trunk/Tools/DumpRenderTree/mac/AccessibilityControllerMac.mm</a></li>
<li><a href="#trunkToolsDumpRenderTreewinAccessibilityControllerWincpp">trunk/Tools/DumpRenderTree/win/AccessibilityControllerWin.cpp</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleAccessibilityControllercpp">trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.cpp</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleAccessibilityControllerh">trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.h</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleBindingsAccessibilityControlleridl">trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsplatformmacaccessibilityselectioninitialexpectedtxt">trunk/LayoutTests/platform/mac/accessibility/selection-initial-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacaccessibilityselectioninitialhtml">trunk/LayoutTests/platform/mac/accessibility/selection-initial.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/LayoutTests/ChangeLog        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2014-03-18  Samuel White  &lt;samuel_white@apple.com&gt;
+
+        AX: Not able to use arrow keys to read text with VoiceOver before selection is set someplace (anyplace).
+        https://bugs.webkit.org/show_bug.cgi?id=130250
+
+        Reviewed by Chris Fleizach.
+
+        Added test to ensure that initial selection gets set when enhanced accessibility is enabled and an arrow key is pressed.
+
+        * platform/mac/accessibility/selection-initial-expected.txt: Added.
+        * platform/mac/accessibility/selection-initial.html: Added.
+
</ins><span class="cx"> 2014-03-18  Brent Fulgham  &lt;bfulgham@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         TextTrackRegion Not Implemented
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacaccessibilityselectioninitialexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac/accessibility/selection-initial-expected.txt (0 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/accessibility/selection-initial-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/mac/accessibility/selection-initial-expected.txt        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+This tests that initial selection is set when arrow keys are pressed and no selection exists.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS isSelectionAtStartOfDocument() is false
+PASS isSelectionAtStartOfDocument() is false
+PASS accessibilityController.enhancedAccessibilityEnabled is true
+PASS isSelectionAtStartOfDocument() is false
+PASS isSelectionAtStartOfDocument() is true
+PASS isSelectionAtStartOfDocument() is false
+PASS isSelectionAtStartOfDocument() is true
+PASS isSelectionAtStartOfDocument() is false
+PASS isSelectionAtStartOfDocument() is true
+PASS isSelectionAtStartOfDocument() is false
+PASS isSelectionAtStartOfDocument() is true
+PASS isSelectionAtStartOfDocument() is false
+PASS isSelectionAtStartOfDocument() is false
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmacaccessibilityselectioninitialhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac/accessibility/selection-initial.html (0 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/accessibility/selection-initial.html                                (rev 0)
+++ trunk/LayoutTests/platform/mac/accessibility/selection-initial.html        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -0,0 +1,73 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;title&gt;Selection Initial&lt;/title&gt;
+&lt;/head&gt;
+&lt;body&gt;
+
+&lt;p id=&quot;text&quot;&gt;Text.&lt;/p&gt;
+
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+    description(&quot;This tests that initial selection is set when arrow keys are pressed and no selection exists.&quot;);
+    
+    function clearSelection() {
+        window.getSelection().removeAllRanges();
+    }
+    
+    function isSelectionAtStartOfDocument() {
+        var selection = window.getSelection();
+        return selection.rangeCount &gt;= 1 &amp;&amp; selection.getRangeAt(0).endOffset === 0 &amp;&amp; selection.getRangeAt(0).startOffset === 0;
+    }
+    
+    if (window.accessibilityController &amp;&amp; window.eventSender) {
+        // Down arrow key (should NOT set initial selection before enhanced accessibility is enabled).
+        shouldBe(&quot;isSelectionAtStartOfDocument()&quot;, &quot;false&quot;);
+        eventSender.keyDown(&quot;downArrow&quot;);
+        shouldBe(&quot;isSelectionAtStartOfDocument()&quot;, &quot;false&quot;);
+        clearSelection();
+        
+        // Enable enhanced accessibility (necessary for accessibility specific selection handling).
+        accessibilityController.enableEnhancedAccessibility(true);
+        shouldBe(&quot;accessibilityController.enhancedAccessibilityEnabled&quot;, &quot;true&quot;);
+        
+        // Down arrow key.
+        shouldBe(&quot;isSelectionAtStartOfDocument()&quot;, &quot;false&quot;);
+        eventSender.keyDown(&quot;downArrow&quot;);
+        shouldBe(&quot;isSelectionAtStartOfDocument()&quot;, &quot;true&quot;);
+        clearSelection();
+        
+        // Left arrow key.
+        shouldBe(&quot;isSelectionAtStartOfDocument()&quot;, &quot;false&quot;);
+        eventSender.keyDown(&quot;leftArrow&quot;);
+        shouldBe(&quot;isSelectionAtStartOfDocument()&quot;, &quot;true&quot;);
+        clearSelection();
+        
+        // Right arrow key.
+        shouldBe(&quot;isSelectionAtStartOfDocument()&quot;, &quot;false&quot;);
+        eventSender.keyDown(&quot;rightArrow&quot;);
+        shouldBe(&quot;isSelectionAtStartOfDocument()&quot;, &quot;true&quot;);
+        clearSelection();
+        
+        // Up arrow key.
+        shouldBe(&quot;isSelectionAtStartOfDocument()&quot;, &quot;false&quot;);
+        eventSender.keyDown(&quot;upArrow&quot;);
+        shouldBe(&quot;isSelectionAtStartOfDocument()&quot;, &quot;true&quot;);
+        clearSelection();
+        
+        // Z key (only arrow keys should set initial selection if no selection exists).
+        shouldBe(&quot;isSelectionAtStartOfDocument()&quot;, &quot;false&quot;);
+        eventSender.keyDown(&quot;Z&quot;);
+        shouldBe(&quot;isSelectionAtStartOfDocument()&quot;, &quot;false&quot;);
+        
+        // Hide superfluous text.
+        document.getElementById(&quot;text&quot;).style.display = &quot;none&quot;;
+    }
+&lt;/script&gt;
+
+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Source/WebCore/ChangeLog        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -1,3 +1,22 @@
</span><ins>+2014-03-18  Samuel White  &lt;samuel_white@apple.com&gt;
+
+        AX: Not able to use arrow keys to read text with VoiceOver before selection is set someplace (anyplace).
+        https://bugs.webkit.org/show_bug.cgi?id=130250
+
+        Reviewed by Chris Fleizach.
+
+        If initial selection isn't set when we handle selection movement for accessibility, we need to set it. If we don't, using arrow
+        keys to read text with VoiceOver doesn't work as expected. Things will only start working after the user holds shift and arrows
+        around to select any arbitrary thing to force selection to get set. This logic handles that special case more gracefully.
+
+        Test: platform/mac/accessibility/selection-initial.html
+
+        * page/EventHandler.cpp:
+        (WebCore::handleKeyboardSelectionMovement):
+        (WebCore::EventHandler::handleKeyboardSelectionMovementForAccessibility):
+        * testing/Internals.cpp:
+        (WebCore::Internals::resetToConsistentState):
+
</ins><span class="cx"> 2014-03-18  Brent Fulgham  &lt;bfulgham@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         TextTrackRegion Not Implemented
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventHandlercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventHandler.cpp (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventHandler.cpp        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Source/WebCore/page/EventHandler.cpp        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -91,6 +91,7 @@
</span><span class="cx"> #include &quot;TextIterator.h&quot;
</span><span class="cx"> #include &quot;UserGestureIndicator.h&quot;
</span><span class="cx"> #include &quot;UserTypingGestureIndicator.h&quot;
</span><ins>+#include &quot;VisibleUnits.h&quot;
</ins><span class="cx"> #include &quot;WheelEvent.h&quot;
</span><span class="cx"> #include &quot;WindowsKeyboardCodes.h&quot;
</span><span class="cx"> #include &lt;wtf/Assertions.h&gt;
</span><span class="lines">@@ -3045,14 +3046,18 @@
</span><span class="cx">     return retVal;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void handleKeyboardSelectionMovement(FrameSelection&amp; selection, KeyboardEvent* event)
</del><ins>+static void handleKeyboardSelectionMovement(Frame&amp; frame, KeyboardEvent* event)
</ins><span class="cx"> {
</span><span class="cx">     if (!event)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><ins>+    FrameSelection&amp; selection = frame.selection();
+
+    bool isCommanded = event-&gt;getModifierState(&quot;Meta&quot;);
</ins><span class="cx">     bool isOptioned = event-&gt;getModifierState(&quot;Alt&quot;);
</span><del>-    bool isCommanded = event-&gt;getModifierState(&quot;Meta&quot;);
</del><ins>+    bool isSelection = !selection.isNone();
</ins><span class="cx"> 
</span><ins>+    FrameSelection::EAlteration alternation = event-&gt;getModifierState(&quot;Shift&quot;) ? FrameSelection::AlterationExtend : FrameSelection::AlterationMove;
</ins><span class="cx">     SelectionDirection direction = DirectionForward;
</span><span class="cx">     TextGranularity granularity = CharacterGranularity;
</span><span class="cx"> 
</span><span class="lines">@@ -3081,8 +3086,11 @@
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    FrameSelection::EAlteration alternation = event-&gt;getModifierState(&quot;Shift&quot;) ? FrameSelection::AlterationExtend : FrameSelection::AlterationMove;
-    selection.modify(alternation, direction, granularity, UserTriggered);
</del><ins>+    if (isSelection)
+        selection.modify(alternation, direction, granularity, UserTriggered);
+    else
+        selection.setSelection(startOfDocument(frame.document()), FrameSelection::defaultSetSelectionOptions(UserTriggered));
+
</ins><span class="cx">     event-&gt;setDefaultHandled();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -3090,7 +3098,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (event-&gt;type() == eventNames().keydownEvent) {
</span><span class="cx">         if (AXObjectCache::accessibilityEnhancedUserInterfaceEnabled())
</span><del>-            handleKeyboardSelectionMovement(m_frame.selection(), event);
</del><ins>+            handleKeyboardSelectionMovement(m_frame, event);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.cpp (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.cpp        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Source/WebCore/testing/Internals.cpp        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -293,6 +293,7 @@
</span><span class="cx">     MediaSessionManager::sharedManager().resetRestrictions();
</span><span class="cx"> #endif
</span><span class="cx"> #if HAVE(ACCESSIBILITY)
</span><ins>+    AXObjectCache::setEnhancedUserInterfaceAccessibility(false);
</ins><span class="cx">     AXObjectCache::disableAccessibility();
</span><span class="cx"> #endif
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ChangeLog (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ChangeLog        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Source/WebKit/ChangeLog        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -1,3 +1,12 @@
</span><ins>+2014-03-18  Samuel White  &lt;samuel_white@apple.com&gt;
+
+        AX: Not able to use arrow keys to read text with VoiceOver before selection is set someplace (anyplace).
+        https://bugs.webkit.org/show_bug.cgi?id=130250
+
+        Reviewed by Chris Fleizach.
+
+        * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
+
</ins><span class="cx"> 2014-03-17  Ryosuke Niwa  &lt;rniwa@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Revert the erroneous change made by Xcode.
</span></span></pre></div>
<a id="trunkSourceWebKitWebKitvcxprojWebKitExportGeneratorWebKitExportsdefin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -475,6 +475,7 @@
</span><span class="cx">         symbolWithPointer(?completeURL@Document@WebCore@@UBE?AVURL@2@ABVString@WTF@@@Z, ?completeURL@Document@WebCore@@UEBA?AVURL@2@AEBVString@WTF@@@Z)
</span><span class="cx">         symbolWithPointer(??1DOMWindow@WebCore@@UAE@XZ, ??1DOMWindow@WebCore@@UEAA@XZ)
</span><span class="cx">         symbolWithPointer(?visibleContentRect@ScrollableArea@WebCore@@QBE?AVIntRect@2@W4VisibleContentRectBehavior@12@@Z, ?visibleContentRect@ScrollableArea@WebCore@@QEBA?AVIntRect@2@W4VisibleContentRectBehavior@12@@Z)
</span><ins>+        symbolWithPointer(?gAccessibilityEnhancedUserInterfaceEnabled@AXObjectCache@WebCore@@0_NA, ?gAccessibilityEnhancedUserInterfaceEnabled@AXObjectCache@WebCore@@0_NA)
</ins><span class="cx">         symbolWithPointer(?disableAccessibility@AXObjectCache@WebCore@@SAXXZ, ?disableAccessibility@AXObjectCache@WebCore@@SAXXZ)
</span><span class="cx">         symbolWithPointer(?sessionID@Page@WebCore@@QBE?AVSessionID@2@XZ, ?sessionID@Page@WebCore@@QEBA?AVSessionID@2@XZ)
</span><span class="cx">         symbolWithPointer(?resourceForURL@MemoryCache@WebCore@@QAEPAVCachedResource@2@ABVURL@2@VSessionID@2@@Z, ?resourceForURL@MemoryCache@WebCore@@QEAAPEAVCachedResource@2@AEBVURL@2@VSessionID@2@@Z)
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Source/WebKit/mac/ChangeLog        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2014-03-18  Samuel White  &lt;samuel_white@apple.com&gt;
+
+        AX: Not able to use arrow keys to read text with VoiceOver before selection is set someplace (anyplace).
+        https://bugs.webkit.org/show_bug.cgi?id=130250
+
+        Reviewed by Chris Fleizach.
+
+        Added ability to toggle enhanced accessibility on and off to support tests that require it.
+
+        * WebView/WebFrame.mm:
+        (-[WebFrame enhancedAccessibilityEnabled]):
+        (-[WebFrame setEnhancedAccessibility:]):
+        * WebView/WebFramePrivate.h:
+
</ins><span class="cx"> 2014-03-17  Filip Pizlo  &lt;fpizlo@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         More FTL enabling.
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebFramemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebFrame.mm (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebFrame.mm        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Source/WebKit/mac/WebView/WebFrame.mm        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -2157,6 +2157,22 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+- (BOOL)enhancedAccessibilityEnabled
+{
+#if HAVE(ACCESSIBILITY)
+    return AXObjectCache::accessibilityEnhancedUserInterfaceEnabled();
+#else
+    return NO;
+#endif
+}
+
+- (void)setEnhancedAccessibility:(BOOL)enable
+{
+#if HAVE(ACCESSIBILITY)
+    AXObjectCache::setEnhancedUserInterfaceAccessibility(enable);
+#endif
+}
+
</ins><span class="cx"> - (NSString*)_layerTreeAsText
</span><span class="cx"> {
</span><span class="cx">     Frame* coreFrame = _private-&gt;coreFrame;
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebFramePrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebFramePrivate.h (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebFramePrivate.h        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Source/WebKit/mac/WebView/WebFramePrivate.h        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -262,6 +262,10 @@
</span><span class="cx"> // Sets the name presented to accessibility clients for the web area object.
</span><span class="cx"> - (void)setAccessibleName:(NSString *)name;
</span><span class="cx"> 
</span><ins>+// Enhanced accessibility.
+- (BOOL)enhancedAccessibilityEnabled;
+- (void)setEnhancedAccessibility:(BOOL)enable;
+
</ins><span class="cx"> - (NSString*)_layerTreeAsText;
</span><span class="cx"> 
</span><span class="cx"> // The top of the accessibility tree.
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Source/WebKit2/ChangeLog        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2014-03-18  Samuel White  &lt;samuel_white@apple.com&gt;
+
+        AX: Not able to use arrow keys to read text with VoiceOver before selection is set someplace (anyplace).
+        https://bugs.webkit.org/show_bug.cgi?id=130250
+
+        Reviewed by Chris Fleizach.
+
+        Added ability to toggle enhanced accessibility on and off to support tests that require it.
+
+        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+        (WKAccessibilityEnableEnhancedAccessibility):
+        (WKAccessibilityEnhancedAccessibilityEnabled):
+        * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
+
</ins><span class="cx"> 2014-03-18  Ryuan Choi  &lt;ryuan.choi@samsung.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [EFL][WK2] Rename async APIs for better consistency with EFL
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleAPIcWKBundlePagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -264,6 +264,22 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void WKAccessibilityEnableEnhancedAccessibility(bool enable)
+{
+#if HAVE(ACCESSIBILITY)
+    WebCore::AXObjectCache::setEnhancedUserInterfaceAccessibility(enable);
+#endif
+}
+
+bool WKAccessibilityEnhancedAccessibilityEnabled()
+{
+#if HAVE(ACCESSIBILITY)
+    return WebCore::AXObjectCache::accessibilityEnhancedUserInterfaceEnabled();
+#else
+    return false;
+#endif
+}
+
</ins><span class="cx"> void WKBundlePageStopLoading(WKBundlePageRef pageRef)
</span><span class="cx"> {
</span><span class="cx">     toImpl(pageRef)-&gt;stopLoading();
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleAPIcWKBundlePagePrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -80,6 +80,9 @@
</span><span class="cx"> WK_EXPORT void* WKAccessibilityRootObject(WKBundlePageRef);
</span><span class="cx"> WK_EXPORT void* WKAccessibilityFocusedObject(WKBundlePageRef);
</span><span class="cx"> 
</span><ins>+WK_EXPORT void WKAccessibilityEnableEnhancedAccessibility(bool);
+WK_EXPORT bool WKAccessibilityEnhancedAccessibilityEnabled();
+
</ins><span class="cx"> WK_EXPORT WKStringRef WKBundlePageCopyContextMenuItemTitle(WKContextMenuItemRef);
</span><span class="cx"> WK_EXPORT void WKBundlePageClickMenuItem(WKBundlePageRef, WKContextMenuItemRef);
</span><span class="cx"> WK_EXPORT WKArrayRef WKBundlePageCopyContextMenuItems(WKBundlePageRef);
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Tools/ChangeLog        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -1,3 +1,35 @@
</span><ins>+2014-03-18  Samuel White  &lt;samuel_white@apple.com&gt;
+
+        AX: Not able to use arrow keys to read text with VoiceOver before selection is set someplace (anyplace).
+        https://bugs.webkit.org/show_bug.cgi?id=130250
+
+        Reviewed by Chris Fleizach.
+
+        Added ability to toggle enhanced accessibility on and off to support tests that require it.
+
+        * DumpRenderTree/AccessibilityController.cpp:
+        (enableEnhancedAccessibilityCallback):
+        (getEnhancedAccessibilityEnabledCallback):
+        (AccessibilityController::getJSClass):
+        * DumpRenderTree/AccessibilityController.h:
+        * DumpRenderTree/atk/AccessibilityControllerAtk.cpp:
+        (AccessibilityController::enableEnhancedAccessibility):
+        (AccessibilityController::enhancedAccessibilityEnabled):
+        * DumpRenderTree/ios/AccessibilityControllerIOS.mm:
+        (AccessibilityController::enableEnhancedAccessibility):
+        (AccessibilityController::enhancedAccessibilityEnabled):
+        * DumpRenderTree/mac/AccessibilityControllerMac.mm:
+        (AccessibilityController::enableEnhancedAccessibility):
+        (AccessibilityController::enhancedAccessibilityEnabled):
+        * DumpRenderTree/win/AccessibilityControllerWin.cpp:
+        (AccessibilityController::enableEnhancedAccessibility):
+        (AccessibilityController::enhancedAccessibilityEnabled):
+        * WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:
+        (WTR::AccessibilityController::enableEnhancedAccessibility):
+        (WTR::AccessibilityController::enhancedAccessibilityEnabled):
+        * WebKitTestRunner/InjectedBundle/AccessibilityController.h:
+        * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl:
+
</ins><span class="cx"> 2014-03-18  Filip Pizlo  &lt;fpizlo@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, add some contributors, and fix Nadav's entry (he's not really a reviewer
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreeAccessibilityControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/AccessibilityController.cpp (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/AccessibilityController.cpp        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Tools/DumpRenderTree/AccessibilityController.cpp        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -130,6 +130,20 @@
</span><span class="cx">     return JSValueMakeUndefined(context);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+static JSValueRef enableEnhancedAccessibilityCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
+{
+    AccessibilityController* controller = static_cast&lt;AccessibilityController*&gt;(JSObjectGetPrivate(thisObject));
+    if (argumentCount == 1)
+        controller-&gt;enableEnhancedAccessibility(JSValueToBoolean(context, arguments[0]));
+    return JSValueMakeUndefined(context);
+}
+
+static JSValueRef getEnhancedAccessibilityEnabledCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef propertyName, JSValueRef* exception)
+{
+    AccessibilityController* controller = static_cast&lt;AccessibilityController*&gt;(JSObjectGetPrivate(thisObject));
+    return JSValueMakeBoolean(context, controller-&gt;enhancedAccessibilityEnabled());
+}
+
</ins><span class="cx"> static JSValueRef getPlatformNameCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef propertyName, JSValueRef* exception)
</span><span class="cx"> {
</span><span class="cx">     AccessibilityController* controller = static_cast&lt;AccessibilityController*&gt;(JSObjectGetPrivate(thisObject));
</span><span class="lines">@@ -150,12 +164,14 @@
</span><span class="cx">         { &quot;accessibleElementById&quot;, getAccessibleElementByIdCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
</span><span class="cx">         { &quot;addNotificationListener&quot;, addNotificationListenerCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
</span><span class="cx">         { &quot;removeNotificationListener&quot;, removeNotificationListenerCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
</span><ins>+        { &quot;enableEnhancedAccessibility&quot;, enableEnhancedAccessibilityCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
</ins><span class="cx">         { 0, 0, 0 }
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     static JSStaticValue staticValues[] = {
</span><span class="cx">         { &quot;focusedElement&quot;, getFocusedElementCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
</span><span class="cx">         { &quot;rootElement&quot;, getRootElementCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
</span><ins>+        { &quot;enhancedAccessibilityEnabled&quot;, getEnhancedAccessibilityEnabledCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
</ins><span class="cx">         { &quot;platformName&quot;, getPlatformNameCallback, 0, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
</span><span class="cx">         { 0, 0, 0, 0 }
</span><span class="cx">     };
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreeAccessibilityControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/AccessibilityController.h (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/AccessibilityController.h        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Tools/DumpRenderTree/AccessibilityController.h        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -64,6 +64,10 @@
</span><span class="cx">     bool addNotificationListener(JSObjectRef functionCallback);
</span><span class="cx">     void removeNotificationListener();
</span><span class="cx"> 
</span><ins>+    // Enhanced accessibility.
+    void enableEnhancedAccessibility(bool);
+    bool enhancedAccessibilityEnabled();
+
</ins><span class="cx">     JSRetainPtr&lt;JSStringRef&gt; platformName() const;
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(WIN)
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreeatkAccessibilityControllerAtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/atk/AccessibilityControllerAtk.cpp (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/atk/AccessibilityControllerAtk.cpp        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Tools/DumpRenderTree/atk/AccessibilityControllerAtk.cpp        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -106,6 +106,17 @@
</span><span class="cx">     m_globalNotificationHandler = nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void AccessibilityController::enableEnhancedAccessibility(bool)
+{
+    // FIXME: implement
+}
+
+bool AccessibilityController::enhancedAccessibilityEnabled()
+{
+    // FIXME: implement
+    return false;
+}
+
</ins><span class="cx"> JSRetainPtr&lt;JSStringRef&gt; AccessibilityController::platformName() const
</span><span class="cx"> {
</span><span class="cx">     JSRetainPtr&lt;JSStringRef&gt; platformName(Adopt, JSStringCreateWithUTF8CString(&quot;atk&quot;));
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreeiosAccessibilityControllerIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/ios/AccessibilityControllerIOS.mm (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/ios/AccessibilityControllerIOS.mm        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Tools/DumpRenderTree/ios/AccessibilityControllerIOS.mm        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -127,6 +127,16 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void AccessibilityController::enableEnhancedAccessibility(bool enable)
+{
+    [mainFrame setEnhancedAccessibility:enable];
+}
+
+bool AccessibilityController::enhancedAccessibilityEnabled()
+{
+    return [mainFrame enhancedAccessibilityEnabled];
+}
+
</ins><span class="cx"> JSRetainPtr&lt;JSStringRef&gt; AccessibilityController::platformName() const
</span><span class="cx"> {
</span><span class="cx">     JSRetainPtr&lt;JSStringRef&gt; platformName(Adopt, JSStringCreateWithUTF8CString(&quot;ios&quot;));
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreemacAccessibilityControllerMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/mac/AccessibilityControllerMac.mm (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/mac/AccessibilityControllerMac.mm        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Tools/DumpRenderTree/mac/AccessibilityControllerMac.mm        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -145,6 +145,16 @@
</span><span class="cx">     // No longer a need to cleanup for tests, since resetToConsistentState will remove the listener.
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void AccessibilityController::enableEnhancedAccessibility(bool enable)
+{
+    [mainFrame setEnhancedAccessibility:enable];
+}
+
+bool AccessibilityController::enhancedAccessibilityEnabled()
+{
+    return [mainFrame enhancedAccessibilityEnabled];
+}
+
</ins><span class="cx"> JSRetainPtr&lt;JSStringRef&gt; AccessibilityController::platformName() const
</span><span class="cx"> {
</span><span class="cx">     JSRetainPtr&lt;JSStringRef&gt; platformName(Adopt, JSStringCreateWithUTF8CString(&quot;mac&quot;));
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreewinAccessibilityControllerWincpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/win/AccessibilityControllerWin.cpp (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/win/AccessibilityControllerWin.cpp        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Tools/DumpRenderTree/win/AccessibilityControllerWin.cpp        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -394,6 +394,17 @@
</span><span class="cx">     m_notificationListeners.add(element, functionCallback);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void AccessibilityController::enableEnhancedAccessibility(bool)
+{
+    // FIXME: implement
+}
+
+bool AccessibilityController::enhancedAccessibilityEnabled()
+{
+    // FIXME: implement
+    return false;
+}
+
</ins><span class="cx"> JSRetainPtr&lt;JSStringRef&gt; AccessibilityController::platformName() const
</span><span class="cx"> {
</span><span class="cx">     JSRetainPtr&lt;JSStringRef&gt; platformName(Adopt, JSStringCreateWithUTF8CString(&quot;win&quot;));
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleAccessibilityControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.cpp (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.cpp        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.cpp        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -61,6 +61,16 @@
</span><span class="cx">     return JSAccessibilityController::accessibilityControllerClass();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void AccessibilityController::enableEnhancedAccessibility(bool enable)
+{
+    WKAccessibilityEnableEnhancedAccessibility(enable);
+}
+
+bool AccessibilityController::enhancedAccessibilityEnabled()
+{
+    return WKAccessibilityEnhancedAccessibilityEnabled();
+}
+
</ins><span class="cx"> #if !PLATFORM(GTK) &amp;&amp; !PLATFORM(EFL)
</span><span class="cx"> PassRefPtr&lt;AccessibilityUIElement&gt; AccessibilityController::rootElement()
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleAccessibilityControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.h (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.h        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/AccessibilityController.h        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -44,6 +44,10 @@
</span><span class="cx">     void makeWindowObject(JSContextRef, JSObjectRef windowObject, JSValueRef* exception);
</span><span class="cx">     virtual JSClassRef wrapperClass();
</span><span class="cx">     
</span><ins>+    // Enhanced accessibility.
+    void enableEnhancedAccessibility(bool);
+    bool enhancedAccessibilityEnabled();
+    
</ins><span class="cx">     JSRetainPtr&lt;JSStringRef&gt; platformName();
</span><span class="cx"> 
</span><span class="cx">     // Controller Methods - platform-independent implementations.
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleBindingsAccessibilityControlleridl"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl (165869 => 165870)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl        2014-03-19 04:44:22 UTC (rev 165869)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl        2014-03-19 06:16:40 UTC (rev 165870)
</span><span class="lines">@@ -24,6 +24,9 @@
</span><span class="cx">  */
</span><span class="cx"> 
</span><span class="cx"> interface AccessibilityController {
</span><ins>+    void enableEnhancedAccessibility(boolean enable);
+    readonly attribute boolean enhancedAccessibilityEnabled;
+
</ins><span class="cx">     readonly attribute DOMString platformName;
</span><span class="cx">     readonly attribute AccessibilityUIElement rootElement;
</span><span class="cx">     readonly attribute AccessibilityUIElement focusedElement;
</span></span></pre>
</div>
</div>

</body>
</html>