diff options
Diffstat (limited to 'Source/WebCore/accessibility/AccessibilityRenderObject.h')
-rw-r--r-- | Source/WebCore/accessibility/AccessibilityRenderObject.h | 343 |
1 files changed, 145 insertions, 198 deletions
diff --git a/Source/WebCore/accessibility/AccessibilityRenderObject.h b/Source/WebCore/accessibility/AccessibilityRenderObject.h index 3902fb8c6..cccb39ebe 100644 --- a/Source/WebCore/accessibility/AccessibilityRenderObject.h +++ b/Source/WebCore/accessibility/AccessibilityRenderObject.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 AccessibilityRenderObject_h -#define AccessibilityRenderObject_h +#pragma once #include "AccessibilityNodeObject.h" #include "LayoutRect.h" @@ -38,222 +37,219 @@ namespace WebCore { class AccessibilitySVGRoot; 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; class AccessibilityRenderObject : public AccessibilityNodeObject { -protected: - explicit AccessibilityRenderObject(RenderObject*); public: - static PassRefPtr<AccessibilityRenderObject> create(RenderObject*); + static Ref<AccessibilityRenderObject> create(RenderObject*); virtual ~AccessibilityRenderObject(); - - virtual bool isAccessibilityRenderObject() const override { return true; } - virtual void init() override; + void init() override; - virtual bool isAttachment() const override; - virtual bool isFileUploadButton() const override; + bool isAttachment() const override; + bool isFileUploadButton() const override; - virtual bool isSelected() const override; - virtual bool isFocused() const override; - virtual bool isLoaded() const override; - virtual bool isOffScreen() const override; - virtual bool isReadOnly() const override; - virtual bool isUnvisited() const override; - virtual bool isVisited() const override; - virtual bool isLinked() const override; - virtual bool hasBoldFont() const override; - virtual bool hasItalicFont() const override; - virtual bool hasPlainText() const override; - virtual bool hasSameFont(RenderObject*) const override; - virtual bool hasSameFontColor(RenderObject*) const override; - virtual bool hasSameStyle(RenderObject*) const override; - virtual bool hasUnderline() const override; + bool isSelected() const override; + bool isFocused() const override; + bool isLoaded() const override; + bool isOffScreen() const override; + bool isUnvisited() const override; + bool isVisited() const override; + bool isLinked() const override; + bool hasBoldFont() const override; + bool hasItalicFont() const override; + bool hasPlainText() const override; + bool hasSameFont(RenderObject*) const override; + bool hasSameFontColor(RenderObject*) const override; + bool hasSameStyle(RenderObject*) const override; + bool hasUnderline() const override; - virtual bool canSetTextRangeAttributes() const override; - virtual bool canSetValueAttribute() const override; - virtual bool canSetExpandedAttribute() const override; + bool canSetTextRangeAttributes() const override; + bool canSetExpandedAttribute() const override; - virtual void setAccessibleName(const AtomicString&) override; + void setAccessibleName(const AtomicString&) override; // Provides common logic used by all elements when determining isIgnored. - virtual AccessibilityObjectInclusion defaultObjectInclusion() const override; + AccessibilityObjectInclusion defaultObjectInclusion() const override; - virtual int layoutCount() const override; - virtual double estimatedLoadingProgress() const override; + int layoutCount() const override; + double estimatedLoadingProgress() const override; - 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; - virtual AccessibilityObject* observableObject() const override; - virtual void linkedUIElements(AccessibilityChildrenVector&) const override; - virtual bool exposesTitleUIElement() const override; - virtual AccessibilityObject* titleUIElement() const override; - virtual AccessibilityObject* correspondingControlForLabelElement() const override; - virtual AccessibilityObject* correspondingLabelForControlElement() 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; + AccessibilityObject* observableObject() const override; + void linkedUIElements(AccessibilityChildrenVector&) const override; + bool exposesTitleUIElement() const override; + AccessibilityObject* titleUIElement() const override; + AccessibilityObject* correspondingControlForLabelElement() const override; + AccessibilityObject* correspondingLabelForControlElement() const override; - virtual void ariaOwnsElements(AccessibilityChildrenVector&) const override; - virtual bool supportsARIAOwns() const override; - virtual bool isPresentationalChildOfAriaRole() const override; - virtual bool ariaRoleHasPresentationalChildren() const override; + bool supportsARIAOwns() const override; + bool isPresentationalChildOfAriaRole() const override; + bool ariaRoleHasPresentationalChildren() const override; // Should be called on the root accessibility object to kick off a hit test. - virtual AccessibilityObject* accessibilityHitTest(const IntPoint&) const override; + AccessibilityObject* accessibilityHitTest(const IntPoint&) const override; - virtual Element* anchorElement() const override; + Element* anchorElement() const override; - virtual LayoutRect boundingBoxRect() const override; - virtual LayoutRect elementRect() const override; - virtual IntPoint clickPoint() override; + LayoutRect boundingBoxRect() const override; + LayoutRect elementRect() const override; + IntPoint clickPoint() override; void setRenderer(RenderObject*); - virtual RenderObject* renderer() const override { return m_renderer; } + RenderObject* renderer() const override { return m_renderer; } RenderBoxModelObject* renderBoxModelObject() const; - virtual Node* node() const override; + Node* node() const override; - virtual Document* document() const override; + Document* document() const override; RenderView* topRenderer() const; RenderTextControl* textControl() const; HTMLLabelElement* labelElementContainer() const; - virtual URL url() const override; - virtual PlainTextRange selectedTextRange() const override; - virtual VisibleSelection selection() const override; - virtual String stringValue() const override; - virtual String helpText() const override; - virtual String textUnderElement(AccessibilityTextUnderElementMode = AccessibilityTextUnderElementMode()) const override; - virtual String text() const override; - virtual int textLength() const override; - virtual String selectedText() const override; - virtual const AtomicString& accessKey() const override; + URL url() const override; + PlainTextRange selectedTextRange() const override; + VisibleSelection selection() const override; + String stringValue() const override; + String helpText() const override; + String textUnderElement(AccessibilityTextUnderElementMode = AccessibilityTextUnderElementMode()) const override; + String text() const override; + int textLength() const override; + String selectedText() const override; + const AtomicString& accessKey() const override; virtual const String& actionVerb() const; - virtual Widget* widget() const override; - virtual Widget* widgetForAttachmentView() const override; + Widget* widget() const override; + Widget* widgetForAttachmentView() const override; virtual void getDocumentLinks(AccessibilityChildrenVector&); - virtual FrameView* documentFrameView() const override; + FrameView* documentFrameView() const override; - virtual void clearChildren() override; - virtual void updateChildrenIfNecessary() override; + void clearChildren() override; + void updateChildrenIfNecessary() override; - virtual void setFocused(bool) override; - virtual void setSelectedTextRange(const PlainTextRange&) override; - virtual void setValue(const String&) override; - virtual void setSelectedRows(AccessibilityChildrenVector&) override; - virtual AccessibilityOrientation orientation() const override; + void setFocused(bool) override; + void setSelectedTextRange(const PlainTextRange&) override; + void setValue(const String&) override; + void setSelectedRows(AccessibilityChildrenVector&) override; + AccessibilityOrientation orientation() const override; - virtual void detach(AccessibilityDetachmentType, AXObjectCache*) override; - virtual void textChanged() override; - virtual void addChildren() override; - virtual bool canHaveChildren() const override; - virtual void selectedChildren(AccessibilityChildrenVector&) override; - virtual void visibleChildren(AccessibilityChildrenVector&) override; - virtual void tabChildren(AccessibilityChildrenVector&) override; - virtual bool shouldFocusActiveDescendant() const override; + void detach(AccessibilityDetachmentType, AXObjectCache*) override; + void textChanged() override; + void addChildren() override; + bool canHaveChildren() const override; + bool canHaveSelectedChildren() const override; + void selectedChildren(AccessibilityChildrenVector&) override; + void visibleChildren(AccessibilityChildrenVector&) override; + void tabChildren(AccessibilityChildrenVector&) override; + bool shouldFocusActiveDescendant() const override; bool shouldNotifyActiveDescendant() const; - virtual AccessibilityObject* activeDescendant() const override; - virtual void handleActiveDescendantChanged() override; - virtual void handleAriaExpandedChanged() override; + AccessibilityObject* activeDescendant() const override; + void handleActiveDescendantChanged() override; + void handleAriaExpandedChanged() override; - virtual VisiblePositionRange visiblePositionRange() const override; - virtual VisiblePositionRange visiblePositionRangeForLine(unsigned) const override; - virtual IntRect boundsForVisiblePositionRange(const VisiblePositionRange&) const override; - virtual void setSelectedVisiblePositionRange(const VisiblePositionRange&) const override; - virtual bool supportsARIAFlowTo() const override; - virtual void ariaFlowToElements(AccessibilityChildrenVector&) const override; - virtual bool supportsARIADescribedBy() const override; - virtual void ariaDescribedByElements(AccessibilityChildrenVector&) const override; - virtual bool ariaHasPopup() const override; + VisiblePositionRange visiblePositionRange() const override; + VisiblePositionRange visiblePositionRangeForLine(unsigned) const override; + IntRect boundsForVisiblePositionRange(const VisiblePositionRange&) const override; + IntRect boundsForRange(const RefPtr<Range>) const override; + IntRect boundsForRects(LayoutRect&, LayoutRect&, RefPtr<Range>) const; + void setSelectedVisiblePositionRange(const VisiblePositionRange&) const override; + bool isVisiblePositionRangeInDifferentDocument(const VisiblePositionRange&) const; + bool ariaHasPopup() const override; - virtual bool supportsARIADropping() const override; - virtual bool supportsARIADragging() const override; - virtual bool isARIAGrabbed() override; - virtual void determineARIADropEffects(Vector<String>&) override; + bool supportsARIADropping() const override; + bool supportsARIADragging() const override; + bool isARIAGrabbed() override; + void determineARIADropEffects(Vector<String>&) override; - virtual VisiblePosition visiblePositionForPoint(const IntPoint&) const override; - virtual VisiblePosition visiblePositionForIndex(unsigned indexValue, bool lastIndexOK) const override; - virtual int index(const VisiblePosition&) const override; + VisiblePosition visiblePositionForPoint(const IntPoint&) const override; + VisiblePosition visiblePositionForIndex(unsigned indexValue, bool lastIndexOK) const override; + int index(const VisiblePosition&) const override; - virtual VisiblePosition visiblePositionForIndex(int) const override; - virtual int indexForVisiblePosition(const VisiblePosition&) const override; + VisiblePosition visiblePositionForIndex(int) const override; + int indexForVisiblePosition(const VisiblePosition&) const override; - virtual void lineBreaks(Vector<int>&) const override; - virtual PlainTextRange doAXRangeForLine(unsigned) const override; - virtual PlainTextRange doAXRangeForIndex(unsigned) const override; + void lineBreaks(Vector<int>&) const override; + PlainTextRange doAXRangeForLine(unsigned) const override; + PlainTextRange doAXRangeForIndex(unsigned) const override; - virtual String doAXStringForRange(const PlainTextRange&) const override; - virtual IntRect doAXBoundsForRange(const PlainTextRange&) const override; + String doAXStringForRange(const PlainTextRange&) const override; + IntRect doAXBoundsForRange(const PlainTextRange&) const override; + IntRect doAXBoundsForRangeUsingCharacterOffset(const PlainTextRange&) const override; - virtual String stringValueForMSAA() const override; - virtual String stringRoleForMSAA() const override; - virtual String nameForMSAA() const override; - virtual String descriptionForMSAA() const override; - virtual AccessibilityRole roleValueForMSAA() const override; + String stringValueForMSAA() const override; + String stringRoleForMSAA() const override; + String nameForMSAA() const override; + String descriptionForMSAA() const override; + AccessibilityRole roleValueForMSAA() const override; - virtual String passwordFieldValue() const override; + String passwordFieldValue() const override; protected: - RenderObject* m_renderer; - + explicit AccessibilityRenderObject(RenderObject*); void setRenderObject(RenderObject* renderer) { m_renderer = renderer; } bool needsToUpdateChildren() const { return m_childrenDirty; } - virtual ScrollableArea* getScrollableAreaIfScrollable() const override; - virtual void scrollTo(const IntPoint&) const override; + ScrollableArea* getScrollableAreaIfScrollable() const override; + void scrollTo(const IntPoint&) const override; - virtual bool isDetached() const override { return !m_renderer; } + bool isDetached() const override { return !m_renderer; } - virtual AccessibilityRole determineAccessibilityRole() override; - virtual bool computeAccessibilityIsIgnored() const override; + AccessibilityRole determineAccessibilityRole() override; + bool computeAccessibilityIsIgnored() const override; + +#if ENABLE(MATHML) + virtual bool isIgnoredElementWithinMathTree() const; +#endif + + RenderObject* m_renderer; private: + bool isAccessibilityRenderObject() const final { return true; } void ariaListboxSelectedChildren(AccessibilityChildrenVector&); void ariaListboxVisibleChildren(AccessibilityChildrenVector&); bool isAllowedChildOfTree() const; bool hasTextAlternative() const; String positionalDescriptionForMSAA() const; - PlainTextRange ariaSelectedTextRange() const; + PlainTextRange documentBasedSelectedTextRange() const; Element* rootEditableElementForPosition(const Position&) const; bool nodeIsTextControl(const Node*) const; - virtual void setNeedsToUpdateChildren() override { m_childrenDirty = true; } - virtual Path elementPath() const override; + void setNeedsToUpdateChildren() override { m_childrenDirty = true; } + Path elementPath() const override; bool isTabItemSelected() const; LayoutRect checkboxOrRadioRect() const; void addRadioButtonGroupMembers(AccessibilityChildrenVector& linkedUIElements) const; + void addRadioButtonGroupChildren(AccessibilityObject*, AccessibilityChildrenVector&) const; AccessibilityObject* internalLinkElement() const; AccessibilityObject* accessibilityImageMapHitTest(HTMLAreaElement*, const IntPoint&) const; AccessibilityObject* accessibilityParentForImageMap(HTMLMapElement*) const; - virtual AccessibilityObject* elementAccessibilityHitTest(const IntPoint&) const override; + AccessibilityObject* elementAccessibilityHitTest(const IntPoint&) const override; - bool renderObjectIsObservable(RenderObject*) const; + bool renderObjectIsObservable(RenderObject&) const; RenderObject* renderParentObject() const; bool isDescendantOfElementType(const QualifiedName& tagName) const; bool isSVGImage() const; void detachRemoteSVGRoot(); - AccessibilitySVGRoot* remoteSVGRootElement() const; + enum CreationChoice { Create, Retrieve }; + AccessibilitySVGRoot* remoteSVGRootElement(CreationChoice createIfNecessary) const; AccessibilityObject* remoteSVGElementHitTest(const IntPoint&) const; void offsetBoundingBoxForRemoteSVGElement(LayoutRect&) const; - virtual bool supportsPath() const override; + bool supportsPath() const override; void addHiddenChildren(); void addTextFieldChildren(); @@ -261,79 +257,30 @@ private: void addCanvasChildren(); void addAttachmentChildren(); void addRemoteSVGChildren(); -#if PLATFORM(MAC) +#if PLATFORM(COCOA) void updateAttachmentViewParents(); #endif - + String expandedTextValue() const override; + bool supportsExpandedTextValue() const override; + void updateRoleAfterChildrenCreation(); + void ariaSelectedRows(AccessibilityChildrenVector&); bool elementAttributeValue(const QualifiedName&) const; void setElementAttributeValue(const QualifiedName&, bool); - virtual ESpeak speakProperty() const override; - - virtual const AtomicString& ariaLiveRegionStatus() const override; - virtual const AtomicString& ariaLiveRegionRelevant() const override; - virtual bool ariaLiveRegionAtomic() const override; - virtual bool ariaLiveRegionBusy() const override; - - bool inheritsPresentationalRole() const; - -#if ENABLE(MATHML) - // All math elements return true for isMathElement(). - virtual bool isMathElement() const override; - virtual bool isMathFraction() const override; - virtual bool isMathFenced() const override; - virtual bool isMathSubscriptSuperscript() const override; - virtual bool isMathRow() const override; - virtual bool isMathUnderOver() const override; - virtual bool isMathRoot() const override; - virtual bool isMathSquareRoot() const override; - virtual bool isMathText() const override; - virtual bool isMathNumber() const override; - virtual bool isMathOperator() const override; - virtual bool isMathFenceOperator() const override; - virtual bool isMathSeparatorOperator() const override; - virtual bool isMathIdentifier() const override; - virtual bool isMathTable() const override; - virtual bool isMathTableRow() const override; - virtual bool isMathTableCell() const override; - virtual bool isMathMultiscript() const override; - - // Generic components. - virtual AccessibilityObject* mathBaseObject() override; + ESpeak speakProperty() const override; - // Root components. - virtual AccessibilityObject* mathRadicandObject() override; - virtual AccessibilityObject* mathRootIndexObject() override; - - // Fraction components. - virtual AccessibilityObject* mathNumeratorObject() override; - virtual AccessibilityObject* mathDenominatorObject() override; + const String ariaLiveRegionStatus() const override; + const AtomicString& ariaLiveRegionRelevant() const override; + bool ariaLiveRegionAtomic() const override; + bool isBusy() const override; - // Under over components. - virtual AccessibilityObject* mathUnderObject() override; - virtual AccessibilityObject* mathOverObject() override; - - // Subscript/superscript components. - virtual AccessibilityObject* mathSubscriptObject() override; - virtual AccessibilityObject* mathSuperscriptObject() override; - - // Fenced components. - virtual String mathFencedOpenString() const override; - virtual String mathFencedCloseString() const override; - virtual int mathLineThickness() const override; + bool inheritsPresentationalRole() const override; - // Multiscripts components. - virtual void mathPrescripts(AccessibilityMathMultiscriptPairs&) override; - virtual void mathPostscripts(AccessibilityMathMultiscriptPairs&) override; - - bool isIgnoredElementWithinMathTree() const; -#endif + bool shouldGetTextFromNode(AccessibilityTextUnderElementMode) const; }; -ACCESSIBILITY_OBJECT_TYPE_CASTS(AccessibilityRenderObject, isAccessibilityRenderObject()) - } // namespace WebCore -#endif // AccessibilityRenderObject_h +SPECIALIZE_TYPE_TRAITS_ACCESSIBILITY(AccessibilityRenderObject, isAccessibilityRenderObject()) |