| Index: third_party/WebKit/Source/core/dom/AccessibleNode.h
|
| diff --git a/third_party/WebKit/Source/core/dom/AccessibleNode.h b/third_party/WebKit/Source/core/dom/AccessibleNode.h
|
| index aacad2d363c01a88171aae06b3158e517a137a50..d7362dfa50459d4c785a25eee232e07915b2b56c 100644
|
| --- a/third_party/WebKit/Source/core/dom/AccessibleNode.h
|
| +++ b/third_party/WebKit/Source/core/dom/AccessibleNode.h
|
| @@ -15,6 +15,7 @@
|
|
|
| namespace blink {
|
|
|
| +class AccessibleNodeList;
|
| class AXObjectCache;
|
| class Element;
|
| class QualifiedName;
|
| @@ -69,6 +70,14 @@ enum class AOMRelationProperty {
|
| kErrorMessage,
|
| };
|
|
|
| +enum class AOMRelationListProperty {
|
| + kDescribedBy,
|
| + kControls,
|
| + kFlowTo,
|
| + kLabeledBy,
|
| + kOwns,
|
| +};
|
| +
|
| // All of the properties of AccessibleNode that have a signed integer type.
|
| // (These all allow the value -1.)
|
| enum class AOMIntProperty { kColCount, kRowCount, kSetSize };
|
| @@ -87,6 +96,8 @@ class CORE_EXPORT AOMPropertyClient {
|
| virtual void AddFloatProperty(AOMFloatProperty, float) = 0;
|
| virtual void AddRelationProperty(AOMRelationProperty,
|
| const AccessibleNode&) = 0;
|
| + virtual void AddRelationListProperty(AOMRelationListProperty,
|
| + const AccessibleNodeList&) = 0;
|
| };
|
|
|
| // Accessibility Object Model node
|
| @@ -110,6 +121,13 @@ class CORE_EXPORT AccessibleNode
|
| // Returns the given relation property if the Element has an AccessibleNode.
|
| static AccessibleNode* GetProperty(Element*, AOMRelationProperty);
|
|
|
| + // Returns the given relation list property if the Element has an
|
| + // AccessibleNode.
|
| + static AccessibleNodeList* GetProperty(Element*, AOMRelationListProperty);
|
| + static bool GetProperty(Element*,
|
| + AOMRelationListProperty,
|
| + HeapVector<Member<Element>>&);
|
| +
|
| // Returns the value of the given property if the
|
| // Element has an AccessibleNode. Sets |isNull| if the property and
|
| // attribute are not present.
|
| @@ -129,6 +147,13 @@ class CORE_EXPORT AccessibleNode
|
| static AccessibleNode* GetPropertyOrARIAAttribute(Element*,
|
| AOMRelationProperty);
|
|
|
| + // Returns true and provides the the value of the given relation
|
| + // list property if the Element has an AccessibleNode, or if it has
|
| + // the equivalent ARIA attribute. Otherwise returns false.
|
| + static bool GetPropertyOrARIAAttribute(Element*,
|
| + AOMRelationListProperty,
|
| + HeapVector<Member<Element>>&);
|
| +
|
| // Returns the value of the given property if the
|
| // Element has an AccessibleNode, otherwise returns the equivalent
|
| // ARIA attribute. Sets |isNull| if the property and attribute are not
|
| @@ -179,9 +204,15 @@ class CORE_EXPORT AccessibleNode
|
| uint32_t colSpan(bool& is_null) const;
|
| void setColSpan(uint32_t, bool is_null);
|
|
|
| + AccessibleNodeList* controls() const;
|
| + void setControls(AccessibleNodeList*);
|
| +
|
| AtomicString current() const;
|
| void setCurrent(const AtomicString&);
|
|
|
| + AccessibleNodeList* describedBy();
|
| + void setDescribedBy(AccessibleNodeList*);
|
| +
|
| AccessibleNode* details() const;
|
| void setDetails(AccessibleNode*);
|
|
|
| @@ -194,6 +225,9 @@ class CORE_EXPORT AccessibleNode
|
| bool expanded(bool& is_null) const;
|
| void setExpanded(bool, bool is_null);
|
|
|
| + AccessibleNodeList* flowTo() const;
|
| + void setFlowTo(AccessibleNodeList*);
|
| +
|
| bool hidden(bool& is_null) const;
|
| void setHidden(bool, bool is_null);
|
|
|
| @@ -206,6 +240,9 @@ class CORE_EXPORT AccessibleNode
|
| AtomicString label() const;
|
| void setLabel(const AtomicString&);
|
|
|
| + AccessibleNodeList* labeledBy();
|
| + void setLabeledBy(AccessibleNodeList*);
|
| +
|
| uint32_t level(bool& is_null) const;
|
| void setLevel(uint32_t, bool is_null);
|
|
|
| @@ -224,6 +261,9 @@ class CORE_EXPORT AccessibleNode
|
| AtomicString orientation() const;
|
| void setOrientation(const AtomicString&);
|
|
|
| + AccessibleNodeList* owns() const;
|
| + void setOwns(AccessibleNodeList*);
|
| +
|
| AtomicString placeholder() const;
|
| void setPlaceholder(const AtomicString&);
|
|
|
| @@ -280,9 +320,14 @@ class CORE_EXPORT AccessibleNode
|
|
|
| DECLARE_VIRTUAL_TRACE();
|
|
|
| + protected:
|
| + friend class AccessibleNodeList;
|
| + void OnRelationListChanged(AOMRelationListProperty);
|
| +
|
| private:
|
| void SetStringProperty(AOMStringProperty, const AtomicString&);
|
| void SetRelationProperty(AOMRelationProperty, AccessibleNode*);
|
| + void SetRelationListProperty(AOMRelationListProperty, AccessibleNodeList*);
|
| void SetBooleanProperty(AOMBooleanProperty, bool value, bool is_null);
|
| void SetFloatProperty(AOMFloatProperty, float value, bool is_null);
|
| void SetUIntProperty(AOMUIntProperty, uint32_t value, bool is_null);
|
| @@ -297,6 +342,8 @@ class CORE_EXPORT AccessibleNode
|
| Vector<std::pair<AOMUIntProperty, uint32_t>> uint_properties_;
|
| HeapVector<std::pair<AOMRelationProperty, Member<AccessibleNode>>>
|
| relation_properties_;
|
| + HeapVector<std::pair<AOMRelationListProperty, Member<AccessibleNodeList>>>
|
| + relation_list_properties_;
|
|
|
| // This object's owner Element.
|
| Member<Element> element_;
|
|
|