summaryrefslogtreecommitdiff
path: root/Source/WebCore/accessibility/AccessibilityNodeObject.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/accessibility/AccessibilityNodeObject.h')
-rw-r--r--Source/WebCore/accessibility/AccessibilityNodeObject.h231
1 files changed, 111 insertions, 120 deletions
diff --git a/Source/WebCore/accessibility/AccessibilityNodeObject.h b/Source/WebCore/accessibility/AccessibilityNodeObject.h
index 28fad801b..37d6eb01f 100644
--- a/Source/WebCore/accessibility/AccessibilityNodeObject.h
+++ b/Source/WebCore/accessibility/AccessibilityNodeObject.h
@@ -10,7 +10,7 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * 3. Neither the name of Apple Inc. ("Apple") nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
@@ -26,8 +26,7 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef AccessibilityNodeObject_h
-#define AccessibilityNodeObject_h
+#pragma once
#include "AccessibilityObject.h"
#include "LayoutRect.h"
@@ -37,123 +36,114 @@ namespace WebCore {
class AXObjectCache;
class Element;
-class Frame;
-class FrameView;
-class HitTestResult;
-class HTMLAnchorElement;
-class HTMLAreaElement;
-class HTMLElement;
class HTMLLabelElement;
-class HTMLMapElement;
-class HTMLSelectElement;
-class IntPoint;
-class IntSize;
class Node;
-class RenderListBox;
-class RenderTextControl;
-class RenderView;
-class VisibleSelection;
-class Widget;
-
+
+enum MouseButtonListenerResultFilter {
+ ExcludeBodyElement = 1,
+ IncludeBodyElement,
+};
+
class AccessibilityNodeObject : public AccessibilityObject {
-protected:
- explicit AccessibilityNodeObject(Node*);
public:
- static PassRefPtr<AccessibilityNodeObject> create(Node*);
+ static Ref<AccessibilityNodeObject> create(Node*);
virtual ~AccessibilityNodeObject();
- virtual void init() override;
-
- virtual bool isAccessibilityNodeObject() const override { return true; }
-
- virtual bool canvasHasFallbackContent() const override;
-
- virtual bool isAnchor() const override;
- virtual bool isControl() const override;
- virtual bool isFieldset() const override;
- virtual bool isGroup() const override;
- virtual bool isHeading() const override;
- virtual bool isHovered() const override;
- virtual bool isImage() const override;
- virtual bool isImageButton() const override;
- virtual bool isInputImage() const override;
- virtual bool isLink() const override;
- virtual bool isMenu() const override;
- virtual bool isMenuBar() const override;
- virtual bool isMenuButton() const override;
- virtual bool isMenuItem() const override;
- virtual bool isMenuRelated() const override;
- virtual bool isMultiSelectable() const override;
+ void init() override;
+
+ bool canvasHasFallbackContent() const override;
+
+ bool isControl() const override;
+ bool isFieldset() const override;
+ bool isGroup() const override;
+ bool isHeading() const override;
+ bool isHovered() const override;
+ bool isImage() const override;
+ bool isImageButton() const override;
+ bool isInputImage() const override;
+ bool isLink() const override;
+ bool isMenu() const override;
+ bool isMenuBar() const override;
+ bool isMenuButton() const override;
+ bool isMenuItem() const override;
+ bool isMenuRelated() const override;
+ bool isMultiSelectable() const override;
virtual bool isNativeCheckboxOrRadio() const;
- virtual bool isNativeImage() const override;
- virtual bool isNativeTextControl() const override;
- virtual bool isPasswordField() const override;
- virtual bool isProgressIndicator() const override;
- virtual bool isSearchField() const override;
- virtual bool isSlider() const override;
-
- virtual bool isChecked() const override;
- virtual bool isEnabled() const override;
- virtual bool isIndeterminate() const override;
- virtual bool isPressed() const override;
- virtual bool isReadOnly() const override;
- virtual bool isRequired() const override;
- virtual bool supportsRequiredAttribute() const override;
-
- virtual bool canSetSelectedAttribute() const override;
+ bool isNativeImage() const override;
+ bool isNativeTextControl() const override;
+ bool isPasswordField() const override;
+ AccessibilityObject* passwordFieldOrContainingPasswordField() override;
+ bool isProgressIndicator() const override;
+ bool isSearchField() const override;
+ bool isSlider() const override;
+
+ bool isChecked() const override;
+ bool isEnabled() const override;
+ bool isIndeterminate() const override;
+ bool isPressed() const override;
+ bool isRequired() const override;
+ bool supportsRequiredAttribute() const override;
+
+ bool canSetSelectedAttribute() const override;
void setNode(Node*);
- virtual Node* node() const override { return m_node; }
- virtual Document* document() const override;
-
- virtual bool canSetFocusAttribute() const override;
- virtual int headingLevel() const override;
-
- virtual String valueDescription() const override;
- virtual float valueForRange() const override;
- virtual float maxValueForRange() const override;
- virtual float minValueForRange() const override;
- virtual float stepValueForRange() const override;
-
- virtual AccessibilityObject* selectedRadioButton() override;
- virtual AccessibilityObject* selectedTabItem() override;
- virtual AccessibilityButtonState checkboxOrRadioValue() const override;
-
- virtual unsigned hierarchicalLevel() const override;
- virtual String textUnderElement(AccessibilityTextUnderElementMode = AccessibilityTextUnderElementMode()) const override;
- virtual String accessibilityDescription() const override;
- virtual String helpText() const override;
- virtual String title() const override;
- virtual String text() const override;
- virtual String stringValue() const override;
- virtual void colorValue(int& r, int& g, int& b) const override;
- virtual String ariaLabeledByAttribute() const override;
- virtual bool hasAttributesRequiredForInclusion() const override final;
-
- virtual Element* actionElement() const override;
- Element* mouseButtonListener() const;
- virtual Element* anchorElement() const override;
+ Node* node() const override { return m_node; }
+ Document* document() const override;
+
+ bool canSetFocusAttribute() const override;
+ int headingLevel() const override;
+
+ bool canSetValueAttribute() const override;
+
+ String valueDescription() const override;
+ float valueForRange() const override;
+ float maxValueForRange() const override;
+ float minValueForRange() const override;
+ float stepValueForRange() const override;
+
+ AccessibilityObject* selectedRadioButton() override;
+ AccessibilityObject* selectedTabItem() override;
+ AccessibilityButtonState checkboxOrRadioValue() const override;
+
+ unsigned hierarchicalLevel() const override;
+ String textUnderElement(AccessibilityTextUnderElementMode = AccessibilityTextUnderElementMode()) const override;
+ String accessibilityDescriptionForChildren() const;
+ String accessibilityDescription() const override;
+ String helpText() const override;
+ String title() const override;
+ String text() const override;
+ String stringValue() const override;
+ void colorValue(int& r, int& g, int& b) const override;
+ String ariaLabeledByAttribute() const override;
+ bool hasAttributesRequiredForInclusion() const final;
+ void setIsExpanded(bool) override;
+
+ Element* actionElement() const override;
+ Element* mouseButtonListener(MouseButtonListenerResultFilter = ExcludeBodyElement) const;
+ Element* anchorElement() const override;
AccessibilityObject* menuForMenuButton() const;
virtual void changeValueByPercent(float percentChange);
- virtual AccessibilityObject* firstChild() const override;
- virtual AccessibilityObject* lastChild() const override;
- virtual AccessibilityObject* previousSibling() const override;
- virtual AccessibilityObject* nextSibling() const override;
- virtual AccessibilityObject* parentObject() const override;
- virtual AccessibilityObject* parentObjectIfExists() const override;
+ AccessibilityObject* firstChild() const override;
+ AccessibilityObject* lastChild() const override;
+ AccessibilityObject* previousSibling() const override;
+ AccessibilityObject* nextSibling() const override;
+ AccessibilityObject* parentObject() const override;
+ AccessibilityObject* parentObjectIfExists() const override;
- virtual void detach(AccessibilityDetachmentType, AXObjectCache*) override;
- virtual void childrenChanged() override;
- virtual void updateAccessibilityRole() override;
+ void detach(AccessibilityDetachmentType, AXObjectCache*) override;
+ void childrenChanged() override;
+ void updateAccessibilityRole() override;
- virtual void increment() override;
- virtual void decrement() override;
+ void increment() override;
+ void decrement() override;
- virtual LayoutRect elementRect() const override;
+ LayoutRect elementRect() const override;
protected:
+ explicit AccessibilityNodeObject(Node*);
+
AccessibilityRole m_ariaRole;
bool m_childrenDirty;
mutable AccessibilityRole m_roleForMSAA;
@@ -161,50 +151,51 @@ protected:
bool m_initialized;
#endif
- virtual bool isDetached() const override { return !m_node; }
+ bool isDetached() const override { return !m_node; }
virtual AccessibilityRole determineAccessibilityRole();
- virtual void addChildren() override;
- virtual void addChild(AccessibilityObject*) override;
- virtual void insertChild(AccessibilityObject*, unsigned index) override;
+ void addChildren() override;
+ void addChild(AccessibilityObject*) override;
+ void insertChild(AccessibilityObject*, unsigned index) override;
- virtual bool canHaveChildren() const override;
- virtual AccessibilityRole ariaRoleAttribute() const override;
- AccessibilityRole determineAriaRoleAttribute() const;
+ bool canHaveChildren() const override;
+ AccessibilityRole ariaRoleAttribute() const override;
+ virtual AccessibilityRole determineAriaRoleAttribute() const;
AccessibilityRole remapAriaRoleDueToParent(AccessibilityRole) const;
- bool hasContentEditableAttributeSet() const;
- virtual bool isDescendantOfBarrenParent() const override;
+ bool isDescendantOfBarrenParent() const override;
void alterSliderValue(bool increase);
void changeValueByStep(bool increase);
// This returns true if it's focusable but it's not content editable and it's not a control or ARIA control.
bool isGenericFocusableElement() const;
+ bool isLabelable() const;
HTMLLabelElement* labelForElement(Element*) const;
+ String textForLabelElement(Element*) const;
String ariaAccessibilityDescription() const;
void ariaLabeledByElements(Vector<Element*>& elements) const;
String accessibilityDescriptionForElements(Vector<Element*> &elements) const;
- virtual LayoutRect boundingBoxRect() const override;
- virtual String ariaDescribedByAttribute() const override;
+ LayoutRect boundingBoxRect() const override;
+ String ariaDescribedByAttribute() const override;
Element* menuElementForMenuButton() const;
Element* menuItemElementForMenu() const;
AccessibilityObject* menuButtonForMenu() const;
+ AccessibilityObject* captionForFigure() const;
private:
- Node* m_node;
-
- virtual void accessibilityText(Vector<AccessibilityText>&) override;
+ bool isAccessibilityNodeObject() const final { return true; }
+ void accessibilityText(Vector<AccessibilityText>&) override;
virtual void titleElementText(Vector<AccessibilityText>&) const;
void alternativeText(Vector<AccessibilityText>&) const;
void visibleText(Vector<AccessibilityText>&) const;
void helpText(Vector<AccessibilityText>&) const;
String alternativeTextForWebArea() const;
void ariaLabeledByText(Vector<AccessibilityText>&) const;
- virtual bool computeAccessibilityIsIgnored() const override;
+ bool computeAccessibilityIsIgnored() const override;
bool usesAltTagForTextComputation() const;
-};
-ACCESSIBILITY_OBJECT_TYPE_CASTS(AccessibilityNodeObject, isAccessibilityNodeObject())
+ Node* m_node;
+};
} // namespace WebCore
-#endif // AccessibilityNodeObject_h
+SPECIALIZE_TYPE_TRAITS_ACCESSIBILITY(AccessibilityNodeObject, isAccessibilityNodeObject())