blob: 6901d4d3ad23a7fbc8d586ae983649776b8663f1 [file]
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_RENDERER_ACCESSIBILITY_READ_ANYTHING_NODE_UTILS_H_
#define CHROME_RENDERER_ACCESSIBILITY_READ_ANYTHING_NODE_UTILS_H_
#include "ui/accessibility/ax_node.h"
// Utilities for getting html or text info about ax nodes. These are used by
// ReadAnythingAppModel and ReadAloudAppModel.
namespace a11y {
// Returns whether the given node represents a superscript.
bool IsSuperscript(ui::AXNode* ax_node);
// Returns whether the given node is a text node displayed by read anything.
bool IsTextForReadAnything(ui::AXNode* ax_node, bool is_pdf, bool is_docs);
// Returns whether the given node is ignored when distilling content for read
// anything.
bool IsNodeIgnoredForReadAnything(ui::AXNode* ax_node, bool is_pdf);
// Returns the html tag for the given node.
std::string GetHtmlTag(ui::AXNode* ax_node, bool is_pdf, bool is_docs);
// Returns the html tag for the given node which is inside a pdf.
std::string GetHtmlTagForPDF(ui::AXNode* ax_node, const std::string& html_tag);
// Returns the heading html tag for the given node which is inside a pdf.
std::string GetHeadingHtmlTagForPDF(ui::AXNode* ax_node,
const std::string& html_tag);
// Returns the node that was used for selection.
ui::AXNode* GetParentForSelection(ui::AXNode* ax_node);
// Returns the alt text for the given node.
std::string GetAltText(ui::AXNode* ax_node);
// Returns the image data url for the given node.
std::string GetImageDataUrl(ui::AXNode* ax_node);
// Returns the text content for the given node. This needs to be a wrapper
// instead of getting text from the node directly because the text content
// is different if in Google Docs
std::u16string GetTextContent(ui::AXNode* ax_node, bool is_docs);
std::u16string GetNameAttributeText(ui::AXNode* ax_node);
} // namespace a11y
#endif // CHROME_RENDERER_ACCESSIBILITY_READ_ANYTHING_NODE_UTILS_H_