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/api | |
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/api')
-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 |
4 files changed, 277 insertions, 2 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())) { |