#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_ACCESSIBILITY_AX_OBJECT_INL_H_
#define THIRD_PARTY_BLINK_RENDERER_MODULES_ACCESSIBILITY_AX_OBJECT_INL_H_
#include "third_party/blink/renderer/core/layout/layout_object.h"
#include "third_party/blink/renderer/modules/accessibility/ax_node_object.h"
#include "third_party/blink/renderer/modules/accessibility/ax_object.h"
namespace blink {
Node* AXObject::GetNode() const {
if (auto* node_object = DynamicTo<AXNodeObject>(this)) {
return node_object->GetNode();
} else {
return nullptr;
}
}
Node* AXObject::GetClosestNode() const {
return GetNode() ? GetNode() : ParentObject()->GetClosestNode();
}
Node* AXNodeObject::GetNode() const {
if (IsDetached()) {
DCHECK(!node_);
return nullptr;
}
DCHECK(!GetLayoutObject() || GetLayoutObject()->GetNode() == node_)
<< "If there is an associated layout object, its node should match the "
"associated node of this accessibility object.\n"
<< this;
return node_;
}
}
#endif