Diff
Modified: trunk/LayoutTests/ChangeLog (154777 => 154778)
--- trunk/LayoutTests/ChangeLog 2013-08-28 20:42:02 UTC (rev 154777)
+++ trunk/LayoutTests/ChangeLog 2013-08-28 22:19:25 UTC (rev 154778)
@@ -1,3 +1,16 @@
+2013-08-28 Sam White <[email protected]>
+
+ AX: Cancel button in search field not accessible.
+ <https://webkit.org/b/120322>
+
+ Make sure the cancel button that shows in an input element of
+ type search is accessible and actionable.
+
+ Reviewed by Chris Fleizach.
+
+ * platform/mac/accessibility/search-field-cancel-button-expected.txt: Added.
+ * platform/mac/accessibility/search-field-cancel-button.html: Added.
+
2013-08-28 Ryosuke Niwa <[email protected]>
REGRESSION(r154586): Past names map should only be used when named item is empty
Added: trunk/LayoutTests/platform/mac/accessibility/search-field-cancel-button-expected.txt (0 => 154778)
--- trunk/LayoutTests/platform/mac/accessibility/search-field-cancel-button-expected.txt (rev 0)
+++ trunk/LayoutTests/platform/mac/accessibility/search-field-cancel-button-expected.txt 2013-08-28 22:19:25 UTC (rev 154778)
@@ -0,0 +1,15 @@
+
+This tests that the search field cancel button is exposed correctly.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS button.description is 'AXDescription: cancel'
+PASS button.role is 'AXRole: AXButton'
+PASS button.roleDescription is 'AXRoleDescription: button'
+PASS document.getElementById('search').value is 'X'
+PASS document.getElementById('search').value is ''
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/platform/mac/accessibility/search-field-cancel-button.html (0 => 154778)
--- trunk/LayoutTests/platform/mac/accessibility/search-field-cancel-button.html (rev 0)
+++ trunk/LayoutTests/platform/mac/accessibility/search-field-cancel-button.html 2013-08-28 22:19:25 UTC (rev 154778)
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src=""
+<title>Search Field Cancel Button</title>
+</head>
+<body>
+
+<input id="search" type="search" value="X">
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+ description("This tests that the search field cancel button is exposed correctly.");
+
+ if (window.accessibilityController) {
+ var button = accessibilityController.accessibleElementById("search").childAtIndex(1);
+
+ shouldBe("button.description", "'AXDescription: cancel'");
+ shouldBe("button.role", "'AXRole: AXButton'");
+ shouldBe("button.roleDescription", "'AXRoleDescription: button'");
+
+ // Search field has value before press.
+ shouldBe("document.getElementById('search').value", "'X'");
+
+ button.press();
+
+ // Search field has no value after press.
+ shouldBe("document.getElementById('search').value", "''");
+ }
+</script>
+
+<script src=""
+</body>
+</html>
Modified: trunk/Source/WebCore/CMakeLists.txt (154777 => 154778)
--- trunk/Source/WebCore/CMakeLists.txt 2013-08-28 20:42:02 UTC (rev 154777)
+++ trunk/Source/WebCore/CMakeLists.txt 2013-08-28 22:19:25 UTC (rev 154778)
@@ -980,6 +980,7 @@
accessibility/AccessibilityRenderObject.cpp
accessibility/AccessibilityScrollbar.cpp
accessibility/AccessibilityScrollView.cpp
+ accessibility/AccessibilitySearchFieldButtons.cpp
accessibility/AccessibilitySpinButton.cpp
accessibility/AccessibilitySlider.cpp
accessibility/AccessibilitySVGRoot.cpp
Modified: trunk/Source/WebCore/ChangeLog (154777 => 154778)
--- trunk/Source/WebCore/ChangeLog 2013-08-28 20:42:02 UTC (rev 154777)
+++ trunk/Source/WebCore/ChangeLog 2013-08-28 22:19:25 UTC (rev 154778)
@@ -1,3 +1,45 @@
+2013-08-28 Sam White <[email protected]>
+
+ AX: Cancel button in search field not accessible.
+ <https://webkit.org/b/120322>
+
+ Expose the cancel button that shows in an input element of
+ type search to accessibility.
+
+ Reviewed by Chris Fleizach.
+
+ Test: platform/mac/accessibility/search-field-cancel-button.html
+
+ * CMakeLists.txt:
+ * English.lproj/Localizable.strings:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.vcxproj/WebCore.vcxproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * accessibility/AXObjectCache.cpp:
+ (WebCore::createFromRenderer):
+ * accessibility/AccessibilityAllInOne.cpp:
+ * accessibility/AccessibilitySearchFieldButtons.cpp: Added.
+ (WebCore::AccessibilitySearchFieldCancelButton::create):
+ (WebCore::AccessibilitySearchFieldCancelButton::AccessibilitySearchFieldCancelButton):
+ (WebCore::AccessibilitySearchFieldCancelButton::accessibilityDescription):
+ (WebCore::AccessibilitySearchFieldCancelButton::accessibilityText):
+ (WebCore::AccessibilitySearchFieldCancelButton::press):
+ (WebCore::AccessibilitySearchFieldCancelButton::computeAccessibilityIsIgnored):
+ * accessibility/AccessibilitySearchFieldButtons.h: Added.
+ * dom/Element.h:
+ (WebCore::Element::isSearchFieldCancelButtonElement):
+ * html/shadow/TextControlInnerElements.h:
+ * platform/LocalizedStrings.cpp:
+ (WebCore::AXSearchFieldCancelButtonText):
+ * platform/LocalizedStrings.h:
+ * platform/efl/LocalizedStringsEfl.cpp:
+ (WebCore::AXSearchFieldCancelButtonText):
+ * platform/gtk/LocalizedStringsGtk.cpp:
+ (WebCore::AXSearchFieldCancelButtonText):
+ * platform/qt/LocalizedStringsQt.cpp:
+ (WebCore::AXSearchFieldCancelButtonText):
+
2013-08-28 Eric Carlson <[email protected]>
MediaPlayerPrivateAVFoundationObjC is painting video frames under the video layer
Modified: trunk/Source/WebCore/English.lproj/Localizable.strings (154777 => 154778)
--- trunk/Source/WebCore/English.lproj/Localizable.strings 2013-08-28 20:42:02 UTC (rev 154777)
+++ trunk/Source/WebCore/English.lproj/Localizable.strings 2013-08-28 22:19:25 UTC (rev 154778)
@@ -619,6 +619,9 @@
/* accessibility help text for play button */
"begin playback" = "begin playback";
+/* accessibility description for a search field cancel button */
+"cancel" = "cancel";
+
/* Verb stating the action that will occur when an unchecked checkbox is clicked, as used by accessibility */
"check" = "check";
Modified: trunk/Source/WebCore/GNUmakefile.list.am (154777 => 154778)
--- trunk/Source/WebCore/GNUmakefile.list.am 2013-08-28 20:42:02 UTC (rev 154777)
+++ trunk/Source/WebCore/GNUmakefile.list.am 2013-08-28 22:19:25 UTC (rev 154778)
@@ -2254,6 +2254,8 @@
Source/WebCore/accessibility/AccessibilityScrollbar.h \
Source/WebCore/accessibility/AccessibilityScrollView.cpp \
Source/WebCore/accessibility/AccessibilityScrollView.h \
+ Source/WebCore/accessibility/AccessibilitySearchFieldButtons.cpp \
+ Source/WebCore/accessibility/AccessibilitySearchFieldButtons.h \
Source/WebCore/accessibility/AccessibilitySlider.cpp \
Source/WebCore/accessibility/AccessibilitySlider.h \
Source/WebCore/accessibility/AccessibilitySpinButton.cpp \
Modified: trunk/Source/WebCore/Target.pri (154777 => 154778)
--- trunk/Source/WebCore/Target.pri 2013-08-28 20:42:02 UTC (rev 154777)
+++ trunk/Source/WebCore/Target.pri 2013-08-28 22:19:25 UTC (rev 154778)
@@ -54,6 +54,7 @@
accessibility/AccessibilityRenderObject.cpp \
accessibility/AccessibilityScrollbar.cpp \
accessibility/AccessibilityScrollView.cpp \
+ accessibility/AccessibilitySearchFieldButtons.cpp \
accessibility/AccessibilitySlider.cpp \
accessibility/AccessibilitySpinButton.cpp \
accessibility/AccessibilityARIAGrid.cpp \
Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj (154777 => 154778)
--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj 2013-08-28 20:42:02 UTC (rev 154777)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj 2013-08-28 22:19:25 UTC (rev 154778)
@@ -7014,6 +7014,20 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
</ClCompile>
+ <ClCompile Include="..\accessibility\AccessibilitySearchFieldButtons.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
+ </ClCompile>
<ClCompile Include="..\accessibility\AccessibilitySlider.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
@@ -19002,6 +19016,7 @@
<ClInclude Include="..\accessibility\AccessibilityRenderObject.h" />
<ClInclude Include="..\accessibility\AccessibilityScrollbar.h" />
<ClInclude Include="..\accessibility\AccessibilityScrollView.h" />
+ <ClInclude Include="..\accessibility\AccessibilitySearchFieldButtons.h" />
<ClInclude Include="..\accessibility\AccessibilitySlider.h" />
<ClInclude Include="..\accessibility\AccessibilitySpinButton.h" />
<ClInclude Include="..\accessibility\AccessibilitySVGRoot.h" />
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (154777 => 154778)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2013-08-28 20:42:02 UTC (rev 154777)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2013-08-28 22:19:25 UTC (rev 154778)
@@ -1039,6 +1039,7 @@
4150F9F212B6E0E70008C860 /* SliderThumbElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4150F9F012B6E0E70008C860 /* SliderThumbElement.cpp */; };
4157AF8012F1FB0400A8C6F5 /* MediaControlsApple.h in Headers */ = {isa = PBXBuildFile; fileRef = 4157AF7E12F1FB0400A8C6F5 /* MediaControlsApple.h */; };
4157AF8112F1FB0400A8C6F5 /* MediaControlsApple.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4157AF7F12F1FB0400A8C6F5 /* MediaControlsApple.cpp */; };
+ 415B3A6E17CBE267000FCCE8 /* AccessibilitySearchFieldButtons.h in Headers */ = {isa = PBXBuildFile; fileRef = 415B3A6A17CBE172000FCCE8 /* AccessibilitySearchFieldButtons.h */; };
4162A450101145AE00DFF3ED /* DedicatedWorkerGlobalScope.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4162A44D101145AE00DFF3ED /* DedicatedWorkerGlobalScope.cpp */; };
4162A451101145AE00DFF3ED /* DedicatedWorkerGlobalScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 4162A44E101145AE00DFF3ED /* DedicatedWorkerGlobalScope.h */; };
4162A454101145E300DFF3ED /* JSDedicatedWorkerGlobalScopeCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4162A453101145E300DFF3ED /* JSDedicatedWorkerGlobalScopeCustom.cpp */; };
@@ -7340,6 +7341,8 @@
4150F9F012B6E0E70008C860 /* SliderThumbElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SliderThumbElement.cpp; sourceTree = "<group>"; };
4157AF7E12F1FB0400A8C6F5 /* MediaControlsApple.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaControlsApple.h; sourceTree = "<group>"; };
4157AF7F12F1FB0400A8C6F5 /* MediaControlsApple.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaControlsApple.cpp; sourceTree = "<group>"; };
+ 415B3A6917CBE172000FCCE8 /* AccessibilitySearchFieldButtons.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AccessibilitySearchFieldButtons.cpp; sourceTree = "<group>"; };
+ 415B3A6A17CBE172000FCCE8 /* AccessibilitySearchFieldButtons.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibilitySearchFieldButtons.h; sourceTree = "<group>"; };
4162A44D101145AE00DFF3ED /* DedicatedWorkerGlobalScope.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DedicatedWorkerGlobalScope.cpp; path = workers/DedicatedWorkerGlobalScope.cpp; sourceTree = "<group>"; };
4162A44E101145AE00DFF3ED /* DedicatedWorkerGlobalScope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DedicatedWorkerGlobalScope.h; path = workers/DedicatedWorkerGlobalScope.h; sourceTree = "<group>"; };
4162A44F101145AE00DFF3ED /* DedicatedWorkerGlobalScope.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = DedicatedWorkerGlobalScope.idl; path = workers/DedicatedWorkerGlobalScope.idl; sourceTree = "<group>"; };
@@ -13691,6 +13694,8 @@
93C4F6E91108F9A50099D0DB /* AccessibilityScrollbar.h */,
2981CAA8131822EC00D12F2A /* AccessibilityScrollView.cpp */,
29489FC512C00F0300D83F0F /* AccessibilityScrollView.h */,
+ 415B3A6917CBE172000FCCE8 /* AccessibilitySearchFieldButtons.cpp */,
+ 415B3A6A17CBE172000FCCE8 /* AccessibilitySearchFieldButtons.h */,
2981CAA9131822EC00D12F2A /* AccessibilitySlider.cpp */,
0709FC4D1025DEE30059CDBA /* AccessibilitySlider.h */,
29D7BCF51444AF580070619C /* AccessibilitySpinButton.cpp */,
@@ -21610,6 +21615,7 @@
31C0FF490E4CEFDD007D6FE5 /* DOMWebKitAnimationEvent.h in Headers */,
31C0FF4B0E4CEFDD007D6FE5 /* DOMWebKitAnimationEventInternal.h in Headers */,
A2E8AE4016A498CF006BB3AA /* DOMWebKitCSSFilterRule.h in Headers */,
+ 415B3A6E17CBE267000FCCE8 /* AccessibilitySearchFieldButtons.h in Headers */,
A2E8AE4216A498CF006BB3AA /* DOMWebKitCSSFilterRuleInternal.h in Headers */,
31060379143281CD00ABF4BA /* DOMWebKitCSSFilterValue.h in Headers */,
3106037B143281CD00ABF4BA /* DOMWebKitCSSFilterValueInternal.h in Headers */,
Modified: trunk/Source/WebCore/accessibility/AXObjectCache.cpp (154777 => 154778)
--- trunk/Source/WebCore/accessibility/AXObjectCache.cpp 2013-08-28 20:42:02 UTC (rev 154777)
+++ trunk/Source/WebCore/accessibility/AXObjectCache.cpp 2013-08-28 22:19:25 UTC (rev 154778)
@@ -48,6 +48,7 @@
#include "AccessibilitySVGRoot.h"
#include "AccessibilityScrollView.h"
#include "AccessibilityScrollbar.h"
+#include "AccessibilitySearchFieldButtons.h"
#include "AccessibilitySlider.h"
#include "AccessibilitySpinButton.h"
#include "AccessibilityTable.h"
@@ -276,6 +277,10 @@
return AccessibilitySVGRoot::create(renderer);
#endif
+ // Search field buttons
+ if (node && node->isElementNode() && toElement(node)->isSearchFieldCancelButtonElement())
+ return AccessibilitySearchFieldCancelButton::create(renderer);
+
if (renderer->isBoxModelObject()) {
RenderBoxModelObject* cssBox = toRenderBoxModelObject(renderer);
if (cssBox->isListBox())
Modified: trunk/Source/WebCore/accessibility/AccessibilityAllInOne.cpp (154777 => 154778)
--- trunk/Source/WebCore/accessibility/AccessibilityAllInOne.cpp 2013-08-28 20:42:02 UTC (rev 154777)
+++ trunk/Source/WebCore/accessibility/AccessibilityAllInOne.cpp 2013-08-28 22:19:25 UTC (rev 154778)
@@ -41,6 +41,7 @@
#include "AccessibilitySVGRoot.cpp"
#include "AccessibilityScrollView.cpp"
#include "AccessibilityScrollbar.cpp"
+#include "AccessibilitySearchFieldButtons.cpp"
#include "AccessibilitySlider.cpp"
#include "AccessibilityTable.cpp"
#include "AccessibilityTableCell.cpp"
Added: trunk/Source/WebCore/accessibility/AccessibilitySearchFieldButtons.cpp (0 => 154778)
--- trunk/Source/WebCore/accessibility/AccessibilitySearchFieldButtons.cpp (rev 0)
+++ trunk/Source/WebCore/accessibility/AccessibilitySearchFieldButtons.cpp 2013-08-28 22:19:25 UTC (rev 154778)
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2013 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "AccessibilitySearchFieldButtons.h"
+
+#include "LocalizedStrings.h"
+#include "RenderObject.h"
+
+namespace WebCore {
+
+PassRefPtr<AccessibilitySearchFieldCancelButton> AccessibilitySearchFieldCancelButton::create(RenderObject* renderer)
+{
+ return adoptRef(new AccessibilitySearchFieldCancelButton(renderer));
+}
+
+AccessibilitySearchFieldCancelButton::AccessibilitySearchFieldCancelButton(RenderObject* renderer)
+ : AccessibilityRenderObject(renderer)
+{
+}
+
+String AccessibilitySearchFieldCancelButton::accessibilityDescription() const
+{
+ return AXSearchFieldCancelButtonText();
+}
+
+void AccessibilitySearchFieldCancelButton::accessibilityText(Vector<AccessibilityText>& textOrder)
+{
+ textOrder.append(AccessibilityText(accessibilityDescription(), AlternativeText));
+}
+
+bool AccessibilitySearchFieldCancelButton::press() const
+{
+ Node* node = this->node();
+ if (!node || !node->isElementNode())
+ return false;
+
+ Element* element = toElement(node);
+ // The default event handler on SearchFieldCancelButtonElement requires hover.
+ element->setHovered(true);
+ element->accessKeyAction(true);
+ return true;
+}
+
+bool AccessibilitySearchFieldCancelButton::computeAccessibilityIsIgnored() const
+{
+ return accessibilityIsIgnoredByDefault();
+}
+
+} // namespace WebCore
Added: trunk/Source/WebCore/accessibility/AccessibilitySearchFieldButtons.h (0 => 154778)
--- trunk/Source/WebCore/accessibility/AccessibilitySearchFieldButtons.h (rev 0)
+++ trunk/Source/WebCore/accessibility/AccessibilitySearchFieldButtons.h 2013-08-28 22:19:25 UTC (rev 154778)
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2013 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef AccessibilitySearchFieldButtons_h
+#define AccessibilitySearchFieldButtons_h
+
+#include "AccessibilityRenderObject.h"
+
+namespace WebCore {
+
+class AccessibilitySearchFieldCancelButton FINAL : public AccessibilityRenderObject {
+public:
+ static PassRefPtr<AccessibilitySearchFieldCancelButton> create(RenderObject*);
+
+ virtual String accessibilityDescription() const OVERRIDE;
+ virtual void accessibilityText(Vector<AccessibilityText>&) OVERRIDE;
+ virtual bool press() const OVERRIDE;
+ virtual AccessibilityRole roleValue() const OVERRIDE { return ButtonRole; }
+
+protected:
+ virtual bool computeAccessibilityIsIgnored() const OVERRIDE;
+
+private:
+ explicit AccessibilitySearchFieldCancelButton(RenderObject*);
+};
+
+} // namespace WebCore
+
+#endif // AccessibilitySearchFieldButtons_h
Modified: trunk/Source/WebCore/dom/Element.h (154777 => 154778)
--- trunk/Source/WebCore/dom/Element.h 2013-08-28 20:42:02 UTC (rev 154777)
+++ trunk/Source/WebCore/dom/Element.h 2013-08-28 22:19:25 UTC (rev 154778)
@@ -469,6 +469,7 @@
virtual bool isInRange() const { return false; }
virtual bool isOutOfRange() const { return false; }
virtual bool isFrameElementBase() const { return false; }
+ virtual bool isSearchFieldCancelButtonElement() const { return false; }
virtual bool canContainRangeEndPoint() const { return true; }
Modified: trunk/Source/WebCore/html/shadow/TextControlInnerElements.h (154777 => 154778)
--- trunk/Source/WebCore/html/shadow/TextControlInnerElements.h 2013-08-28 20:42:02 UTC (rev 154777)
+++ trunk/Source/WebCore/html/shadow/TextControlInnerElements.h 2013-08-28 22:19:25 UTC (rev 154778)
@@ -86,6 +86,7 @@
static PassRefPtr<SearchFieldCancelButtonElement> create(Document*);
virtual void defaultEventHandler(Event*);
+ virtual bool isSearchFieldCancelButtonElement() const OVERRIDE { return true; }
virtual bool willRespondToMouseClickEvents() OVERRIDE;
private:
Modified: trunk/Source/WebCore/platform/LocalizedStrings.cpp (154777 => 154778)
--- trunk/Source/WebCore/platform/LocalizedStrings.cpp 2013-08-28 20:42:02 UTC (rev 154777)
+++ trunk/Source/WebCore/platform/LocalizedStrings.cpp 2013-08-28 22:19:25 UTC (rev 154778)
@@ -604,7 +604,12 @@
{
return WEB_UI_STRING("file upload button", "accessibility role description for a file upload button");
}
-
+
+String AXSearchFieldCancelButtonText()
+{
+ return WEB_UI_STRING("cancel", "accessibility description for a search field cancel button");
+}
+
String AXButtonActionVerb()
{
return WEB_UI_STRING("press", "Verb stating the action that will occur when a button is pressed, as used by accessibility");
Modified: trunk/Source/WebCore/platform/LocalizedStrings.h (154777 => 154778)
--- trunk/Source/WebCore/platform/LocalizedStrings.h 2013-08-28 20:42:02 UTC (rev 154777)
+++ trunk/Source/WebCore/platform/LocalizedStrings.h 2013-08-28 22:19:25 UTC (rev 154778)
@@ -163,6 +163,7 @@
String AXDescriptionListDetailText();
String AXFooterRoleDescriptionText();
String AXFileUploadButtonText();
+ String AXSearchFieldCancelButtonText();
String AXButtonActionVerb();
String AXRadioButtonActionVerb();
Modified: trunk/Source/WebCore/platform/efl/LocalizedStringsEfl.cpp (154777 => 154778)
--- trunk/Source/WebCore/platform/efl/LocalizedStringsEfl.cpp 2013-08-28 20:42:02 UTC (rev 154777)
+++ trunk/Source/WebCore/platform/efl/LocalizedStringsEfl.cpp 2013-08-28 22:19:25 UTC (rev 154778)
@@ -403,6 +403,11 @@
return String::fromUTF8("footer");
}
+String AXSearchFieldCancelButtonText()
+{
+ return String::fromUTF8("cancel");
+}
+
String AXButtonActionVerb()
{
return String::fromUTF8("press");
Modified: trunk/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp (154777 => 154778)
--- trunk/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp 2013-08-28 20:42:02 UTC (rev 154777)
+++ trunk/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp 2013-08-28 22:19:25 UTC (rev 154778)
@@ -452,6 +452,11 @@
return String::fromUTF8(_("footer"));
}
+String AXSearchFieldCancelButtonText()
+{
+ return String::fromUTF8(_("cancel"));
+}
+
String AXButtonActionVerb()
{
return String::fromUTF8(_("press"));
Modified: trunk/Source/WebCore/platform/qt/LocalizedStringsQt.cpp (154777 => 154778)
--- trunk/Source/WebCore/platform/qt/LocalizedStringsQt.cpp 2013-08-28 20:42:02 UTC (rev 154777)
+++ trunk/Source/WebCore/platform/qt/LocalizedStringsQt.cpp 2013-08-28 22:19:25 UTC (rev 154778)
@@ -423,6 +423,12 @@
return String();
}
+String AXSearchFieldCancelButtonText()
+{
+ notImplemented();
+ return String();
+}
+
String AXButtonActionVerb()
{
notImplemented();