Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(681)

Unified Diff: third_party/WebKit/Source/web/WebAXObject.cpp

Issue 2589273002: Add sparse accessibility attribute interface to Blink (Closed)
Patch Set: Address feedback Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/web/AssertMatchingEnums.cpp ('k') | third_party/WebKit/public/web/WebAXEnums.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/web/WebAXObject.cpp
diff --git a/third_party/WebKit/Source/web/WebAXObject.cpp b/third_party/WebKit/Source/web/WebAXObject.cpp
index 3cca2dea3a7b940f7e77fc3f88cdaefda8567995..ae78fdf3474c87aa3c512fd20b22a29f32b7f595 100644
--- a/third_party/WebKit/Source/web/WebAXObject.cpp
+++ b/third_party/WebKit/Source/web/WebAXObject.cpp
@@ -62,6 +62,42 @@
namespace blink {
+class WebAXSparseAttributeClientAdapter : public AXSparseAttributeClient {
+ public:
+ WebAXSparseAttributeClientAdapter(WebAXSparseAttributeClient& attributeMap)
+ : m_attributeMap(attributeMap) {}
+ virtual ~WebAXSparseAttributeClientAdapter() {}
+
+ private:
+ WebAXSparseAttributeClient& m_attributeMap;
+
+ void addBoolAttribute(AXBoolAttribute attribute, bool value) override {
+ m_attributeMap.addBoolAttribute(static_cast<WebAXBoolAttribute>(attribute),
+ value);
+ }
+
+ void addStringAttribute(AXStringAttribute attribute,
+ const String& value) override {
+ m_attributeMap.addStringAttribute(
+ static_cast<WebAXStringAttribute>(attribute), value);
+ }
+
+ void addObjectAttribute(AXObjectAttribute attribute,
+ AXObject& value) override {
+ m_attributeMap.addObjectAttribute(
+ static_cast<WebAXObjectAttribute>(attribute), WebAXObject(&value));
+ }
+
+ void addObjectVectorAttribute(AXObjectVectorAttribute attribute,
+ HeapVector<Member<AXObject>>& value) override {
+ WebVector<WebAXObject> result(value.size());
+ for (size_t i = 0; i < value.size(); i++)
+ result[i] = WebAXObject(value[i]);
+ m_attributeMap.addObjectVectorAttribute(
+ static_cast<WebAXObjectVectorAttribute>(attribute), result);
+ }
+};
+
#if DCHECK_IS_ON()
// It's not safe to call some WebAXObject APIs if a layout is pending.
// Clients should call updateLayoutAndCheckValidity first.
@@ -200,6 +236,15 @@ WebAXObject WebAXObject::parentObject() const {
return WebAXObject(m_private->parentObject());
}
+void WebAXObject::getSparseAXAttributes(
+ WebAXSparseAttributeClient& client) const {
+ if (isDetached())
+ return;
+
+ WebAXSparseAttributeClientAdapter adapter(client);
+ m_private->getSparseAXAttributes(adapter);
+}
+
bool WebAXObject::canSetSelectedAttribute() const {
if (isDetached())
return false;
@@ -432,21 +477,6 @@ WebAXObject WebAXObject::ariaActiveDescendant() const {
return WebAXObject(m_private->activeDescendant());
}
-bool WebAXObject::ariaControls(WebVector<WebAXObject>& controlsElements) const {
- if (isDetached())
- return false;
-
- AXObject::AXObjectVector controls;
- m_private->ariaControlsElements(controls);
-
- WebVector<WebAXObject> result(controls.size());
- for (size_t i = 0; i < controls.size(); i++)
- result[i] = WebAXObject(controls[i]);
- controlsElements.swap(result);
-
- return true;
-}
-
bool WebAXObject::ariaHasPopup() const {
if (isDetached())
return false;
@@ -454,21 +484,6 @@ bool WebAXObject::ariaHasPopup() const {
return m_private->ariaHasPopup();
}
-bool WebAXObject::ariaFlowTo(WebVector<WebAXObject>& flowToElements) const {
- if (isDetached())
- return false;
-
- AXObject::AXObjectVector flowTo;
- m_private->ariaFlowToElements(flowTo);
-
- WebVector<WebAXObject> result(flowTo.size());
- for (size_t i = 0; i < flowTo.size(); i++)
- result[i] = WebAXObject(flowTo[i]);
- flowToElements.swap(result);
-
- return true;
-}
-
bool WebAXObject::isEditable() const {
if (isDetached())
return false;
« no previous file with comments | « third_party/WebKit/Source/web/AssertMatchingEnums.cpp ('k') | third_party/WebKit/public/web/WebAXEnums.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698