Title: [152663] branches/safari-537-branch

Diff

Modified: branches/safari-537-branch/LayoutTests/ChangeLog (152662 => 152663)


--- branches/safari-537-branch/LayoutTests/ChangeLog	2013-07-15 23:01:06 UTC (rev 152662)
+++ branches/safari-537-branch/LayoutTests/ChangeLog	2013-07-15 23:04:26 UTC (rev 152663)
@@ -1,5 +1,22 @@
 2013-07-15  Lucas Forschler  <lforsch...@apple.com>
 
+        Merge r152388
+
+    2013-07-03  Chris Fleizach  <cfleiz...@apple.com>
+
+            AX: Items the img aria role aren't inserting an object replacement character
+            https://bugs.webkit.org/show_bug.cgi?id=118259
+
+            Reviewed by Reviewed by Tim Horton.
+
+            * accessibility/non-native-image-crash-expected.txt:
+            * platform/mac/accessibility/aria-image-emits-object-replacement-expected.txt: Added.
+            * platform/mac/accessibility/aria-image-emits-object-replacement.html: Added.
+            * platform/mac/accessibility/img-fallsback-to-title-expected.txt:
+                 Update expected tests where role="img" now emits replacement character.
+
+2013-07-15  Lucas Forschler  <lforsch...@apple.com>
+
         Merge r152330
 
     2013-07-02  Ruth Fong  <ruth_f...@apple.com>

Modified: branches/safari-537-branch/LayoutTests/accessibility/non-native-image-crash-expected.txt (152662 => 152663)


--- branches/safari-537-branch/LayoutTests/accessibility/non-native-image-crash-expected.txt	2013-07-15 23:01:06 UTC (rev 152662)
+++ branches/safari-537-branch/LayoutTests/accessibility/non-native-image-crash-expected.txt	2013-07-15 23:04:26 UTC (rev 152663)
@@ -1,3 +1,4 @@
+
 ======================== ___][_____ * __/ [___]\ ***====___ \ * \___________] I I ------------/
 This tests that a non native image (one created through ARIA) does not cause an assert. Test passes if it does not crash in debug builds
 

Copied: branches/safari-537-branch/LayoutTests/platform/mac/accessibility/aria-image-emits-object-replacement-expected.txt (from rev 152388, trunk/LayoutTests/platform/mac/accessibility/aria-image-emits-object-replacement-expected.txt) (0 => 152663)


--- branches/safari-537-branch/LayoutTests/platform/mac/accessibility/aria-image-emits-object-replacement-expected.txt	                        (rev 0)
+++ branches/safari-537-branch/LayoutTests/platform/mac/accessibility/aria-image-emits-object-replacement-expected.txt	2013-07-15 23:04:26 UTC (rev 152663)
@@ -0,0 +1,14 @@
+
+This tests ensures that if an ARIA image is used it will emit an object replacement character in a range for string operation.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS text1.textMarkerRangeLength(textMarkerRange) is 5
+Object string for range: a  b
+PASS text1.textMarkerRangeLength(textMarkerRange) is 5
+Object string for range: c  d
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Copied: branches/safari-537-branch/LayoutTests/platform/mac/accessibility/aria-image-emits-object-replacement.html (from rev 152388, trunk/LayoutTests/platform/mac/accessibility/aria-image-emits-object-replacement.html) (0 => 152663)


--- branches/safari-537-branch/LayoutTests/platform/mac/accessibility/aria-image-emits-object-replacement.html	                        (rev 0)
+++ branches/safari-537-branch/LayoutTests/platform/mac/accessibility/aria-image-emits-object-replacement.html	2013-07-15 23:04:26 UTC (rev 152663)
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML>
+<html>
+<body>
+<script src=""
+
+<div id="content" tabindex="0">
+
+<div id="text1">
+a <div role="img" aria-label="blah" style="background-color: #aaaaaa; width: 100px; height: 100px; display:inline-block;"></div> b
+</div>
+
+<br>
+
+<div id="text2">
+c <img src="" aria-label="blah" style="background-color: #aaaaaa; width: 100px; height: 100px;"> d
+</div>
+
+</div>
+
+<div id="console"></div>
+<script>
+
+description("This tests ensures that if an ARIA image is used it will emit an object replacement character in a range for string operation.")
+
+if (window.testRunner && window.accessibilityController) {
+
+   var text1 = accessibilityController.accessibleElementById("text1");
+   var textMarkerRange = text1.textMarkerRangeForElement(text1);
+   shouldBe("text1.textMarkerRangeLength(textMarkerRange)", "5");
+   debug("Object string for range: " + text1.stringForTextMarkerRange(textMarkerRange));
+
+   var text2 = accessibilityController.accessibleElementById("text2");
+   textMarkerRange = text2.textMarkerRangeForElement(text2);
+   shouldBe("text1.textMarkerRangeLength(textMarkerRange)", "5");
+   debug("Object string for range: " + text2.stringForTextMarkerRange(textMarkerRange));
+
+   document.getElementById("content").style.visibility = 'hidden';
+}
+
+</script>
+
+<script src=""
+</body>
+</html>

Modified: branches/safari-537-branch/LayoutTests/platform/mac/accessibility/img-fallsback-to-title-expected.txt (152662 => 152663)


--- branches/safari-537-branch/LayoutTests/platform/mac/accessibility/img-fallsback-to-title-expected.txt	2013-07-15 23:01:06 UTC (rev 152662)
+++ branches/safari-537-branch/LayoutTests/platform/mac/accessibility/img-fallsback-to-title-expected.txt	2013-07-15 23:04:26 UTC (rev 152663)
@@ -1,6 +1,5 @@
-    
+     test
 test
-test
 This tests that images will fallback to using the title attribute if no other descriptive text is present.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".

Modified: branches/safari-537-branch/Source/WebCore/ChangeLog (152662 => 152663)


--- branches/safari-537-branch/Source/WebCore/ChangeLog	2013-07-15 23:01:06 UTC (rev 152662)
+++ branches/safari-537-branch/Source/WebCore/ChangeLog	2013-07-15 23:04:26 UTC (rev 152663)
@@ -1,5 +1,26 @@
 2013-07-15  Lucas Forschler  <lforsch...@apple.com>
 
+        Merge r152388
+
+    2013-07-03  Chris Fleizach  <cfleiz...@apple.com>
+
+            AX: Items the img aria role aren't inserting an object replacement character
+            https://bugs.webkit.org/show_bug.cgi?id=118259
+
+            Reviewed by Tim Horton.
+
+            VoiceOver relies on object replacement characters being emitted when asking for selected text.
+            This has worked if a real <img> is used, but if role="img" is used on a <div>, for example,
+            no emission is performed, which leads to missed elements in text.
+
+            Test: platform/mac/accessibility/aria-image-emits-object-replacement.html
+
+            * editing/TextIterator.cpp:
+            (WebCore::isRendererReplacedElement):
+            (WebCore::TextIterator::advance):
+
+2013-07-15  Lucas Forschler  <lforsch...@apple.com>
+
         Merge r152345
 
     2013-07-03  Radu Stavila  <stav...@adobe.com>

Modified: branches/safari-537-branch/Source/WebCore/editing/TextIterator.cpp (152662 => 152663)


--- branches/safari-537-branch/Source/WebCore/editing/TextIterator.cpp	2013-07-15 23:01:06 UTC (rev 152662)
+++ branches/safari-537-branch/Source/WebCore/editing/TextIterator.cpp	2013-07-15 23:04:26 UTC (rev 152663)
@@ -244,6 +244,27 @@
 
     ASSERT(stack.size() == 1 + depthCrossingShadowBoundaries(node));
 }
+    
+static bool isRendererReplacedElement(RenderObject* renderer)
+{
+    if (!renderer)
+        return false;
+    
+    if (renderer->isImage() || renderer->isWidget())
+        return true;
+    
+    if (renderer->node() && renderer->node()->isElementNode()) {
+        Element* element = toElement(renderer->node());
+        if (element->isFormControlElement() || element->hasTagName(legendTag)
+            || element->hasTagName(meterTag) || element->hasTagName(progressTag))
+            return true;
+        
+        if (equalIgnoringCase(element->getAttribute(roleAttr), "img"))
+            return true;
+    }
+    
+    return false;
+}
 
 // --------
 
@@ -384,12 +405,7 @@
             if (!m_handledNode) {
                 if (renderer->isText() && m_node->nodeType() == Node::TEXT_NODE) // FIXME: What about CDATA_SECTION_NODE?
                     m_handledNode = handleTextNode();
-                else if (renderer && (renderer->isImage() || renderer->isWidget() ||
-                         (renderer->node() && renderer->node()->isElementNode() &&
-                          (toElement(renderer->node())->isFormControlElement()
-                          || toElement(renderer->node())->hasTagName(legendTag)
-                          || toElement(renderer->node())->hasTagName(meterTag)
-                          || toElement(renderer->node())->hasTagName(progressTag)))))
+                else if (isRendererReplacedElement(renderer))
                     m_handledNode = handleReplacedElement();
                 else
                     m_handledNode = handleNonTextNode();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to