Chromium Code Reviews| Index: third_party/WebKit/Source/core/dom/AccessibleNode.cpp |
| diff --git a/third_party/WebKit/Source/core/dom/AccessibleNode.cpp b/third_party/WebKit/Source/core/dom/AccessibleNode.cpp |
| index 307d73fd1cb62ed5fcc906778643c6f6f9e1b6b0..4fb76bcca3588510082acbb5a9d920cee95fbd85 100644 |
| --- a/third_party/WebKit/Source/core/dom/AccessibleNode.cpp |
| +++ b/third_party/WebKit/Source/core/dom/AccessibleNode.cpp |
| @@ -32,16 +32,150 @@ const AtomicString& AccessibleNode::getProperty(Element* element, |
| // Fall back on the equivalent ARIA attribute. |
| switch (property) { |
| - case AOMStringProperty::kRole: |
| - return element->getAttribute(HTMLNames::roleAttr); |
| + case AOMStringProperty::kAutocomplete: |
| + return element->getAttribute(HTMLNames::aria_autocompleteAttr); |
| + case AOMStringProperty::kChecked: |
| + return element->getAttribute(HTMLNames::aria_checkedAttr); |
| + case AOMStringProperty::kCurrent: |
| + return element->getAttribute(HTMLNames::aria_currentAttr); |
| + case AOMStringProperty::kInvalid: |
| + return element->getAttribute(HTMLNames::aria_invalidAttr); |
| + case AOMStringProperty::kKeyShortcuts: |
| + return element->getAttribute(HTMLNames::aria_keyshortcutsAttr); |
| case AOMStringProperty::kLabel: |
| return element->getAttribute(HTMLNames::aria_labelAttr); |
| + case AOMStringProperty::kLive: |
| + return element->getAttribute(HTMLNames::aria_liveAttr); |
| + case AOMStringProperty::kOrientation: |
| + return element->getAttribute(HTMLNames::aria_orientationAttr); |
| + case AOMStringProperty::kPlaceholder: |
| + return element->getAttribute(HTMLNames::aria_placeholderAttr); |
| + case AOMStringProperty::kRelevant: |
| + return element->getAttribute(HTMLNames::aria_relevantAttr); |
| + case AOMStringProperty::kRole: |
| + return element->getAttribute(HTMLNames::roleAttr); |
| + case AOMStringProperty::kRoleDescription: |
| + return element->getAttribute(HTMLNames::aria_roledescriptionAttr); |
| + case AOMStringProperty::kSort: |
| + return element->getAttribute(HTMLNames::aria_sortAttr); |
| + case AOMStringProperty::kValueText: |
| + return element->getAttribute(HTMLNames::aria_valuetextAttr); |
| default: |
|
esprehn
2017/04/04 06:22:30
If you remove the default it'll fail to compile if
dmazzoni
2017/04/04 18:59:17
Done.
|
| NOTREACHED(); |
| return nullAtom; |
| } |
| } |
| +AtomicString AccessibleNode::autocomplete() const { |
| + return getProperty(m_element, AOMStringProperty::kAutocomplete); |
| +} |
| + |
| +void AccessibleNode::setAutocomplete(const AtomicString& autocomplete) { |
| + setStringProperty(AOMStringProperty::kAutocomplete, autocomplete); |
| + |
| + if (AXObjectCache* cache = m_element->document().axObjectCache()) |
|
esprehn
2017/04/04 06:22:30
You do this same thing everywhere, maybe you want
dmazzoni
2017/04/04 18:59:17
Done.
Actually, glad I looked at this. We should
|
| + cache->handleAttributeChanged(HTMLNames::aria_autocompleteAttr, m_element); |
| +} |
| + |
| +AtomicString AccessibleNode::checked() const { |
| + return getProperty(m_element, AOMStringProperty::kChecked); |
| +} |
| + |
| +void AccessibleNode::setChecked(const AtomicString& checked) { |
| + setStringProperty(AOMStringProperty::kChecked, checked); |
| + |
| + if (AXObjectCache* cache = m_element->document().axObjectCache()) |
| + cache->handleAttributeChanged(HTMLNames::aria_checkedAttr, m_element); |
| +} |
| + |
| +AtomicString AccessibleNode::current() const { |
| + return getProperty(m_element, AOMStringProperty::kCurrent); |
| +} |
| + |
| +void AccessibleNode::setCurrent(const AtomicString& current) { |
| + setStringProperty(AOMStringProperty::kCurrent, current); |
| + |
| + if (AXObjectCache* cache = m_element->document().axObjectCache()) |
| + cache->handleAttributeChanged(HTMLNames::aria_currentAttr, m_element); |
| +} |
| + |
| +AtomicString AccessibleNode::invalid() const { |
| + return getProperty(m_element, AOMStringProperty::kInvalid); |
| +} |
| + |
| +void AccessibleNode::setInvalid(const AtomicString& invalid) { |
| + setStringProperty(AOMStringProperty::kInvalid, invalid); |
| + |
| + if (AXObjectCache* cache = m_element->document().axObjectCache()) |
| + cache->handleAttributeChanged(HTMLNames::aria_invalidAttr, m_element); |
| +} |
| + |
| +AtomicString AccessibleNode::keyShortcuts() const { |
| + return getProperty(m_element, AOMStringProperty::kKeyShortcuts); |
| +} |
| + |
| +void AccessibleNode::setKeyShortcuts(const AtomicString& keyShortcuts) { |
| + setStringProperty(AOMStringProperty::kKeyShortcuts, keyShortcuts); |
| + |
| + if (AXObjectCache* cache = m_element->document().axObjectCache()) |
| + cache->handleAttributeChanged(HTMLNames::aria_keyshortcutsAttr, m_element); |
| +} |
| + |
| +AtomicString AccessibleNode::label() const { |
| + return getProperty(m_element, AOMStringProperty::kLabel); |
| +} |
| + |
| +void AccessibleNode::setLabel(const AtomicString& label) { |
| + setStringProperty(AOMStringProperty::kLabel, label); |
| + |
| + if (AXObjectCache* cache = m_element->document().axObjectCache()) |
| + cache->handleAttributeChanged(HTMLNames::aria_labelAttr, m_element); |
| +} |
| + |
| +AtomicString AccessibleNode::live() const { |
| + return getProperty(m_element, AOMStringProperty::kLive); |
| +} |
| + |
| +void AccessibleNode::setLive(const AtomicString& live) { |
| + setStringProperty(AOMStringProperty::kLive, live); |
| + |
| + if (AXObjectCache* cache = m_element->document().axObjectCache()) |
| + cache->handleAttributeChanged(HTMLNames::aria_liveAttr, m_element); |
| +} |
| + |
| +AtomicString AccessibleNode::orientation() const { |
| + return getProperty(m_element, AOMStringProperty::kOrientation); |
| +} |
| + |
| +void AccessibleNode::setOrientation(const AtomicString& orientation) { |
| + setStringProperty(AOMStringProperty::kOrientation, orientation); |
| + |
| + if (AXObjectCache* cache = m_element->document().axObjectCache()) |
| + cache->handleAttributeChanged(HTMLNames::aria_orientationAttr, m_element); |
| +} |
| + |
| +AtomicString AccessibleNode::placeholder() const { |
| + return getProperty(m_element, AOMStringProperty::kPlaceholder); |
| +} |
| + |
| +void AccessibleNode::setPlaceholder(const AtomicString& placeholder) { |
| + setStringProperty(AOMStringProperty::kPlaceholder, placeholder); |
| + |
| + if (AXObjectCache* cache = m_element->document().axObjectCache()) |
| + cache->handleAttributeChanged(HTMLNames::aria_placeholderAttr, m_element); |
| +} |
| + |
| +AtomicString AccessibleNode::relevant() const { |
| + return getProperty(m_element, AOMStringProperty::kRelevant); |
| +} |
| + |
| +void AccessibleNode::setRelevant(const AtomicString& relevant) { |
| + setStringProperty(AOMStringProperty::kRelevant, relevant); |
| + |
| + if (AXObjectCache* cache = m_element->document().axObjectCache()) |
| + cache->handleAttributeChanged(HTMLNames::aria_relevantAttr, m_element); |
| +} |
| + |
| AtomicString AccessibleNode::role() const { |
| return getProperty(m_element, AOMStringProperty::kRole); |
| } |
| @@ -55,15 +189,39 @@ void AccessibleNode::setRole(const AtomicString& role) { |
| cache->handleAttributeChanged(HTMLNames::roleAttr, m_element); |
| } |
| -AtomicString AccessibleNode::label() const { |
| - return getProperty(m_element, AOMStringProperty::kLabel); |
| +AtomicString AccessibleNode::roleDescription() const { |
| + return getProperty(m_element, AOMStringProperty::kRoleDescription); |
| } |
| -void AccessibleNode::setLabel(const AtomicString& label) { |
| - setStringProperty(AOMStringProperty::kLabel, label); |
| +void AccessibleNode::setRoleDescription(const AtomicString& roleDescription) { |
| + setStringProperty(AOMStringProperty::kRoleDescription, roleDescription); |
| + |
| + if (AXObjectCache* cache = m_element->document().axObjectCache()) { |
| + cache->handleAttributeChanged(HTMLNames::aria_roledescriptionAttr, |
| + m_element); |
| + } |
| +} |
| + |
| +AtomicString AccessibleNode::sort() const { |
| + return getProperty(m_element, AOMStringProperty::kSort); |
| +} |
| + |
| +void AccessibleNode::setSort(const AtomicString& sort) { |
| + setStringProperty(AOMStringProperty::kSort, sort); |
| if (AXObjectCache* cache = m_element->document().axObjectCache()) |
| - cache->handleAttributeChanged(HTMLNames::aria_labelAttr, m_element); |
| + cache->handleAttributeChanged(HTMLNames::aria_sortAttr, m_element); |
| +} |
| + |
| +AtomicString AccessibleNode::valueText() const { |
| + return getProperty(m_element, AOMStringProperty::kValueText); |
| +} |
| + |
| +void AccessibleNode::setValueText(const AtomicString& valueText) { |
| + setStringProperty(AOMStringProperty::kValueText, valueText); |
| + |
| + if (AXObjectCache* cache = m_element->document().axObjectCache()) |
| + cache->handleAttributeChanged(HTMLNames::aria_valuetextAttr, m_element); |
| } |
| void AccessibleNode::setStringProperty(AOMStringProperty property, |