#ifndef COMPONENTS_PDF_RENDERER_PDF_ACCESSIBILITY_TREE_H_
#define COMPONENTS_PDF_RENDERER_PDF_ACCESSIBILITY_TREE_H_
#include <map>
#include <memory>
#include <optional>
#include <vector>
#include "base/memory/raw_ptr.h"
#include "base/memory/weak_ptr.h"
#include "content/public/renderer/plugin_ax_tree_action_target_adapter.h"
#include "content/public/renderer/render_frame_observer.h"
#include "pdf/accessibility_structs.h"
#include "pdf/pdf_accessibility_data_handler.h"
#include "services/screen_ai/buildflags/buildflags.h"
#include "third_party/blink/public/web/web_ax_object.h"
#include "ui/accessibility/ax_node.h"
#include "ui/accessibility/ax_node_id_forward.h"
#include "ui/accessibility/ax_tree.h"
#include "ui/accessibility/ax_tree_id.h"
#include "ui/accessibility/ax_tree_source.h"
#include "ui/gfx/geometry/rect_f.h"
#include "ui/gfx/geometry/vector2d_f.h"
#if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE)
#include "components/pdf/renderer/pdf_ocr_helper.h"
#endif
namespace blink {
class WebPluginContainer;
}
namespace chrome_pdf {
class PdfAccessibilityActionHandler;
class PdfAccessibilityImageFetcher;
}
namespace content {
class RenderAccessibility;
class RenderFrame;
}
namespace gfx {
class Transform;
}
namespace ui {
struct AXTreeUpdate;
}
namespace pdf {
class PdfAccessibilityTree : public ui::AXTreeSource<const ui::AXNode*,
ui::AXTreeData*,
ui::AXNodeData>,
public content::PluginAXTreeActionTargetAdapter,
public content::RenderFrameObserver,
public chrome_pdf::PdfAccessibilityDataHandler { … };
}
#endif