18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 22fc2651226baac27029e38c9d6ef883fa32084dbSteve Block * Copyright (C) 2008, 2009, 2011 Apple Inc. All rights reserved. 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2008 Nuanti Ltd. 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met: 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer. 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation and/or other materials provided with the distribution. 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * its contributors may be used to endorse or promote products derived 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * from this software without specific prior written permission. 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef AccessibilityObject_h 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define AccessibilityObject_h 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 330bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#include "IntRect.h" 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "VisiblePosition.h" 350bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch#include "VisibleSelection.h" 36dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include <wtf/Forward.h> 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <wtf/RefPtr.h> 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <wtf/Vector.h> 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if PLATFORM(MAC) 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <wtf/RetainPtr.h> 42d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif PLATFORM(WIN) && !OS(WINCE) 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "AccessibilityObjectWrapperWin.h" 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "COMPtr.h" 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#elif PLATFORM(CHROMIUM) 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "AccessibilityObjectWrapper.h" 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef struct _NSRange NSRange; 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef __OBJC__ 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class AccessibilityObjectWrapper; 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class NSArray; 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class NSAttributedString; 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class NSData; 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class NSMutableAttributedString; 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class NSString; 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class NSValue; 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project@class NSView; 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#else 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass NSArray; 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass NSAttributedString; 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass NSData; 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass NSMutableAttributedString; 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass NSString; 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass NSValue; 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass NSView; 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if PLATFORM(GTK) 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef struct _AtkObject AtkObject; 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef struct _AtkObject AccessibilityObjectWrapper; 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#else 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass AccessibilityObjectWrapper; 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass AXObjectCache; 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass Element; 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass Frame; 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass FrameView; 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass HTMLAnchorElement; 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass HTMLAreaElement; 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass IntPoint; 858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass IntSize; 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass Node; 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass RenderObject; 88231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockclass RenderListItem; 898f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qianclass VisibleSelection; 908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass Widget; 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 92231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blocktypedef unsigned AXID; 93231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectenum AccessibilityRole { 958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project UnknownRole = 1, 968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ButtonRole, 978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RadioButtonRole, 988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CheckBoxRole, 998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project SliderRole, 1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project TabGroupRole, 1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project TextFieldRole, 1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project StaticTextRole, 1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project TextAreaRole, 1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ScrollAreaRole, 1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PopUpButtonRole, 1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project MenuButtonRole, 1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project TableRole, 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ApplicationRole, 1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project GroupRole, 1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RadioGroupRole, 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ListRole, 1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ScrollBarRole, 1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ValueIndicatorRole, 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ImageRole, 1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project MenuBarRole, 1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project MenuRole, 1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project MenuItemRole, 1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ColumnRole, 1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RowRole, 1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ToolbarRole, 1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project BusyIndicatorRole, 1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ProgressIndicatorRole, 1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project WindowRole, 1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project DrawerRole, 1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project SystemWideRole, 1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project OutlineRole, 1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project IncrementorRole, 1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project BrowserRole, 1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ComboBoxRole, 1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project SplitGroupRole, 1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project SplitterRole, 1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ColorWellRole, 1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project GrowAreaRole, 1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project SheetRole, 1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project HelpTagRole, 1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project MatteRole, 1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RulerRole, 1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RulerMarkerRole, 1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project LinkRole, 1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project DisclosureTriangleRole, 1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project GridRole, 1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CellRole, 1435f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian ColumnHeaderRole, 1445f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian RowHeaderRole, 1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // AppKit includes SortButtonRole but it is misnamed and really a subrole of ButtonRole so we do not include it here. 1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // WebCore-specific roles 1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project WebCoreLinkRole, 1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ImageMapLinkRole, 1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ImageMapRole, 1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ListMarkerRole, 1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project WebAreaRole, 1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project HeadingRole, 1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ListBoxRole, 1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ListBoxOptionRole, 1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project TableHeaderContainerRole, 1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project DefinitionListTermRole, 1580bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch DefinitionListDefinitionRole, 1590bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch AnnotationRole, 160231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block SliderThumbRole, 161cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block IgnoredRole, 16206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen PresentationalRole, 163643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TabRole, 164643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TabListRole, 165643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TabPanelRole, 166643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TreeRole, 167d0825bca7fe65beaee391d30da42e937db621564Steve Block TreeGridRole, 168643ca7872b450ea4efacab6188849e5aac2ba161Steve Block TreeItemRole, 169643ca7872b450ea4efacab6188849e5aac2ba161Steve Block DirectoryRole, 170d0825bca7fe65beaee391d30da42e937db621564Steve Block EditableTextRole, 171d0825bca7fe65beaee391d30da42e937db621564Steve Block ListItemRole, 172d0825bca7fe65beaee391d30da42e937db621564Steve Block MenuListPopupRole, 173d0825bca7fe65beaee391d30da42e937db621564Steve Block MenuListOptionRole, 1742bde8e466a4451c7319e3a072d118917957d6554Steve Block ParagraphRole, 1752bde8e466a4451c7319e3a072d118917957d6554Steve Block LabelRole, 1762bde8e466a4451c7319e3a072d118917957d6554Steve Block DivRole, 1772bde8e466a4451c7319e3a072d118917957d6554Steve Block FormRole, 178d0825bca7fe65beaee391d30da42e937db621564Steve Block 179231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block // ARIA Grouping roles 180231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block LandmarkApplicationRole, 181231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block LandmarkBannerRole, 182231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block LandmarkComplementaryRole, 183231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block LandmarkContentInfoRole, 184231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block LandmarkMainRole, 185231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block LandmarkNavigationRole, 186231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block LandmarkSearchRole, 187231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 188643ca7872b450ea4efacab6188849e5aac2ba161Steve Block ApplicationAlertRole, 189643ca7872b450ea4efacab6188849e5aac2ba161Steve Block ApplicationAlertDialogRole, 190643ca7872b450ea4efacab6188849e5aac2ba161Steve Block ApplicationDialogRole, 191231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block ApplicationLogRole, 192231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block ApplicationMarqueeRole, 193231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block ApplicationStatusRole, 194231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block ApplicationTimerRole, 195231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 196231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block DocumentRole, 197231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block DocumentArticleRole, 198643ca7872b450ea4efacab6188849e5aac2ba161Steve Block DocumentMathRole, 199231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block DocumentNoteRole, 200231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block DocumentRegionRole, 201231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 202231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block UserInterfaceTooltipRole 2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2050bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochenum AccessibilityOrientation { 2060bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch AccessibilityOrientationVertical, 2070bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch AccessibilityOrientationHorizontal, 2080bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch}; 2090bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 210dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockenum AccessibilityObjectInclusion { 211cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block IncludeObject, 212cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block IgnoreObject, 213cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block DefaultBehavior, 214cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block}; 2150617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen 2160617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsenenum AccessibilityButtonState { 2170617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen ButtonStateOff = 0, 2180617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen ButtonStateOn, 2190617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen ButtonStateMixed, 2200617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen}; 2212fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 2222fc2651226baac27029e38c9d6ef883fa32084dbSteve Blockenum AccessibilitySortDirection { 2232fc2651226baac27029e38c9d6ef883fa32084dbSteve Block SortDirectionNone, 2242fc2651226baac27029e38c9d6ef883fa32084dbSteve Block SortDirectionAscending, 2252fc2651226baac27029e38c9d6ef883fa32084dbSteve Block SortDirectionDescending, 2262fc2651226baac27029e38c9d6ef883fa32084dbSteve Block}; 227cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block 2288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstruct VisiblePositionRange { 2298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePosition start; 2318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePosition end; 2328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePositionRange() {} 2348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePositionRange(const VisiblePosition& s, const VisiblePosition& e) 2368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project : start(s) 2378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project , end(e) 2388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { } 2398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool isNull() const { return start.isNull() || end.isNull(); } 2418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 2428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstruct PlainTextRange { 2448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned start; 2468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned length; 2478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PlainTextRange() 2498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project : start(0) 2508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project , length(0) 2518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { } 2528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PlainTextRange(unsigned s, unsigned l) 2548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project : start(s) 2558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project , length(l) 2568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { } 2578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 258643ca7872b450ea4efacab6188849e5aac2ba161Steve Block bool isNull() const { return !start && !length; } 2598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 2608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass AccessibilityObject : public RefCounted<AccessibilityObject> { 2628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectprotected: 2638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AccessibilityObject(); 2648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectpublic: 2658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual ~AccessibilityObject(); 2660bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual void detach(); 2678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project typedef Vector<RefPtr<AccessibilityObject> > AccessibilityChildrenVector; 2698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 270643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isAccessibilityRenderObject() const { return false; } 27128040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu virtual bool isAccessibilityScrollbar() const { return false; } 272cad810f21b803229eb11403f9209855525a25d57Steve Block virtual bool isAccessibilityScrollView() const { return false; } 273cad810f21b803229eb11403f9209855525a25d57Steve Block 274643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isAnchor() const { return false; } 275643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isAttachment() const { return false; } 276643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isHeading() const { return false; } 277643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isLink() const { return false; } 278643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isImage() const { return false; } 279643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isNativeImage() const { return false; } 280643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isImageButton() const { return false; } 281643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isPasswordField() const { return false; } 282643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isNativeTextControl() const { return false; } 283643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isWebArea() const { return false; } 284967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch virtual bool isCheckbox() const { return roleValue() == CheckBoxRole; } 285967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch virtual bool isRadioButton() const { return roleValue() == RadioButtonRole; } 286643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isListBox() const { return roleValue() == ListBoxRole; } 287231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block virtual bool isMediaTimeline() const { return false; } 2888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool isMenuRelated() const { return false; } 2898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool isMenu() const { return false; } 2908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool isMenuBar() const { return false; } 2918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool isMenuButton() const { return false; } 2928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool isMenuItem() const { return false; } 293643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isFileUploadButton() const { return false; } 294635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project virtual bool isInputImage() const { return false; } 295643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isProgressIndicator() const { return false; } 296643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isSlider() const { return false; } 297f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch virtual bool isInputSlider() const { return false; } 298643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isControl() const { return false; } 299643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isList() const { return false; } 300e14391e94c850b8bd03680c23b38978db68687a8John Reck virtual bool isAccessibilityTable() const { return false; } 301643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isDataTable() const { return false; } 302643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isTableRow() const { return false; } 303643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isTableColumn() const { return false; } 304643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isTableCell() const { return false; } 305643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isFieldset() const { return false; } 306643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isGroup() const { return false; } 307d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual bool isARIATreeGridRow() const { return false; } 308d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual bool isImageMapLink() const { return false; } 309d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual bool isMenuList() const { return false; } 310d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual bool isMenuListPopup() const { return false; } 311d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual bool isMenuListOption() const { return false; } 312f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch bool isTextControl() const { return roleValue() == TextAreaRole || roleValue() == TextFieldRole; } 313643ca7872b450ea4efacab6188849e5aac2ba161Steve Block bool isTabList() const { return roleValue() == TabListRole; } 314643ca7872b450ea4efacab6188849e5aac2ba161Steve Block bool isTabItem() const { return roleValue() == TabRole; } 3150bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch bool isRadioGroup() const { return roleValue() == RadioGroupRole; } 316643ca7872b450ea4efacab6188849e5aac2ba161Steve Block bool isComboBox() const { return roleValue() == ComboBoxRole; } 317643ca7872b450ea4efacab6188849e5aac2ba161Steve Block bool isTree() const { return roleValue() == TreeRole; } 318643ca7872b450ea4efacab6188849e5aac2ba161Steve Block bool isTreeItem() const { return roleValue() == TreeItemRole; } 319643ca7872b450ea4efacab6188849e5aac2ba161Steve Block bool isScrollbar() const { return roleValue() == ScrollBarRole; } 320643ca7872b450ea4efacab6188849e5aac2ba161Steve Block bool isButton() const { return roleValue() == ButtonRole; } 32106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen bool isListItem() const { return roleValue() == ListItemRole; } 322967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch bool isCheckboxOrRadio() const { return isCheckbox() || isRadioButton(); } 323cad810f21b803229eb11403f9209855525a25d57Steve Block bool isScrollView() const { return roleValue() == ScrollAreaRole; } 3248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 325643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isChecked() const { return false; } 326643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isEnabled() const { return false; } 327643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isSelected() const { return false; } 328643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isFocused() const { return false; } 329643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isHovered() const { return false; } 330643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isIndeterminate() const { return false; } 331643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isLoaded() const { return false; } 332d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual bool isMultiSelectable() const { return false; } 333643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isOffScreen() const { return false; } 334643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isPressed() const { return false; } 335643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isReadOnly() const { return false; } 336643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isVisited() const { return false; } 337643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isRequired() const { return false; } 338643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isLinked() const { return false; } 339cad810f21b803229eb11403f9209855525a25d57Steve Block virtual bool isExpanded() const; 340d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual bool isVisible() const { return true; } 341d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual bool isCollapsed() const { return false; } 342643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual void setIsExpanded(bool) { } 343643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 344643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool canSetFocusAttribute() const { return false; } 345643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool canSetTextRangeAttributes() const { return false; } 346643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool canSetValueAttribute() const { return false; } 347cad810f21b803229eb11403f9209855525a25d57Steve Block virtual bool canSetNumericValue() const { return false; } 3488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool canSetSelectedAttribute() const { return false; } 3498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool canSetSelectedChildrenAttribute() const { return false; } 350643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool canSetExpandedAttribute() const { return false; } 3518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 352dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // A programmatic way to set a name on an AccessibleObject. 353dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual void setAccessibleName(String&) { } 354dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 355967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch virtual Node* node() const { return 0; } 3562daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch virtual RenderObject* renderer() const { return 0; } 357643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool accessibilityIsIgnored() const { return true; } 3588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3590bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual int headingLevel() const { return 0; } 3600617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen virtual AccessibilityButtonState checkboxOrRadioValue() const; 3610bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual String valueDescription() const { return String(); } 3628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual float valueForRange() const { return 0.0f; } 3638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual float maxValueForRange() const { return 0.0f; } 3645f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian virtual float minValueForRange() const { return 0.0f; } 3650bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual AccessibilityObject* selectedRadioButton() { return 0; } 366643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual AccessibilityObject* selectedTabItem() { return 0; } 3670bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual int layoutCount() const { return 0; } 368d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual double estimatedLoadingProgress() const { return 0; } 3698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static bool isARIAControl(AccessibilityRole); 3708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static bool isARIAInput(AccessibilityRole); 371643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool supportsARIAOwns() const { return false; } 372643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual void ariaOwnsElements(AccessibilityChildrenVector&) const { } 373643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool supportsARIAFlowTo() const { return false; } 374643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual void ariaFlowToElements(AccessibilityChildrenVector&) const { } 375dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual bool ariaHasPopup() const { return false; } 376f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch bool ariaIsMultiline() const; 377f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch virtual const AtomicString& invalidStatus() const; 378cad810f21b803229eb11403f9209855525a25d57Steve Block bool supportsARIAExpanded() const; 3792fc2651226baac27029e38c9d6ef883fa32084dbSteve Block AccessibilitySortDirection sortDirection() const; 380cad810f21b803229eb11403f9209855525a25d57Steve Block 381643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // ARIA drag and drop 382dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual bool supportsARIADropping() const { return false; } 383dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual bool supportsARIADragging() const { return false; } 384643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isARIAGrabbed() { return false; } 385643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual void setARIAGrabbed(bool) { } 386643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual void determineARIADropEffects(Vector<String>&) { } 3878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 388f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch // Called on the root AX object to return the deepest available element. 389f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch virtual AccessibilityObject* accessibilityHitTest(const IntPoint&) const { return 0; } 390f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch // Called on the AX object after the render tree determines which is the right AccessibilityRenderObject. 391cad810f21b803229eb11403f9209855525a25d57Steve Block virtual AccessibilityObject* elementAccessibilityHitTest(const IntPoint&) const; 392f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch 393cad810f21b803229eb11403f9209855525a25d57Steve Block virtual AccessibilityObject* focusedUIElement() const; 3940bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 3950bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual AccessibilityObject* firstChild() const { return 0; } 3960bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual AccessibilityObject* lastChild() const { return 0; } 3970bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual AccessibilityObject* previousSibling() const { return 0; } 3980bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual AccessibilityObject* nextSibling() const { return 0; } 3990bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual AccessibilityObject* parentObject() const = 0; 4008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual AccessibilityObject* parentObjectUnignored() const; 4010bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual AccessibilityObject* parentObjectIfExists() const { return 0; } 402231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block static AccessibilityObject* firstAccessibleObjectFromNode(const Node*); 4030bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 4040bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual AccessibilityObject* observableObject() const { return 0; } 4050bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual void linkedUIElements(AccessibilityChildrenVector&) const { } 4060bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual AccessibilityObject* titleUIElement() const { return 0; } 4075f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian virtual bool exposesTitleUIElement() const { return true; } 4082daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch virtual AccessibilityObject* correspondingLabelForControlElement() const { return 0; } 409231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block virtual AccessibilityObject* correspondingControlForLabelElement() const { return 0; } 410cad810f21b803229eb11403f9209855525a25d57Steve Block virtual AccessibilityObject* scrollBar(AccessibilityOrientation) const { return 0; } 411cad810f21b803229eb11403f9209855525a25d57Steve Block 4120bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual AccessibilityRole ariaRoleAttribute() const { return UnknownRole; } 4130bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual bool isPresentationalChildOfAriaRole() const { return false; } 4140bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual bool ariaRoleHasPresentationalChildren() const { return false; } 4150bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 4160bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void setRoleValue(AccessibilityRole role) { m_role = role; } 4170bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual AccessibilityRole roleValue() const { return m_role; } 4180bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual String ariaLabeledByAttribute() const { return String(); } 4190bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual String ariaDescribedByAttribute() const { return String(); } 4200bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual String accessibilityDescription() const { return String(); } 4210bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 422cad810f21b803229eb11403f9209855525a25d57Steve Block virtual AXObjectCache* axObjectCache() const; 423231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block AXID axObjectID() const { return m_id; } 424231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void setAXObjectID(AXID axObjectID) { m_id = axObjectID; } 4258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4260bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch static AccessibilityObject* anchorElementForNode(Node*); 4270bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual Element* anchorElement() const { return 0; } 4280bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual Element* actionElement() const { return 0; } 4290bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual IntRect boundingBoxRect() const { return IntRect(); } 4300bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual IntRect elementRect() const = 0; 431cad810f21b803229eb11403f9209855525a25d57Steve Block virtual IntSize size() const { return elementRect().size(); } 4320bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual IntPoint clickPoint() const; 4330bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 4340bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual PlainTextRange selectedTextRange() const { return PlainTextRange(); } 4350bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch unsigned selectionStart() const { return selectedTextRange().start; } 4360bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch unsigned selectionEnd() const { return selectedTextRange().length; } 4378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4380bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual KURL url() const { return KURL(); } 4390bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual VisibleSelection selection() const { return VisibleSelection(); } 4400bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual String stringValue() const { return String(); } 4410bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual String title() const { return String(); } 4420bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual String helpText() const { return String(); } 4430bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual String textUnderElement() const { return String(); } 4440bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual String text() const { return String(); } 4450bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual int textLength() const { return 0; } 4460bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual String selectedText() const { return String(); } 4470bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual const AtomicString& accessKey() const { return nullAtom; } 4488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const String& actionVerb() const; 4490bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual Widget* widget() const { return 0; } 4500bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual Widget* widgetForAttachmentView() const { return 0; } 4512fc2651226baac27029e38c9d6ef883fa32084dbSteve Block virtual Document* document() const; 4528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual FrameView* topDocumentFrameView() const { return 0; } 4538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual FrameView* documentFrameView() const; 454967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch String language() const; 455643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual unsigned hierarchicalLevel() const { return 0; } 456dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch const AtomicString& placeholderValue() const; 457643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 4580bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual void setFocused(bool) { } 4590bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual void setSelectedText(const String&) { } 4600bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual void setSelectedTextRange(const PlainTextRange&) { } 4610bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual void setValue(const String&) { } 462cad810f21b803229eb11403f9209855525a25d57Steve Block virtual void setValue(float) { } 4630bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual void setSelected(bool) { } 464643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual void setSelectedRows(AccessibilityChildrenVector&) { } 465643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 4660bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual void makeRangeVisible(const PlainTextRange&) { } 4678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool press() const; 4688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool performDefaultAction() const { return press(); } 469643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 4700bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual AccessibilityOrientation orientation() const; 471643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual void increment() { } 472643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual void decrement() { } 4730bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 4740bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual void childrenChanged() { } 475d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual void contentChanged() { } 4768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual const AccessibilityChildrenVector& children() { return m_children; } 4770bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual void addChildren() { } 4788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool canHaveChildren() const { return true; } 4790bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual bool hasChildren() const { return m_haveChildren; } 480cad810f21b803229eb11403f9209855525a25d57Steve Block virtual void updateChildrenIfNecessary(); 4810bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual void selectedChildren(AccessibilityChildrenVector&) { } 4820bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual void visibleChildren(AccessibilityChildrenVector&) { } 483643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual void tabChildren(AccessibilityChildrenVector&) { } 4848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool shouldFocusActiveDescendant() const { return false; } 4858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual AccessibilityObject* activeDescendant() const { return 0; } 4868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void handleActiveDescendantChanged() { } 48706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen virtual void handleAriaExpandedChanged() { } 48806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 489643ca7872b450ea4efacab6188849e5aac2ba161Steve Block static AccessibilityRole ariaRoleToWebCoreRole(const String&); 490967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch const AtomicString& getAttribute(const QualifiedName&) const; 491dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 4920bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual VisiblePositionRange visiblePositionRange() const { return VisiblePositionRange(); } 4930bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual VisiblePositionRange visiblePositionRangeForLine(unsigned) const { return VisiblePositionRange(); } 4948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePositionRange visiblePositionRangeForUnorderedPositions(const VisiblePosition&, const VisiblePosition&) const; 4968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePositionRange positionOfLeftWord(const VisiblePosition&) const; 4978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePositionRange positionOfRightWord(const VisiblePosition&) const; 4988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePositionRange leftLineVisiblePositionRange(const VisiblePosition&) const; 4998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePositionRange rightLineVisiblePositionRange(const VisiblePosition&) const; 5008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePositionRange sentenceForPosition(const VisiblePosition&) const; 5018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePositionRange paragraphForPosition(const VisiblePosition&) const; 5028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePositionRange styleRangeForPosition(const VisiblePosition&) const; 5038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePositionRange visiblePositionRangeForRange(const PlainTextRange&) const; 5048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String stringForVisiblePositionRange(const VisiblePositionRange&) const; 5060bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual IntRect boundsForVisiblePositionRange(const VisiblePositionRange&) const { return IntRect(); } 5078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int lengthForVisiblePositionRange(const VisiblePositionRange&) const; 5080bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual void setSelectedVisiblePositionRange(const VisiblePositionRange&) const { } 5098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5100bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual VisiblePosition visiblePositionForPoint(const IntPoint&) const { return VisiblePosition(); } 5110bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch VisiblePosition nextVisiblePosition(const VisiblePosition& visiblePos) const { return visiblePos.next(); } 5120bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch VisiblePosition previousVisiblePosition(const VisiblePosition& visiblePos) const { return visiblePos.previous(); } 5138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePosition nextWordEnd(const VisiblePosition&) const; 5148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePosition previousWordStart(const VisiblePosition&) const; 5158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePosition nextLineEndPosition(const VisiblePosition&) const; 5168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePosition previousLineStartPosition(const VisiblePosition&) const; 5178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePosition nextSentenceEndPosition(const VisiblePosition&) const; 5188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePosition previousSentenceStartPosition(const VisiblePosition&) const; 5198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePosition nextParagraphEndPosition(const VisiblePosition&) const; 5208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project VisiblePosition previousParagraphStartPosition(const VisiblePosition&) const; 5210bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual VisiblePosition visiblePositionForIndex(unsigned, bool /*lastIndexOK */) const { return VisiblePosition(); } 5228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5230bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual VisiblePosition visiblePositionForIndex(int) const { return VisiblePosition(); } 5240bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual int indexForVisiblePosition(const VisiblePosition&) const { return 0; } 5258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AccessibilityObject* accessibilityObjectForPosition(const VisiblePosition&) const; 5278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int lineForPosition(const VisiblePosition&) const; 5288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PlainTextRange plainTextRangeForVisiblePositionRange(const VisiblePositionRange&) const; 5290bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual int index(const VisiblePosition&) const { return -1; } 5308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5310bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual PlainTextRange doAXRangeForLine(unsigned) const { return PlainTextRange(); } 5328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PlainTextRange doAXRangeForPosition(const IntPoint&) const; 5330bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual PlainTextRange doAXRangeForIndex(unsigned) const { return PlainTextRange(); } 5348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PlainTextRange doAXStyleRangeForIndex(unsigned) const; 5358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5360bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual String doAXStringForRange(const PlainTextRange&) const { return String(); } 5370bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual IntRect doAXBoundsForRange(const PlainTextRange&) const { return IntRect(); } 538231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block String listMarkerTextForNodeAndPosition(Node*, const VisiblePosition&) const; 5398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned doAXLineForIndex(unsigned); 5418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 542643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual String stringValueForMSAA() const { return String(); } 543643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual String stringRoleForMSAA() const { return String(); } 544643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual String nameForMSAA() const { return String(); } 545643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual String descriptionForMSAA() const { return String(); } 546d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual AccessibilityRole roleValueForMSAA() const { return roleValue(); } 547d0825bca7fe65beaee391d30da42e937db621564Steve Block 548643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Used by an ARIA tree to get all its rows. 549643ca7872b450ea4efacab6188849e5aac2ba161Steve Block void ariaTreeRows(AccessibilityChildrenVector&); 550643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Used by an ARIA tree item to get all of its direct rows that it can disclose. 551643ca7872b450ea4efacab6188849e5aac2ba161Steve Block void ariaTreeItemDisclosedRows(AccessibilityChildrenVector&); 552643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Used by an ARIA tree item to get only its content, and not its child tree items and groups. 553643ca7872b450ea4efacab6188849e5aac2ba161Steve Block void ariaTreeItemContent(AccessibilityChildrenVector&); 554643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 555d0825bca7fe65beaee391d30da42e937db621564Steve Block // ARIA live-region features. 556d0825bca7fe65beaee391d30da42e937db621564Steve Block bool supportsARIALiveRegion() const; 557d0825bca7fe65beaee391d30da42e937db621564Steve Block bool isInsideARIALiveRegion() const; 558d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual const AtomicString& ariaLiveRegionStatus() const { return nullAtom; } 559d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual const AtomicString& ariaLiveRegionRelevant() const { return nullAtom; } 560d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual bool ariaLiveRegionAtomic() const { return false; } 561d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual bool ariaLiveRegionBusy() const { return false; } 562d0825bca7fe65beaee391d30da42e937db621564Steve Block 563dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool supportsARIAAttributes() const; 564dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 565a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch // CSS3 Speech properties. 566a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch virtual ESpeak speakProperty() const { return SpeakNormal; } 567a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 5688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if HAVE(ACCESSIBILITY) 5698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if PLATFORM(GTK) 5708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AccessibilityObjectWrapper* wrapper() const; 5718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setWrapper(AccessibilityObjectWrapper*); 5728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#else 5738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AccessibilityObjectWrapper* wrapper() const { return m_wrapper.get(); } 5748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setWrapper(AccessibilityObjectWrapper* wrapper) 5758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 5768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_wrapper = wrapper; 5778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 5798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 5808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 581635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#if HAVE(ACCESSIBILITY) 582dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // a platform-specific method for determining if an attachment is ignored 5838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool accessibilityIgnoreAttachment() const; 584cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block // gives platforms the opportunity to indicate if and how an object should be included 585dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block AccessibilityObjectInclusion accessibilityPlatformIncludesObject() const; 586cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block#else 587dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool accessibilityIgnoreAttachment() const { return true; } 588dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block AccessibilityObjectInclusion accessibilityPlatformIncludesObject() const { return DefaultBehavior; } 589cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block#endif 590cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block 591635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project // allows for an AccessibilityObject to update its render tree or perform 592635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project // other operations update type operations 5930bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual void updateBackingStore() { } 5948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectprotected: 596231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block AXID m_id; 5978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AccessibilityChildrenVector m_children; 5988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project mutable bool m_haveChildren; 5990bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch AccessibilityRole m_role; 6008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void clearChildren(); 6028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool isDetached() const { return true; } 603231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 604db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#if PLATFORM(GTK) 605db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block bool allowsTextRanges() const; 60668513a70bcd92384395513322f1b801e7bf9c729Steve Block unsigned getLengthForTextRange() const; 607db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#else 608db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block bool allowsTextRanges() const { return isTextControl(); } 60968513a70bcd92384395513322f1b801e7bf9c729Steve Block unsigned getLengthForTextRange() const { return text().length(); } 610db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#endif 611db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block 6128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if PLATFORM(MAC) 6138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RetainPtr<AccessibilityObjectWrapper> m_wrapper; 614d0825bca7fe65beaee391d30da42e937db621564Steve Block#elif PLATFORM(WIN) && !OS(WINCE) 6158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project COMPtr<AccessibilityObjectWrapper> m_wrapper; 6168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#elif PLATFORM(GTK) 6178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AtkObject* m_wrapper; 6188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#elif PLATFORM(CHROMIUM) 6198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<AccessibilityObjectWrapper> m_wrapper; 6208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 6218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 6228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore 6248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // AccessibilityObject_h 626