<!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>[169081] 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/169081">169081</a></dd>
<dt>Author</dt> <dd>cfleizach@apple.com</dd>
<dt>Date</dt> <dd>2014-05-19 16:37:56 -0700 (Mon, 19 May 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>AX: VoiceOver sees the WebArea out of order when topContentInset is used
https://bugs.webkit.org/show_bug.cgi?id=133091

Reviewed by Simon Fraser.


Source/WebCore: 
Modify the scroll view's frame so that it recognizes the content inset.
This is needed so that when VoiceOver sorts elements to create an ordering,
the web area is not ordered at the top of the screen.

Test: platform/mac-wk2/accessibility/content-inset-scrollview-frame.html

* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::elementRect):

LayoutTests: 
* platform/mac-wk2/accessibility/content-inset-scrollview-frame-expected.txt: Added.
* platform/mac-wk2/accessibility/content-inset-scrollview-frame.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="#trunkSourceWebCoreaccessibilityAccessibilityScrollViewcpp">trunk/Source/WebCore/accessibility/AccessibilityScrollView.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsplatformmacwk2accessibilitycontentinsetscrollviewframeexpectedtxt">trunk/LayoutTests/platform/mac-wk2/accessibility/content-inset-scrollview-frame-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacwk2accessibilitycontentinsetscrollviewframehtml">trunk/LayoutTests/platform/mac-wk2/accessibility/content-inset-scrollview-frame.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (169080 => 169081)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2014-05-19 23:08:58 UTC (rev 169080)
+++ trunk/LayoutTests/ChangeLog        2014-05-19 23:37:56 UTC (rev 169081)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2014-05-19  Chris Fleizach  &lt;cfleizach@apple.com&gt;
+
+        AX: VoiceOver sees the WebArea out of order when topContentInset is used
+        https://bugs.webkit.org/show_bug.cgi?id=133091
+
+        Reviewed by Simon Fraser.
+
+        * platform/mac-wk2/accessibility/content-inset-scrollview-frame-expected.txt: Added.
+        * platform/mac-wk2/accessibility/content-inset-scrollview-frame.html: Added.
+
</ins><span class="cx"> 2014-05-19  Simon Fraser  &lt;simon.fraser@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Split scrolling tree ScrollingNodes into FrameScrollingNodes and OverflowScrollingNodes
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk2accessibilitycontentinsetscrollviewframeexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac-wk2/accessibility/content-inset-scrollview-frame-expected.txt (0 => 169081)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk2/accessibility/content-inset-scrollview-frame-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/mac-wk2/accessibility/content-inset-scrollview-frame-expected.txt        2014-05-19 23:37:56 UTC (rev 169081)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+This tests that a page with a content inset will not affect the bounds of the main frame scroll view. It will appear as the same as the web area's sbounds
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Web area role: AXRole: AXWebArea
+WebArea frame: {-10000, 10300}, {800, 600}
+ScrollView role: AXRole: AXScrollArea
+ScrollView frame (0 content inset): {-10000, 10300}, {800, 600}
+ScrollView frame (100 content inset): {-10000, 10200}, {800, 600}
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk2accessibilitycontentinsetscrollviewframehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac-wk2/accessibility/content-inset-scrollview-frame.html (0 => 169081)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk2/accessibility/content-inset-scrollview-frame.html                                (rev 0)
+++ trunk/LayoutTests/platform/mac-wk2/accessibility/content-inset-scrollview-frame.html        2014-05-19 23:37:56 UTC (rev 169081)
</span><span class="lines">@@ -0,0 +1,36 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body id=&quot;body&quot;&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 a page with a content inset will not affect the bounds of the main frame scroll view. It will appear as the same as the web area's sbounds&quot;);
+
+    function outputFrame(message, element) {
+        debug(message + &quot;: {&quot; + element.x + &quot;, &quot; + element.y + &quot;}, {&quot; + element.width + &quot;, &quot; + element.height + &quot;}&quot;);
+    }
+
+    if (window.accessibilityController) {
+        var webArea = accessibilityController.rootElement.childAtIndex(0);
+        debug(&quot;Web area role: &quot; + webArea.role);
+        outputFrame(&quot;WebArea frame&quot;, webArea);
+
+        var scrollView = webArea.parentElement();
+        debug(&quot;ScrollView role: &quot; + scrollView.role);
+        outputFrame(&quot;ScrollView frame (0 content inset)&quot;, scrollView);
+    
+        window.internals.setTopContentInset(100);
+
+        outputFrame(&quot;ScrollView frame (100 content inset)&quot;, scrollView);
+    }
+&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 (169080 => 169081)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-05-19 23:08:58 UTC (rev 169080)
+++ trunk/Source/WebCore/ChangeLog        2014-05-19 23:37:56 UTC (rev 169081)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2014-05-19  Chris Fleizach  &lt;cfleizach@apple.com&gt;
+
+        AX: VoiceOver sees the WebArea out of order when topContentInset is used
+        https://bugs.webkit.org/show_bug.cgi?id=133091
+
+        Reviewed by Simon Fraser.
+
+        Modify the scroll view's frame so that it recognizes the content inset.
+        This is needed so that when VoiceOver sorts elements to create an ordering,
+        the web area is not ordered at the top of the screen.
+
+        Test: platform/mac-wk2/accessibility/content-inset-scrollview-frame.html
+
+        * accessibility/AccessibilityScrollView.cpp:
+        (WebCore::AccessibilityScrollView::elementRect):
+
</ins><span class="cx"> 2014-05-19  Beth Dakin  &lt;bdakin@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Scrollbars display incorrectly after switching between fast and slow scrolling 
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityScrollViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityScrollView.cpp (169080 => 169081)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityScrollView.cpp        2014-05-19 23:08:58 UTC (rev 169080)
+++ trunk/Source/WebCore/accessibility/AccessibilityScrollView.cpp        2014-05-19 23:37:56 UTC (rev 169081)
</span><span class="lines">@@ -221,7 +221,9 @@
</span><span class="cx">     if (!m_scrollView)
</span><span class="cx">         return LayoutRect();
</span><span class="cx"> 
</span><del>-    return m_scrollView-&gt;frameRect();
</del><ins>+    LayoutRect rect = m_scrollView-&gt;frameRect();
+    rect.setY(rect.y() + m_scrollView-&gt;topContentInset());
+    return rect;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> FrameView* AccessibilityScrollView::documentFrameView() const
</span></span></pre>
</div>
</div>

</body>
</html>