diff options
author | dglazkov@chromium.org <dglazkov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-30 19:42:22 +0000 |
---|---|---|
committer | dglazkov@chromium.org <dglazkov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-30 19:42:22 +0000 |
commit | cef27d2fed12f583ea9782f8b790718a78c25936 (patch) | |
tree | dec295672d8566d4e4d20630971b6430f924638b /webkit | |
parent | b59ecb3276d717e503ea8035f03f1182cfde8d0c (diff) | |
download | chromium_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.h | 9 | ||||
-rwxr-xr-x | webkit/api/public/WebAccessibilityRole.h | 129 | ||||
-rw-r--r-- | webkit/api/src/AssertMatchingEnums.cpp | 83 | ||||
-rwxr-xr-x | webkit/api/src/WebAccessibilityObject.cpp | 58 | ||||
-rw-r--r-- | webkit/tools/test_shell/accessibility_ui_element.cc | 210 | ||||
-rw-r--r-- | webkit/webkit.gyp | 1 |
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', |