#ifndef CONTENT_RENDERER_ACCESSIBILITY_ANNOTATIONS_AX_ANNOTATORS_MANAGER_H_
#define CONTENT_RENDERER_ACCESSIBILITY_ANNOTATIONS_AX_ANNOTATORS_MANAGER_H_
#include <memory>
#include <vector>
#include "content/common/content_export.h"
#include "ui/accessibility/ax_mode.h"
#include "ui/accessibility/ax_node_data.h"
#include "ui/accessibility/ax_tree_update.h"
namespace blink {
class WebDocument;
}
namespace content {
class AXAnnotator;
class RenderAccessibilityImpl;
class CONTENT_EXPORT AXAnnotatorsManager {
public:
explicit AXAnnotatorsManager(
RenderAccessibilityImpl* const render_accessibility);
AXAnnotatorsManager(const AXAnnotatorsManager&) = delete;
AXAnnotatorsManager& operator=(const AXAnnotatorsManager&) = delete;
~AXAnnotatorsManager();
void Annotate(const blink::WebDocument& document,
ui::AXTreeUpdate* update,
bool load_complete);
void CancelAnnotations();
void AccessibilityModeChanged(ui::AXMode old_mode, ui::AXMode new_mode);
void PerformAction(ax::mojom::Action action);
void AddDebuggingAttributes(const std::vector<ui::AXTreeUpdate>& updates);
void AddAnnotatorForTesting(std::unique_ptr<AXAnnotator>);
void ClearAnnotatorsForTesting();
private:
raw_ptr<RenderAccessibilityImpl> render_accessibility_;
std::vector<std::unique_ptr<AXAnnotator>> ax_annotators_;
};
}
#endif