summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authordglazkov@chromium.org <dglazkov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-30 19:42:22 +0000
committerdglazkov@chromium.org <dglazkov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-30 19:42:22 +0000
commitcef27d2fed12f583ea9782f8b790718a78c25936 (patch)
treedec295672d8566d4e4d20630971b6430f924638b /webkit
parentb59ecb3276d717e503ea8035f03f1182cfde8d0c (diff)
downloadchromium_src-cef27d2fed12f583ea9782f8b790718a78c25936.zip
chromium_src-cef27d2fed12f583ea9782f8b790718a78c25936.tar.gz
chromium_src-cef27d2fed12f583ea9782f8b790718a78c25936.tar.bz2
Remove WebCore dependencies from accessibility_ui_element.
R=darin BUG=24596 TEST=no regressions Review URL: http://codereview.chromium.org/343060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30617 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/api/public/WebAccessibilityObject.h9
-rwxr-xr-xwebkit/api/public/WebAccessibilityRole.h129
-rw-r--r--webkit/api/src/AssertMatchingEnums.cpp83
-rwxr-xr-xwebkit/api/src/WebAccessibilityObject.cpp58
-rw-r--r--webkit/tools/test_shell/accessibility_ui_element.cc210
-rw-r--r--webkit/webkit.gyp1
6 files changed, 373 insertions, 117 deletions
diff --git a/webkit/api/public/WebAccessibilityObject.h b/webkit/api/public/WebAccessibilityObject.h
index 60142fa..5bfbdc1 100644
--- a/webkit/api/public/WebAccessibilityObject.h
+++ b/webkit/api/public/WebAccessibilityObject.h
@@ -32,6 +32,7 @@
#define WebAccessibilityObject_h
#include "WebCommon.h"
+#include "WebAccessibilityRole.h"
#if WEBKIT_IMPLEMENTATION
namespace WebCore { class AccessibilityObject; }
@@ -40,6 +41,7 @@ namespace WTF { template <typename T> class PassRefPtr; }
namespace WebKit {
class WebAccessibilityObjectPrivate;
+ class WebString;
// A container for passing around a reference to AccessibilityObject.
class WebAccessibilityObject {
@@ -55,6 +57,13 @@ namespace WebKit {
bool isNull() const { return m_private == 0; }
+ WebString accessibilityDescription() const;
+ WebAccessibilityObject childAt(unsigned) const;
+ unsigned childCount() const;
+ bool isEnabled() const;
+ WebAccessibilityRole roleValue() const;
+ WebString title() const;
+
#if WEBKIT_IMPLEMENTATION
WebAccessibilityObject(const WTF::PassRefPtr<WebCore::AccessibilityObject>&);
WebAccessibilityObject& operator=(const WTF::PassRefPtr<WebCore::AccessibilityObject>&);
diff --git a/webkit/api/public/WebAccessibilityRole.h b/webkit/api/public/WebAccessibilityRole.h
new file mode 100755
index 0000000..b308c21
--- /dev/null
+++ b/webkit/api/public/WebAccessibilityRole.h
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2009 Google 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:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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 WebAccessibilityRole_h
+#define WebAccessibilityRole_h
+
+#include "WebCommon.h"
+
+namespace WebKit {
+
+ // These values must match WebCore::AccessibilityRole values
+ enum WebAccessibilityRole {
+ WebAccessibilityRoleUnknown = 1,
+ WebAccessibilityRoleButton,
+ WebAccessibilityRoleRadioButton,
+ WebAccessibilityRoleCheckBox,
+ WebAccessibilityRoleSlider,
+ WebAccessibilityRoleTabGroup,
+ WebAccessibilityRoleTextField,
+ WebAccessibilityRoleStaticText,
+ WebAccessibilityRoleTextArea,
+ WebAccessibilityRoleScrollArea,
+ WebAccessibilityRolePopUpButton,
+ WebAccessibilityRoleMenuButton,
+ WebAccessibilityRoleTable,
+ WebAccessibilityRoleApplication,
+ WebAccessibilityRoleGroup,
+ WebAccessibilityRoleRadioGroup,
+ WebAccessibilityRoleList,
+ WebAccessibilityRoleScrollBar,
+ WebAccessibilityRoleValueIndicator,
+ WebAccessibilityRoleImage,
+ WebAccessibilityRoleMenuBar,
+ WebAccessibilityRoleMenu,
+ WebAccessibilityRoleMenuItem,
+ WebAccessibilityRoleColumn,
+ WebAccessibilityRoleRow,
+ WebAccessibilityRoleToolbar,
+ WebAccessibilityRoleBusyIndicator,
+ WebAccessibilityRoleProgressIndicator,
+ WebAccessibilityRoleWindow,
+ WebAccessibilityRoleDrawer,
+ WebAccessibilityRoleSystemWide,
+ WebAccessibilityRoleOutline,
+ WebAccessibilityRoleIncrementor,
+ WebAccessibilityRoleBrowser,
+ WebAccessibilityRoleComboBox,
+ WebAccessibilityRoleSplitGroup,
+ WebAccessibilityRoleSplitter,
+ WebAccessibilityRoleColorWell,
+ WebAccessibilityRoleGrowArea,
+ WebAccessibilityRoleSheet,
+ WebAccessibilityRoleHelpTag,
+ WebAccessibilityRoleMatte,
+ WebAccessibilityRoleRuler,
+ WebAccessibilityRoleRulerMarker,
+ WebAccessibilityRoleLink,
+ WebAccessibilityRoleDisclosureTriangle,
+ WebAccessibilityRoleGrid,
+ WebAccessibilityRoleCell,
+ WebAccessibilityRoleColumnHeader,
+ WebAccessibilityRoleRowHeader,
+
+ WebAccessibilityRoleWebCoreLink,
+ WebAccessibilityRoleImageMapLink,
+ WebAccessibilityRoleImageMap,
+ WebAccessibilityRoleListMarker,
+ WebAccessibilityRoleWebArea,
+ WebAccessibilityRoleHeading,
+ WebAccessibilityRoleListBox,
+ WebAccessibilityRoleListBoxOption,
+ WebAccessibilityRoleTableHeaderContainer,
+ WebAccessibilityRoleDefinitionListTerm,
+ WebAccessibilityRoleDefinitionListDefinition,
+ WebAccessibilityRoleAnnotation,
+ WebAccessibilityRoleSliderThumb,
+ WebAccessibilityRoleIgnored,
+
+ WebAccessibilityRoleLandmarkApplication,
+ WebAccessibilityRoleLandmarkBanner,
+ WebAccessibilityRoleLandmarkComplementary,
+ WebAccessibilityRoleLandmarkContentInfo,
+ WebAccessibilityRoleLandmarkMain,
+ WebAccessibilityRoleLandmarkNavigation,
+ WebAccessibilityRoleLandmarkSearch,
+
+ WebAccessibilityRoleApplicationLog,
+ WebAccessibilityRoleApplicationMarquee,
+ WebAccessibilityRoleApplicationStatus,
+ WebAccessibilityRoleApplicationTimer,
+
+ WebAccessibilityRoleDocument,
+ WebAccessibilityRoleDocumentArticle,
+ WebAccessibilityRoleDocumentNote,
+ WebAccessibilityRoleDocumentRegion,
+
+ WebAccessibilityRoleUserInterfaceTooltip
+ };
+
+} // namespace WebKit
+
+#endif
diff --git a/webkit/api/src/AssertMatchingEnums.cpp b/webkit/api/src/AssertMatchingEnums.cpp
index 32a79c0..b5616a9 100644
--- a/webkit/api/src/AssertMatchingEnums.cpp
+++ b/webkit/api/src/AssertMatchingEnums.cpp
@@ -33,6 +33,7 @@
#include "config.h"
+#include "AccessibilityObject.h"
#include "ApplicationCacheHost.h"
#include "EditorInsertAction.h"
#include "MediaPlayer.h"
@@ -40,6 +41,7 @@
#include "PasteboardPrivate.h"
#include "PlatformCursor.h"
#include "TextAffinity.h"
+#include "WebAccessibilityObject.h"
#include "WebApplicationCacheHost.h"
#include "WebClipboard.h"
#include "WebCursorInfo.h"
@@ -52,6 +54,87 @@
#define COMPILE_ASSERT_MATCHING_ENUM(webkit_name, webcore_name) \
COMPILE_ASSERT(int(WebKit::webkit_name) == int(WebCore::webcore_name), mismatching_enums)
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleUnknown, UnknownRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleButton, ButtonRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleRadioButton, RadioButtonRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleCheckBox, CheckBoxRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleSlider, SliderRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleTabGroup, TabGroupRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleTextField, TextFieldRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleStaticText, StaticTextRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleTextArea, TextAreaRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleScrollArea, ScrollAreaRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRolePopUpButton, PopUpButtonRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleMenuButton, MenuButtonRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleTable, TableRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleApplication, ApplicationRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleGroup, GroupRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleRadioGroup, RadioGroupRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleList, ListRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleScrollBar, ScrollBarRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleValueIndicator, ValueIndicatorRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleImage, ImageRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleMenuBar, MenuBarRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleMenu, MenuRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleMenuItem, MenuItemRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleColumn, ColumnRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleRow, RowRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleToolbar, ToolbarRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleBusyIndicator, BusyIndicatorRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleProgressIndicator, ProgressIndicatorRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleWindow, WindowRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleDrawer, DrawerRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleSystemWide, SystemWideRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleOutline, OutlineRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleIncrementor, IncrementorRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleBrowser, BrowserRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleComboBox, ComboBoxRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleSplitGroup, SplitGroupRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleSplitter, SplitterRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleColorWell, ColorWellRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleGrowArea, GrowAreaRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleSheet, SheetRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleHelpTag, HelpTagRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleMatte, MatteRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleRuler, RulerRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleRulerMarker, RulerMarkerRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleLink, LinkRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleDisclosureTriangle, DisclosureTriangleRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleGrid, GridRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleCell, CellRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleColumnHeader, ColumnHeaderRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleRowHeader, RowHeaderRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleWebCoreLink, WebCoreLinkRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleImageMapLink, ImageMapLinkRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleImageMap, ImageMapRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleListMarker, ListMarkerRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleWebArea, WebAreaRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleHeading, HeadingRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleListBox, ListBoxRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleListBoxOption, ListBoxOptionRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleTableHeaderContainer, TableHeaderContainerRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleDefinitionListTerm, DefinitionListTermRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleDefinitionListDefinition, DefinitionListDefinitionRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleAnnotation, AnnotationRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleSliderThumb, SliderThumbRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleIgnored, IgnoredRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleLandmarkApplication, LandmarkApplicationRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleLandmarkBanner, LandmarkBannerRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleLandmarkComplementary, LandmarkComplementaryRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleLandmarkContentInfo, LandmarkContentInfoRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleLandmarkMain, LandmarkMainRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleLandmarkNavigation, LandmarkNavigationRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleLandmarkSearch, LandmarkSearchRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleApplicationLog, ApplicationLogRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleApplicationMarquee, ApplicationMarqueeRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleApplicationStatus, ApplicationStatusRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleApplicationTimer, ApplicationTimerRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleDocument, DocumentRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleDocumentArticle, DocumentArticleRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleDocumentNote, DocumentNoteRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleDocumentRegion, DocumentRegionRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleUserInterfaceTooltip, UserInterfaceTooltipRole);
+
#if ENABLE(OFFLINE_WEB_APPLICATIONS)
COMPILE_ASSERT_MATCHING_ENUM(WebApplicationCacheHost::Uncached, ApplicationCacheHost::UNCACHED);
COMPILE_ASSERT_MATCHING_ENUM(WebApplicationCacheHost::Idle, ApplicationCacheHost::IDLE);
diff --git a/webkit/api/src/WebAccessibilityObject.cpp b/webkit/api/src/WebAccessibilityObject.cpp
index b53f890..f1da633 100755
--- a/webkit/api/src/WebAccessibilityObject.cpp
+++ b/webkit/api/src/WebAccessibilityObject.cpp
@@ -29,9 +29,9 @@
*/
#include "config.h"
-#include "WebAccessibilityObject.h"
-
#include "AccessibilityObject.h"
+#include "WebAccessibilityObject.h"
+#include "WebString.h"
using namespace WebCore;
@@ -53,6 +53,60 @@ void WebAccessibilityObject::assign(const WebKit::WebAccessibilityObject& other)
assign(p);
}
+WebString WebAccessibilityObject::accessibilityDescription() const
+{
+ if (!m_private)
+ return WebString();
+
+ m_private->updateBackingStore();
+ return m_private->accessibilityDescription();
+}
+
+WebAccessibilityObject WebAccessibilityObject::childAt(unsigned index) const
+{
+ if (!m_private)
+ return WebAccessibilityObject();
+
+ m_private->updateBackingStore();
+ if (m_private->children().size() <= index)
+ return WebAccessibilityObject();
+
+ return WebAccessibilityObject(m_private->children()[index]);
+}
+
+unsigned WebAccessibilityObject::childCount() const
+{
+ if (!m_private)
+ return 0;
+
+ m_private->updateBackingStore();
+ return m_private->children().size();
+}
+
+bool WebAccessibilityObject::isEnabled() const
+{
+ if (!m_private)
+ return 0;
+
+ m_private->updateBackingStore();
+ return m_private->isEnabled();
+}
+
+WebAccessibilityRole WebAccessibilityObject::roleValue() const
+{
+ m_private->updateBackingStore();
+ return static_cast<WebAccessibilityRole>(m_private->roleValue());
+}
+
+WebString WebAccessibilityObject::title() const
+{
+ if (!m_private)
+ return WebString();
+
+ m_private->updateBackingStore();
+ return m_private->title();
+}
+
WebAccessibilityObject::WebAccessibilityObject(const WTF::PassRefPtr<WebCore::AccessibilityObject>& object)
: m_private(static_cast<WebAccessibilityObjectPrivate*>(object.releaseRef()))
{
diff --git a/webkit/tools/test_shell/accessibility_ui_element.cc b/webkit/tools/test_shell/accessibility_ui_element.cc
index 50a70e6..75d50ca 100644
--- a/webkit/tools/test_shell/accessibility_ui_element.cc
+++ b/webkit/tools/test_shell/accessibility_ui_element.cc
@@ -2,199 +2,183 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "config.h"
-
-#include "AccessibilityObject.h"
-
-#undef LOG
-
#include "webkit/api/public/WebAccessibilityObject.h"
+#include "webkit/api/public/WebCString.h"
+#include "webkit/api/public/WebString.h"
#include "webkit/glue/glue_util.h"
#include "webkit/tools/test_shell/accessibility_ui_element.h"
-using namespace WebCore;
-
+using WebKit::WebCString;
+using WebKit::WebString;
using WebKit::WebAccessibilityObject;
-
-using webkit_glue::StringToStdString;
-using webkit_glue::AccessibilityObjectToWebAccessibilityObject;
-using webkit_glue::WebAccessibilityObjectToAccessibilityObject;
+using WebKit::WebAccessibilityRole;
namespace {
-static PassRefPtr<AccessibilityObject> AXObject(
- const WebAccessibilityObject& object) {
- RefPtr<AccessibilityObject> o =
- WebAccessibilityObjectToAccessibilityObject(object);
- // Always ask to update the render tree before querying accessibility object.
- o->updateBackingStore();
- return o;
-}
-
// Map role value to string, matching Safari/Mac platform implementation to
// avoid rebaselining layout tests.
-static std::string RoleToString(AccessibilityRole role) {
+static std::string RoleToString(WebAccessibilityRole role) {
std::string result = "AXRole: AX";
switch (role) {
- case ButtonRole:
+ case WebKit::WebAccessibilityRoleButton:
return result.append("Button");
- case RadioButtonRole:
+ case WebKit::WebAccessibilityRoleRadioButton:
return result.append("RadioButton");
- case CheckBoxRole:
+ case WebKit::WebAccessibilityRoleCheckBox:
return result.append("CheckBox");
- case SliderRole:
+ case WebKit::WebAccessibilityRoleSlider:
return result.append("Slider");
- case TabGroupRole:
+ case WebKit::WebAccessibilityRoleTabGroup:
return result.append("TabGroup");
- case TextFieldRole:
+ case WebKit::WebAccessibilityRoleTextField:
return result.append("TextField");
- case StaticTextRole:
+ case WebKit::WebAccessibilityRoleStaticText:
return result.append("StaticText");
- case TextAreaRole:
+ case WebKit::WebAccessibilityRoleTextArea:
return result.append("TextArea");
- case ScrollAreaRole:
+ case WebKit::WebAccessibilityRoleScrollArea:
return result.append("ScrollArea");
- case PopUpButtonRole:
+ case WebKit::WebAccessibilityRolePopUpButton:
return result.append("PopUpButton");
- case MenuButtonRole:
+ case WebKit::WebAccessibilityRoleMenuButton:
return result.append("MenuButton");
- case TableRole:
+ case WebKit::WebAccessibilityRoleTable:
return result.append("Table");
- case ApplicationRole:
+ case WebKit::WebAccessibilityRoleApplication:
return result.append("Application");
- case GroupRole:
+ case WebKit::WebAccessibilityRoleGroup:
return result.append("Group");
- case RadioGroupRole:
+ case WebKit::WebAccessibilityRoleRadioGroup:
return result.append("RadioGroup");
- case ListRole:
+ case WebKit::WebAccessibilityRoleList:
return result.append("List");
- case ScrollBarRole:
+ case WebKit::WebAccessibilityRoleScrollBar:
return result.append("ScrollBar");
- case ValueIndicatorRole:
+ case WebKit::WebAccessibilityRoleValueIndicator:
return result.append("ValueIndicator");
- case ImageRole:
+ case WebKit::WebAccessibilityRoleImage:
return result.append("Image");
- case MenuBarRole:
+ case WebKit::WebAccessibilityRoleMenuBar:
return result.append("MenuBar");
- case MenuRole:
+ case WebKit::WebAccessibilityRoleMenu:
return result.append("Menu");
- case MenuItemRole:
+ case WebKit::WebAccessibilityRoleMenuItem:
return result.append("MenuItem");
- case ColumnRole:
+ case WebKit::WebAccessibilityRoleColumn:
return result.append("Column");
- case RowRole:
+ case WebKit::WebAccessibilityRoleRow:
return result.append("Row");
- case ToolbarRole:
+ case WebKit::WebAccessibilityRoleToolbar:
return result.append("Toolbar");
- case BusyIndicatorRole:
+ case WebKit::WebAccessibilityRoleBusyIndicator:
return result.append("BusyIndicator");
- case ProgressIndicatorRole:
+ case WebKit::WebAccessibilityRoleProgressIndicator:
return result.append("ProgressIndicator");
- case WindowRole:
+ case WebKit::WebAccessibilityRoleWindow:
return result.append("Window");
- case DrawerRole:
+ case WebKit::WebAccessibilityRoleDrawer:
return result.append("Drawer");
- case SystemWideRole:
+ case WebKit::WebAccessibilityRoleSystemWide:
return result.append("SystemWide");
- case OutlineRole:
+ case WebKit::WebAccessibilityRoleOutline:
return result.append("Outline");
- case IncrementorRole:
+ case WebKit::WebAccessibilityRoleIncrementor:
return result.append("Incrementor");
- case BrowserRole:
+ case WebKit::WebAccessibilityRoleBrowser:
return result.append("Browser");
- case ComboBoxRole:
+ case WebKit::WebAccessibilityRoleComboBox:
return result.append("ComboBox");
- case SplitGroupRole:
+ case WebKit::WebAccessibilityRoleSplitGroup:
return result.append("SplitGroup");
- case SplitterRole:
+ case WebKit::WebAccessibilityRoleSplitter:
return result.append("Splitter");
- case ColorWellRole:
+ case WebKit::WebAccessibilityRoleColorWell:
return result.append("ColorWell");
- case GrowAreaRole:
+ case WebKit::WebAccessibilityRoleGrowArea:
return result.append("GrowArea");
- case SheetRole:
+ case WebKit::WebAccessibilityRoleSheet:
return result.append("Sheet");
- case HelpTagRole:
+ case WebKit::WebAccessibilityRoleHelpTag:
return result.append("HelpTag");
- case MatteRole:
+ case WebKit::WebAccessibilityRoleMatte:
return result.append("Matte");
- case RulerRole:
+ case WebKit::WebAccessibilityRoleRuler:
return result.append("Ruler");
- case RulerMarkerRole:
+ case WebKit::WebAccessibilityRoleRulerMarker:
return result.append("RulerMarker");
- case LinkRole:
+ case WebKit::WebAccessibilityRoleLink:
return result.append("Link");
- case DisclosureTriangleRole:
+ case WebKit::WebAccessibilityRoleDisclosureTriangle:
return result.append("DisclosureTriangle");
- case GridRole:
+ case WebKit::WebAccessibilityRoleGrid:
return result.append("Grid");
- case CellRole:
+ case WebKit::WebAccessibilityRoleCell:
return result.append("Cell");
- case ColumnHeaderRole:
+ case WebKit::WebAccessibilityRoleColumnHeader:
return result.append("ColumnHeader");
- case RowHeaderRole:
+ case WebKit::WebAccessibilityRoleRowHeader:
return result.append("RowHeader");
- case WebCoreLinkRole:
+ case WebKit::WebAccessibilityRoleWebCoreLink:
// Maps to Link role.
return result.append("Link");
- case ImageMapLinkRole:
+ case WebKit::WebAccessibilityRoleImageMapLink:
return result.append("ImageMapLink");
- case ImageMapRole:
+ case WebKit::WebAccessibilityRoleImageMap:
return result.append("ImageMap");
- case ListMarkerRole:
+ case WebKit::WebAccessibilityRoleListMarker:
return result.append("ListMarker");
- case WebAreaRole:
+ case WebKit::WebAccessibilityRoleWebArea:
return result.append("WebArea");
- case HeadingRole:
+ case WebKit::WebAccessibilityRoleHeading:
return result.append("Heading");
- case ListBoxRole:
+ case WebKit::WebAccessibilityRoleListBox:
return result.append("ListBox");
- case ListBoxOptionRole:
+ case WebKit::WebAccessibilityRoleListBoxOption:
return result.append("ListBoxOption");
- case TableHeaderContainerRole:
+ case WebKit::WebAccessibilityRoleTableHeaderContainer:
return result.append("TableHeaderContainer");
- case DefinitionListTermRole:
+ case WebKit::WebAccessibilityRoleDefinitionListTerm:
return result.append("DefinitionListTerm");
- case DefinitionListDefinitionRole:
+ case WebKit::WebAccessibilityRoleDefinitionListDefinition:
return result.append("DefinitionListDefinition");
- case AnnotationRole:
+ case WebKit::WebAccessibilityRoleAnnotation:
return result.append("Annotation");
- case SliderThumbRole:
+ case WebKit::WebAccessibilityRoleSliderThumb:
return result.append("SliderThumb");
- case LandmarkApplicationRole:
+ case WebKit::WebAccessibilityRoleLandmarkApplication:
return result.append("LandmarkApplication");
- case LandmarkBannerRole:
+ case WebKit::WebAccessibilityRoleLandmarkBanner:
return result.append("LandmarkBanner");
- case LandmarkComplementaryRole:
+ case WebKit::WebAccessibilityRoleLandmarkComplementary:
return result.append("LandmarkComplementary");
- case LandmarkContentInfoRole:
+ case WebKit::WebAccessibilityRoleLandmarkContentInfo:
return result.append("LandmarkContentInfo");
- case LandmarkMainRole:
+ case WebKit::WebAccessibilityRoleLandmarkMain:
return result.append("LandmarkMain");
- case LandmarkNavigationRole:
+ case WebKit::WebAccessibilityRoleLandmarkNavigation:
return result.append("LandmarkNavigation");
- case LandmarkSearchRole:
+ case WebKit::WebAccessibilityRoleLandmarkSearch:
return result.append("LandmarkSearch");
- case ApplicationLogRole:
+ case WebKit::WebAccessibilityRoleApplicationLog:
return result.append("ApplicationLog");
- case ApplicationMarqueeRole:
+ case WebKit::WebAccessibilityRoleApplicationMarquee:
return result.append("ApplicationMarquee");
- case ApplicationStatusRole:
+ case WebKit::WebAccessibilityRoleApplicationStatus:
return result.append("ApplicationStatus");
- case ApplicationTimerRole:
+ case WebKit::WebAccessibilityRoleApplicationTimer:
return result.append("ApplicationTimer");
- case DocumentRole:
+ case WebKit::WebAccessibilityRoleDocument:
return result.append("Document");
- case DocumentArticleRole:
+ case WebKit::WebAccessibilityRoleDocumentArticle:
return result.append("DocumentArticle");
- case DocumentNoteRole:
+ case WebKit::WebAccessibilityRoleDocumentNote:
return result.append("DocumentNote");
- case DocumentRegionRole:
+ case WebKit::WebAccessibilityRoleDocumentRegion:
return result.append("DocumentRegion");
- case UserInterfaceTooltipRole:
+ case WebKit::WebAccessibilityRoleUserInterfaceTooltip:
return result.append("UserInterfaceTooltip");
default:
- // Also matches UnknownRole.
+ // Also matches WebAccessibilityRoleUnknown.
return result.append("Unknown");
}
}
@@ -281,24 +265,17 @@ AccessibilityUIElement::AccessibilityUIElement(
AccessibilityUIElement* AccessibilityUIElement::GetChildAtIndex(
unsigned index) {
- RefPtr<AccessibilityObject> object = AXObject(accessibility_object());
- if (object->children().size() <= index)
- return NULL;
-
- WebAccessibilityObject child =
- AccessibilityObjectToWebAccessibilityObject(object->children()[index]);
- return factory_->Create(child);
+ return factory_->Create(accessibility_object().childAt(index));
}
std::string AccessibilityUIElement::GetTitle() {
- std::string title = StringToStdString(AXObject(
- accessibility_object())->title());
+ std::string title = accessibility_object().title().utf8();
return title.insert(0, "AXTitle: ");
}
std::string AccessibilityUIElement::GetDescription() {
- std::string description = StringToStdString(AXObject(
- accessibility_object())->accessibilityDescription());
+ std::string description =
+ accessibility_object().accessibilityDescription().utf8();
return description.insert(0, "AXDescription: ");
}
@@ -466,7 +443,7 @@ void AccessibilityUIElement::FallbackCallback(const CppArgumentList &args,
void AccessibilityUIElement::ChildrenCountGetterCallback(CppVariant* result) {
int count = 1; // Root object always has only one child, the WebView.
if (!IsRoot())
- count = AXObject(accessibility_object())->children().size();
+ count = accessibility_object().childCount();
result->Set(count);
}
@@ -475,11 +452,11 @@ void AccessibilityUIElement::DescriptionGetterCallback(CppVariant *result) {
}
void AccessibilityUIElement::IsEnabledGetterCallback(CppVariant* result) {
- result->Set(AXObject(accessibility_object())->isEnabled());
+ result->Set(accessibility_object().isEnabled());
}
void AccessibilityUIElement::RoleGetterCallback(CppVariant* result) {
- result->Set(RoleToString(AXObject(accessibility_object())->roleValue()));
+ result->Set(RoleToString(accessibility_object().roleValue()));
}
void AccessibilityUIElement::TitleGetterCallback(CppVariant* result) {
@@ -512,6 +489,9 @@ void AccessibilityUIElementList::Clear() {
AccessibilityUIElement* AccessibilityUIElementList::Create(
const WebAccessibilityObject& object) {
+ if (object.isNull())
+ return NULL;
+
AccessibilityUIElement* element = new AccessibilityUIElement(object, this);
elements_.push_back(element);
return element;
diff --git a/webkit/webkit.gyp b/webkit/webkit.gyp
index 46ee1b8..d4f45c6 100644
--- a/webkit/webkit.gyp
+++ b/webkit/webkit.gyp
@@ -77,6 +77,7 @@
'api/public/mac/WebInputEventFactory.h',
'api/public/mac/WebScreenInfoFactory.h',
'api/public/WebAccessibilityObject.h',
+ 'api/public/WebAccessibilityRole.h',
'api/public/WebApplicationCacheHost.h',
'api/public/WebApplicationCacheHostClient.h',
'api/public/WebBindings.h',