#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "third_party/blink/renderer/modules/accessibility/ax_object.h"
#include <algorithm>
#include <ostream>
#include "base/auto_reset.h"
#include "base/numerics/safe_conversions.h"
#include "base/ranges/algorithm.h"
#include "base/strings/string_util.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/common/input/web_keyboard_event.h"
#include "third_party/blink/public/common/input/web_menu_source_type.h"
#include "third_party/blink/public/mojom/frame/user_activation_notification_type.mojom-blink.h"
#include "third_party/blink/public/mojom/input/focus_type.mojom-blink.h"
#include "third_party/blink/public/mojom/scroll/scroll_into_view_params.mojom-blink.h"
#include "third_party/blink/renderer/core/accessibility/ax_object_cache.h"
#include "third_party/blink/renderer/core/accessibility/axid.h"
#include "third_party/blink/renderer/core/aom/accessible_node.h"
#include "third_party/blink/renderer/core/aom/accessible_node_list.h"
#include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
#include "third_party/blink/renderer/core/display_lock/display_lock_utilities.h"
#include "third_party/blink/renderer/core/dom/dom_node_ids.h"
#include "third_party/blink/renderer/core/dom/element.h"
#include "third_party/blink/renderer/core/dom/events/simulated_click_options.h"
#include "third_party/blink/renderer/core/dom/focus_params.h"
#include "third_party/blink/renderer/core/dom/node_computed_style.h"
#include "third_party/blink/renderer/core/dom/shadow_root.h"
#include "third_party/blink/renderer/core/dom/slot_assignment_engine.h"
#include "third_party/blink/renderer/core/editing/editing_utilities.h"
#include "third_party/blink/renderer/core/events/keyboard_event.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/local_frame_view.h"
#include "third_party/blink/renderer/core/frame/settings.h"
#include "third_party/blink/renderer/core/frame/visual_viewport.h"
#include "third_party/blink/renderer/core/fullscreen/fullscreen.h"
#include "third_party/blink/renderer/core/html/canvas/html_canvas_element.h"
#include "third_party/blink/renderer/core/html/custom/element_internals.h"
#include "third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.h"
#include "third_party/blink/renderer/core/html/forms/html_button_element.h"
#include "third_party/blink/renderer/core/html/forms/html_data_list_element.h"
#include "third_party/blink/renderer/core/html/forms/html_form_control_element.h"
#include "third_party/blink/renderer/core/html/forms/html_input_element.h"
#include "third_party/blink/renderer/core/html/forms/html_label_element.h"
#include "third_party/blink/renderer/core/html/forms/html_opt_group_element.h"
#include "third_party/blink/renderer/core/html/forms/html_option_element.h"
#include "third_party/blink/renderer/core/html/forms/html_select_element.h"
#include "third_party/blink/renderer/core/html/forms/html_text_area_element.h"
#include "third_party/blink/renderer/core/html/forms/text_control_element.h"
#include "third_party/blink/renderer/core/html/html_body_element.h"
#include "third_party/blink/renderer/core/html/html_dialog_element.h"
#include "third_party/blink/renderer/core/html/html_element.h"
#include "third_party/blink/renderer/core/html/html_embed_element.h"
#include "third_party/blink/renderer/core/html/html_frame_owner_element.h"
#include "third_party/blink/renderer/core/html/html_head_element.h"
#include "third_party/blink/renderer/core/html/html_hr_element.h"
#include "third_party/blink/renderer/core/html/html_html_element.h"
#include "third_party/blink/renderer/core/html/html_image_element.h"
#include "third_party/blink/renderer/core/html/html_map_element.h"
#include "third_party/blink/renderer/core/html/html_no_script_element.h"
#include "third_party/blink/renderer/core/html/html_progress_element.h"
#include "third_party/blink/renderer/core/html/html_script_element.h"
#include "third_party/blink/renderer/core/html/html_slot_element.h"
#include "third_party/blink/renderer/core/html/html_span_element.h"
#include "third_party/blink/renderer/core/html/html_style_element.h"
#include "third_party/blink/renderer/core/html/html_table_cell_element.h"
#include "third_party/blink/renderer/core/html/html_table_element.h"
#include "third_party/blink/renderer/core/html/html_table_row_element.h"
#include "third_party/blink/renderer/core/html/html_table_section_element.h"
#include "third_party/blink/renderer/core/html/html_title_element.h"
#include "third_party/blink/renderer/core/html/media/html_media_element.h"
#include "third_party/blink/renderer/core/html/parser/html_parser_idioms.h"
#include "third_party/blink/renderer/core/html/shadow/shadow_element_names.h"
#include "third_party/blink/renderer/core/input/context_menu_allowed_scope.h"
#include "third_party/blink/renderer/core/input/event_handler.h"
#include "third_party/blink/renderer/core/input_type_names.h"
#include "third_party/blink/renderer/core/layout/layout_box.h"
#include "third_party/blink/renderer/core/layout/layout_box_model_object.h"
#include "third_party/blink/renderer/core/layout/layout_image.h"
#include "third_party/blink/renderer/core/layout/layout_view.h"
#include "third_party/blink/renderer/core/page/chrome_client.h"
#include "third_party/blink/renderer/core/page/focus_controller.h"
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/core/page/scrolling/top_document_root_scroller_controller.h"
#include "third_party/blink/renderer/core/scroll/scroll_into_view_util.h"
#include "third_party/blink/renderer/core/svg/svg_desc_element.h"
#include "third_party/blink/renderer/core/svg/svg_element.h"
#include "third_party/blink/renderer/core/svg/svg_g_element.h"
#include "third_party/blink/renderer/core/svg/svg_style_element.h"
#include "third_party/blink/renderer/core/svg/svg_title_element.h"
#include "third_party/blink/renderer/modules/accessibility/aria_notification.h"
#include "third_party/blink/renderer/modules/accessibility/ax_enums.h"
#if DCHECK_IS_ON()
#include "third_party/blink/renderer/modules/accessibility/ax_debug_utils.h"
#endif
#include "third_party/blink/renderer/modules/accessibility/ax_image_map_link.h"
#include "third_party/blink/renderer/modules/accessibility/ax_inline_text_box.h"
#include "third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h"
#include "third_party/blink/renderer/modules/accessibility/ax_range.h"
#include "third_party/blink/renderer/modules/accessibility/ax_selection.h"
#include "third_party/blink/renderer/modules/accessibility/ax_sparse_attribute_setter.h"
#include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
#include "third_party/blink/renderer/platform/keyboard_codes.h"
#include "third_party/blink/renderer/platform/language.h"
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
#include "third_party/blink/renderer/platform/text/platform_locale.h"
#include "third_party/blink/renderer/platform/wtf/hash_set.h"
#include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
#include "third_party/blink/renderer/platform/wtf/wtf_size_t.h"
#include "ui/accessibility/accessibility_features.h"
#include "ui/accessibility/ax_action_data.h"
#include "ui/accessibility/ax_common.h"
#include "ui/accessibility/ax_enums.mojom-blink-forward.h"
#include "ui/accessibility/ax_node_data.h"
#include "ui/accessibility/ax_role_properties.h"
#include "ui/accessibility/ax_tree_id.h"
#include "ui/accessibility/ax_tree_source.h"
#include "ui/events/keycodes/dom/dom_code.h"
#include "ui/events/keycodes/dom/keycode_converter.h"
#include "ui/gfx/geometry/transform.h"
namespace blink {
FormControlType;
namespace {
#if defined(AX_FAIL_FAST_BUILD)
String IgnoredReasonName(AXIgnoredReason reason) { … }
String GetIgnoredReasonsDebugString(AXObject::IgnoredReasons& reasons) { … }
#endif
String GetNodeString(Node* node) { … }
#if DCHECK_IS_ON()
bool IsValidRole(ax::mojom::blink::Role role) { … }
#endif
constexpr wtf_size_t kNumRoles = …;
ARIARoleMap;
struct RoleEntry { … };
const RoleEntry kAriaRoles[] = …;
const RoleEntry kReverseRoles[] = …;
static ARIARoleMap* CreateARIARoleMap() { … }
static Vector<AtomicString>* CreateAriaRoleNameVector() { … }
void AddIntListAttributeFromObjects(ax::mojom::blink::IntListAttribute attr,
const AXObject::AXObjectVector& objects,
ui::AXNodeData* node_data) { … }
static constexpr uint32_t kMaxStringAttributeLength = …;
static constexpr uint32_t kMaxStaticTextLength = …;
std::string TruncateString(const String& str,
uint32_t max_len = kMaxStringAttributeLength) { … }
bool TruncateAndAddStringAttribute(
ui::AXNodeData* dst,
ax::mojom::blink::StringAttribute attribute,
const String& value,
uint32_t max_len = kMaxStringAttributeLength) { … }
void AddIntListAttributeFromOffsetVector(
ax::mojom::blink::IntListAttribute attr,
const Vector<int> offsets,
ui::AXNodeData* node_data) { … }
}
int32_t ToAXMarkerType(DocumentMarker::MarkerType marker_type) { … }
int32_t ToAXHighlightType(const AtomicString& highlight_type) { … }
const AXObject* FindAncestorWithAriaHidden(const AXObject* start) { … }
unsigned AXObject::number_of_live_ax_objects_ = …;
AXObject::AXObject(AXObjectCacheImpl& ax_object_cache)
: … { … }
AXObject::~AXObject() { … }
void AXObject::SetHasDirtyDescendants(bool dirty) { … }
void AXObject::SetAncestorsHaveDirtyDescendants() { … }
void AXObject::Init(AXObject* parent) { … }
void AXObject::Detach() { … }
bool AXObject::IsDetached() const { … }
bool AXObject::IsRoot() const { … }
void AXObject::SetParent(AXObject* new_parent) { … }
bool AXObject::IsMissingParent() const { … }
AXObject* AXObject::ComputeParent() const { … }
AXObject* AXObject::ComputeParentOrNull() const { … }
Node* AXObject::GetParentNodeForComputeParent(AXObjectCacheImpl& cache,
Node* node) { … }
bool AXObject::CanComputeAsNaturalParent(Node* node) { … }
bool AXObject::CanHaveChildren(Element& element) { … }
AXObject* AXObject::ComputeAccessibleNodeParent(
AXObjectCacheImpl& cache,
AccessibleNode& accessible_node) { … }
HTMLMapElement* AXObject::GetMapForImage(Node* image) { … }
AXObject* AXObject::ComputeNonARIAParent(AXObjectCacheImpl& cache,
Node* current_node) { … }
#if DCHECK_IS_ON()
std::string AXObject::GetAXTreeForThis() const { … }
void AXObject::ShowAXTreeForThis() const { … }
#endif
const AtomicString& AXObject::GetAOMPropertyOrARIAAttribute(
AOMStringProperty property) const { … }
Element* AXObject::GetAOMPropertyOrARIAAttribute(
AOMRelationProperty property) const { … }
bool AXObject::HasAOMProperty(AOMRelationListProperty property,
HeapVector<Member<Element>>& result) const { … }
bool AXObject::HasAOMPropertyOrARIAAttribute(
AOMRelationListProperty property,
HeapVector<Member<Element>>& result) const { … }
bool AXObject::HasAOMPropertyOrARIAAttribute(AOMBooleanProperty property,
bool& result) const { … }
bool AXObject::AOMPropertyOrARIAAttributeIsTrue(
AOMBooleanProperty property) const { … }
bool AXObject::AOMPropertyOrARIAAttributeIsFalse(
AOMBooleanProperty property) const { … }
bool AXObject::HasAOMPropertyOrARIAAttribute(AOMUIntProperty property,
uint32_t& result) const { … }
bool AXObject::HasAOMPropertyOrARIAAttribute(AOMIntProperty property,
int32_t& result) const { … }
bool AXObject::HasAOMPropertyOrARIAAttribute(AOMFloatProperty property,
float& result) const { … }
bool AXObject::HasAOMPropertyOrARIAAttribute(AOMStringProperty property,
AtomicString& result) const { … }
AccessibleNode* AXObject::GetAccessibleNode() const { … }
namespace {
void SerializeAriaNotificationAttributes(const AriaNotifications& notifications,
ui::AXNodeData* node_data) { … }
}
void AXObject::Serialize(ui::AXNodeData* node_data,
ui::AXMode accessibility_mode) const { … }
void AXObject::SerializeBoundingBoxAttributes(ui::AXNodeData& dst) const { … }
static bool AXShouldIncludePageScaleFactorInRoot() { … }
void AXObject::PopulateAXRelativeBounds(ui::AXRelativeBounds& bounds,
bool* clips_children) const { … }
void AXObject::SerializeActionAttributes(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeChildTreeID(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeChooserPopupAttributes(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeColorAttributes(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeElementAttributes(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeHTMLTagAndClass(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeHTMLId(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeHTMLAttributes(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeInlineTextBox(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeLangAttribute(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeLineAttributes(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeListAttributes(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeListMarkerAttributes(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeLiveRegionAttributes(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeNameAndDescriptionAttributes(
ui::AXMode accessibility_mode,
ui::AXNodeData* node_data) const { … }
void AXObject::SerializeScreenReaderAttributes(ui::AXNodeData* node_data) const { … }
String AXObject::KeyboardShortcut() const { … }
void AXObject::SerializeOtherScreenReaderAttributes(
ui::AXNodeData* node_data) const { … }
void AXObject::SerializeMathContent(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeScrollAttributes(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeSparseAttributes(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeStyleAttributes(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeTableAttributes(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeUnignoredAttributes(ui::AXNodeData* node_data,
ui::AXMode accessibility_mode) const { … }
void AXObject::SerializeComputedDetailsRelation(
ui::AXNodeData* node_data) const { … }
bool AXObject::IsPlainContent() const { … }
AXObject* AXObject::GetTargetPopoverForInvoker() const { … }
AXObject* AXObject::GetControlsListboxForTextfieldCombobox() const { … }
const AtomicString& AXObject::GetRoleStringForSerialization(
ui::AXNodeData* node_data) const { … }
void AXObject::SerializeMarkerAttributes(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeImageDataAttributes(ui::AXNodeData* node_data) const { … }
void AXObject::SerializeTextInsertionDeletionOffsetAttributes(
ui::AXNodeData* node_data) const { … }
bool AXObject::IsAXNodeObject() const { … }
bool AXObject::IsAXInlineTextBox() const { … }
bool AXObject::IsList() const { … }
bool AXObject::IsProgressIndicator() const { … }
bool AXObject::IsAXRadioInput() const { … }
bool AXObject::IsSlider() const { … }
bool AXObject::IsValidationMessage() const { … }
bool AXObject::IsVirtualObject() const { … }
ax::mojom::blink::Role AXObject::ComputeFinalRoleForSerialization() const { … }
ax::mojom::blink::Role AXObject::RoleValue() const { … }
bool AXObject::IsARIATextField() const { … }
bool AXObject::IsButton() const { … }
bool AXObject::IsCanvas() const { … }
bool AXObject::IsColorWell() const { … }
bool AXObject::IsControl() const { … }
bool AXObject::IsDefault() const { … }
bool AXObject::IsFieldset() const { … }
bool AXObject::IsHeading() const { … }
bool AXObject::IsImage() const { … }
bool AXObject::IsInputImage() const { … }
bool AXObject::IsLink() const { … }
bool AXObject::IsImageMapLink() const { … }
bool AXObject::IsMenu() const { … }
bool AXObject::IsCheckable() const { … }
ax::mojom::blink::CheckedState AXObject::CheckedState() const { … }
String AXObject::GetValueForControl() const { … }
String AXObject::GetValueForControl(AXObjectSet& visited) const { … }
String AXObject::SlowGetValueForControlIncludingContentEditable() const { … }
String AXObject::SlowGetValueForControlIncludingContentEditable(
AXObjectSet& visited) const { … }
bool AXObject::IsNativeCheckboxInMixedState(const Node* node) { … }
bool AXObject::IsMenuRelated() const { … }
bool AXObject::IsMeter() const { … }
bool AXObject::IsNativeImage() const { … }
bool AXObject::IsNativeSpinButton() const { … }
bool AXObject::IsAtomicTextField() const { … }
bool AXObject::IsNonAtomicTextField() const { … }
AXObject* AXObject::GetTextFieldAncestor() { … }
bool AXObject::IsPasswordField() const { … }
bool AXObject::IsPasswordFieldAndShouldHideValue() const { … }
bool AXObject::IsPresentational() const { … }
bool AXObject::IsTextObject() const { … }
bool AXObject::IsRangeValueSupported() const { … }
bool AXObject::IsScrollbar() const { … }
bool AXObject::IsNativeSlider() const { … }
bool AXObject::IsSpinButton() const { … }
bool AXObject::IsTabItem() const { … }
bool AXObject::IsTextField() const { … }
bool AXObject::IsAutofillAvailable() const { … }
bool AXObject::IsClickable() const { … }
AccessibilityExpanded AXObject::IsExpanded() const { … }
bool AXObject::IsFocused() const { … }
bool AXObject::IsHovered() const { … }
bool AXObject::IsLineBreakingObject() const { … }
bool AXObject::IsLinked() const { … }
bool AXObject::IsLoaded() const { … }
bool AXObject::IsMultiSelectable() const { … }
bool AXObject::IsOffScreen() const { … }
bool AXObject::IsRequired() const { … }
AccessibilitySelectedState AXObject::IsSelected() const { … }
bool AXObject::IsSelectedFromFocusSupported() const { … }
bool AXObject::IsSelectedFromFocus() const { … }
bool AXObject::IsNotUserSelectable() const { … }
bool AXObject::IsVisited() const { … }
bool AXObject::IsIgnored() const { … }
bool AXObject::IsIgnored() { … }
bool AXObject::IsIgnoredButIncludedInTree() const { … }
bool AXObject::IsIgnoredButIncludedInTree() { … }
bool AXObject::CachedIsIncludedInTree() const { … }
bool AXObject::IsIncludedInTree() const { … }
bool AXObject::IsIncludedInTree() { … }
void AXObject::CheckCanAccessCachedValues() const { … }
void AXObject::InvalidateCachedValues() { … }
void AXObject::UpdateCachedAttributeValuesIfNeeded(
bool notify_parent_of_ignored_changes) { … }
void AXObject::OnInheritedCachedValuesChanged() { … }
bool AXObject::ComputeIsIgnored(
IgnoredReasons* ignored_reasons) const { … }
bool AXObject::ShouldIgnoreForHiddenOrInert(
IgnoredReasons* ignored_reasons) const { … }
bool AXObject::IsInert() { … }
bool AXObject::ComputeIsInertViaStyle(const ComputedStyle* style,
IgnoredReasons* ignored_reasons) const { … }
bool AXObject::ComputeIsInert(IgnoredReasons* ignored_reasons) const { … }
bool AXObject::IsAriaHiddenRoot() const { … }
bool AXObject::IsAriaHidden() { … }
bool AXObject::ComputeIsAriaHidden(IgnoredReasons* ignored_reasons) const { … }
bool AXObject::IsModal() const { … }
bool AXObject::IsBlockedByAriaModalDialog(
IgnoredReasons* ignored_reasons) const { … }
bool AXObject::IsVisible() const { … }
const AXObject* AXObject::AriaHiddenRoot() const { … }
const AXObject* AXObject::InertRoot() const { … }
bool AXObject::DispatchEventToAOMEventListeners(Event& event) { … }
bool AXObject::IsDescendantOfDisabledNode() { … }
bool AXObject::ComputeIsDescendantOfDisabledNode() { … }
bool AXObject::IsExcludedByFormControlsFilter() const { … }
bool AXObject::ComputeIsIgnoredButIncludedInTree() { … }
const AXObject* AXObject::GetAtomicTextFieldAncestor(
int max_levels_to_check) const { … }
const AXObject* AXObject::DatetimeAncestor() const { … }
ax::mojom::blink::Role AXObject::DetermineRoleValue() { … }
bool AXObject::CanSetValueAttribute() const { … }
bool AXObject::CanSetFocusAttribute() { … }
bool AXObject::ComputeCanSetFocusAttribute() { … }
bool AXObject::IsKeyboardFocusable() const { … }
bool AXObject::CanSetSelectedAttribute() const { … }
bool AXObject::IsSubWidget() const { … }
bool AXObject::SupportsARIASetSizeAndPosInSet() const { … }
bool AXObject::IsProhibited(ax::mojom::blink::StringAttribute attribute) const { … }
bool AXObject::IsProhibited(
ax::mojom::blink::IntListAttribute attribute) const { … }
std::string AXObject::GetProhibitedNameError(
const String& prohibited_name,
ax::mojom::blink::NameFrom& prohibited_name_from) const { … }
String AXObject::SimplifyName(const String& str,
ax::mojom::blink::NameFrom& name_from) const { … }
String AXObject::ComputedName(ax::mojom::blink::NameFrom* name_from_out) const { … }
bool AXObject::IsNameProhibited() const { … }
String AXObject::GetName(ax::mojom::blink::NameFrom& name_from,
AXObject::AXObjectVector* name_objects) const { … }
String AXObject::GetName(NameSources* name_sources) const { … }
String AXObject::RecursiveTextAlternative(
const AXObject& ax_obj,
const AXObject* aria_label_or_description_root,
AXObjectSet& visited) { … }
String AXObject::RecursiveTextAlternative(
const AXObject& ax_obj,
const AXObject* aria_label_or_description_root,
AXObjectSet& visited,
ax::mojom::blink::NameFrom& name_from) { … }
const ComputedStyle* AXObject::GetComputedStyle() const { … }
bool AXObject::ComputeIsHiddenViaStyle(const ComputedStyle* style) { … }
bool AXObject::IsHiddenViaStyle() { … }
bool AXObject::IsHiddenForTextAlternativeCalculation(
const AXObject* aria_label_or_description_root) const { … }
bool AXObject::IsUsedForLabelOrDescription() { … }
bool AXObject::ComputeIsUsedForLabelOrDescription() { … }
String AXObject::AriaTextAlternative(
bool recursive,
const AXObject* aria_label_or_description_root,
AXObjectSet& visited,
ax::mojom::blink::NameFrom& name_from,
AXRelatedObjectVector* related_objects,
NameSources* name_sources,
bool* found_text_alternative) const { … }
#if EXPENSIVE_DCHECKS_ARE_ON()
void AXObject::CheckSubtreeIsForLabelOrDescription(const AXObject* obj) const { … }
#endif
String AXObject::TextFromElements(
bool in_aria_labelledby_traversal,
AXObjectSet& visited,
HeapVector<Member<Element>>& elements,
AXRelatedObjectVector* related_objects) const { … }
void AXObject::TokenVectorFromAttribute(Element* element,
Vector<String>& tokens,
const QualifiedName& attribute) { … }
bool AXObject::ElementsFromAttribute(Element* from,
HeapVector<Member<Element>>& elements,
const QualifiedName& attribute) { … }
bool AXObject::AriaLabelledbyElementVector(
Element* from,
HeapVector<Member<Element>>& elements) { … }
bool AXObject::IsNameFromAriaAttribute(Element* element) { … }
bool AXObject::IsNameFromAuthorAttribute() const { … }
AXObject* AXObject::InPageLinkTarget() const { … }
const AtomicString& AXObject::EffectiveTarget() const { … }
AccessibilityOrientation AXObject::Orientation() const { … }
AXObject* AXObject::GetChildFigcaption() const { … }
bool AXObject::IsDescendantOfLandmarkDisallowedElement() const { … }
void AXObject::LoadInlineTextBoxes() { … }
void AXObject::LoadInlineTextBoxesHelper() { … }
AXObject* AXObject::NextOnLine() const { … }
AXObject* AXObject::PreviousOnLine() const { … }
std::optional<const DocumentMarker::MarkerType>
AXObject::GetAriaSpellingOrGrammarMarker() const { … }
void AXObject::TextCharacterOffsets(Vector<int>&) const { … }
void AXObject::GetWordBoundaries(Vector<int>& word_starts,
Vector<int>& word_ends) const { … }
int AXObject::TextLength() const { … }
int AXObject::TextOffsetInFormattingContext(int offset) const { … }
int AXObject::TextOffsetInContainer(int offset) const { … }
ax::mojom::blink::DefaultActionVerb AXObject::Action() const { … }
bool AXObject::AriaPressedIsPresent() const { … }
bool AXObject::AriaCheckedIsPresent() const { … }
bool AXObject::SupportsARIAExpanded() const { … }
bool DoesUndoRolePresentation(const AtomicString& name) { … }
bool AXObject::HasAriaAttribute(bool does_undo_role_presentation) const { … }
int AXObject::IndexInParent() const { … }
bool AXObject::IsOnlyChild() const { … }
bool AXObject::IsInMenuListSubtree() { … }
bool AXObject::ComputeIsInMenuListSubtree() { … }
bool AXObject::IsMenuList() const { … }
const AXObject* AXObject::AncestorMenuListOption() const { … }
const AXObject* AXObject::AncestorMenuList() const { … }
bool AXObject::IsLiveRegionRoot() const { … }
bool AXObject::IsActiveLiveRegionRoot() const { … }
const AtomicString& AXObject::LiveRegionStatus() const { … }
const AtomicString& AXObject::LiveRegionRelevant() const { … }
bool AXObject::IsDisabled() const { … }
AXRestriction AXObject::Restriction() const { … }
ax::mojom::blink::Role AXObject::RawAriaRole() const { … }
ax::mojom::blink::Role AXObject::DetermineRawAriaRole() const { … }
ax::mojom::blink::Role AXObject::DetermineAriaRole() const { … }
ax::mojom::blink::HasPopup AXObject::HasPopup() const { … }
ax::mojom::blink::IsPopup AXObject::IsPopup() const { … }
bool AXObject::IsEditable() const { … }
bool AXObject::IsEditableRoot() const { … }
bool AXObject::HasContentEditableAttributeSet() const { … }
bool AXObject::IsMultiline() const { … }
bool AXObject::IsRichlyEditable() const { … }
AXObject* AXObject::LiveRegionRoot() { … }
bool AXObject::LiveRegionAtomic() const { … }
const AtomicString& AXObject::ContainerLiveRegionStatus() const { … }
const AtomicString& AXObject::ContainerLiveRegionRelevant() const { … }
bool AXObject::ContainerLiveRegionAtomic() const { … }
bool AXObject::ContainerLiveRegionBusy() const { … }
AXObject* AXObject::ElementAccessibilityHitTest(const gfx::Point& point) const { … }
AXObject::AncestorsIterator AXObject::UnignoredAncestorsBegin() const { … }
AXObject::AncestorsIterator AXObject::UnignoredAncestorsEnd() const { … }
int AXObject::ChildCountIncludingIgnored() const { … }
AXObject* AXObject::ChildAtIncludingIgnored(int index) const { … }
const AXObject::AXObjectVector& AXObject::ChildrenIncludingIgnored() const { … }
const AXObject::AXObjectVector& AXObject::ChildrenIncludingIgnored() { … }
const AXObject::AXObjectVector AXObject::UnignoredChildren() const { … }
const AXObject::AXObjectVector AXObject::UnignoredChildren() { … }
AXObject* AXObject::FirstChildIncludingIgnored() const { … }
AXObject* AXObject::LastChildIncludingIgnored() const { … }
AXObject* AXObject::DeepestFirstChildIncludingIgnored() const { … }
AXObject* AXObject::DeepestLastChildIncludingIgnored() const { … }
AXObject* AXObject::NextSiblingIncludingIgnored() const { … }
AXObject* AXObject::PreviousSiblingIncludingIgnored() const { … }
AXObject* AXObject::CachedPreviousSiblingIncludingIgnored() const { … }
AXObject* AXObject::NextInPreOrderIncludingIgnored(
const AXObject* within) const { … }
AXObject* AXObject::PreviousInPreOrderIncludingIgnored(
const AXObject* within) const { … }
AXObject* AXObject::PreviousInPostOrderIncludingIgnored(
const AXObject* within) const { … }
AXObject* AXObject::FirstObjectWithRole(ax::mojom::blink::Role role) const { … }
int AXObject::UnignoredChildCount() const { … }
AXObject* AXObject::UnignoredChildAt(int index) const { … }
AXObject* AXObject::UnignoredNextSibling() const { … }
AXObject* AXObject::UnignoredPreviousSibling() const { … }
AXObject* AXObject::UnignoredNextInPreOrder() const { … }
AXObject* AXObject::UnignoredPreviousInPreOrder() const { … }
AXObject* AXObject::ParentObject() const { … }
AXObject* AXObject::ParentObject() { … }
AXObject* AXObject::ParentObjectUnignored() const { … }
AXObject* AXObject::ParentObjectIncludedInTree() const { … }
Element* AXObject::GetClosestElement() const { … }
bool AXObject::IsContainerWidget() const { … }
AXObject* AXObject::ContainerWidget() const { … }
AXObject* AXObject::ContainerListMarkerIncludingIgnored() const { … }
bool AXObject::ShouldUseLayoutObjectTraversalForChildren() const { … }
void AXObject::UpdateChildrenIfNecessary() { … }
bool AXObject::NeedsToUpdateChildren() const { … }
#if DCHECK_IS_ON()
void AXObject::CheckIncludedObjectConnectedToRoot() const { … }
#endif
void AXObject::SetNeedsToUpdateChildren(bool update) { … }
bool AXObject::CanSafelyUseFlatTreeTraversalNow(Document& document) { … }
bool AXObject::ShouldDestroyWhenDetachingFromParent() const { … }
void AXObject::DetachFromParent() { … }
void AXObject::SetChildTree(const ui::AXTreeID& child_tree_id) { … }
void AXObject::ClearChildren() { … }
void AXObject::ChildrenChangedWithCleanLayout() { … }
Node* AXObject::GetNode() const { … }
LayoutObject* AXObject::GetLayoutObject() const { … }
Element* AXObject::GetElement() const { … }
AXObject* AXObject::RootScroller() const { … }
LocalFrameView* AXObject::DocumentFrameView() const { … }
AtomicString AXObject::Language() const { … }
bool AXObject::IsScrollableContainer() const { … }
bool AXObject::IsUserScrollable() const { … }
gfx::Point AXObject::GetScrollOffset() const { … }
gfx::Point AXObject::MinimumScrollOffset() const { … }
gfx::Point AXObject::MaximumScrollOffset() const { … }
void AXObject::SetScrollOffset(const gfx::Point& offset) const { … }
void AXObject::Scroll(ax::mojom::blink::Action scroll_action) const { … }
bool AXObject::IsTableLikeRole() const { … }
bool AXObject::IsTableRowLikeRole() const { … }
bool AXObject::IsTableCellLikeRole() const { … }
unsigned AXObject::ColumnCount() const { … }
unsigned AXObject::RowCount() const { … }
void AXObject::ColumnHeaders(AXObjectVector& headers) const { … }
void AXObject::RowHeaders(AXObjectVector& headers) const { … }
AXObject* AXObject::CellForColumnAndRow(unsigned target_column_index,
unsigned target_row_index) const { … }
int AXObject::AriaColumnCount() const { … }
int AXObject::AriaRowCount() const { … }
unsigned AXObject::ColumnIndex() const { … }
unsigned AXObject::RowIndex() const { … }
unsigned AXObject::ColumnSpan() const { … }
unsigned AXObject::RowSpan() const { … }
unsigned AXObject::AriaColumnIndex() const { … }
unsigned AXObject::AriaRowIndex() const { … }
AXObject::AXObjectVector AXObject::TableRowChildren() const { … }
AXObject::AXObjectVector AXObject::TableCellChildren() const { … }
void AXObject::GetRelativeBounds(AXObject** out_container,
gfx::RectF& out_bounds_in_container,
gfx::Transform& out_container_transform,
bool* clips_children) const { … }
gfx::RectF AXObject::LocalBoundingBoxRectForAccessibility() { … }
PhysicalRect AXObject::GetBoundsInFrameCoordinates() const { … }
void AXObject::UpdateStyleAndLayoutTreeForNode(Node& node) { … }
bool AXObject::PerformAction(const ui::AXActionData& action_data) { … }
bool AXObject::RequestDecrementAction() { … }
bool AXObject::RequestClickAction() { … }
bool AXObject::OnNativeClickAction() { … }
bool AXObject::RequestFocusAction() { … }
bool AXObject::RequestIncrementAction() { … }
bool AXObject::RequestScrollToGlobalPointAction(const gfx::Point& point) { … }
bool AXObject::RequestScrollToMakeVisibleAction() { … }
bool AXObject::RequestScrollToMakeVisibleWithSubFocusAction(
const gfx::Rect& subfocus,
blink::mojom::blink::ScrollAlignment horizontal_scroll_alignment,
blink::mojom::blink::ScrollAlignment vertical_scroll_alignment) { … }
bool AXObject::RequestSetSelectedAction(bool selected) { … }
bool AXObject::RequestSetSequentialFocusNavigationStartingPointAction() { … }
bool AXObject::RequestSetValueAction(const String& value) { … }
bool AXObject::RequestShowContextMenuAction() { … }
bool AXObject::RequestExpandAction() { … }
bool AXObject::RequestCollapseAction() { … }
bool AXObject::OnNativeKeyboardAction(const ax::mojom::Action action) { … }
bool AXObject::InternalSetAccessibilityFocusAction() { … }
bool AXObject::InternalClearAccessibilityFocusAction() { … }
LayoutObject* AXObject::GetLayoutObjectForNativeScrollAction() const { … }
void AXObject::DispatchKeyboardEvent(LocalDOMWindow* local_dom_window,
WebInputEvent::Type type,
ax::mojom::blink::Action action) const { … }
bool AXObject::OnNativeScrollToMakeVisibleAction() const { … }
bool AXObject::OnNativeScrollToMakeVisibleWithSubFocusAction(
const gfx::Rect& rect,
blink::mojom::blink::ScrollAlignment horizontal_scroll_alignment,
blink::mojom::blink::ScrollAlignment vertical_scroll_alignment) const { … }
bool AXObject::OnNativeScrollToGlobalPointAction(
const gfx::Point& global_point) const { … }
bool AXObject::OnNativeSetSequentialFocusNavigationStartingPointAction() { … }
bool AXObject::OnNativeDecrementAction() { … }
bool AXObject::OnNativeBlurAction() { … }
bool AXObject::OnNativeFocusAction() { … }
bool AXObject::OnNativeIncrementAction() { … }
bool AXObject::OnNativeSetValueAction(const String&) { … }
bool AXObject::OnNativeSetSelectedAction(bool) { … }
bool AXObject::OnNativeShowContextMenuAction() { … }
bool AXObject::IsFrame(const Node* node) { … }
bool AXObject::HasARIAOwns(Element* element) { … }
ax::mojom::blink::Role AXObject::FirstValidRoleInRoleString(
const String& value,
bool ignore_form_and_region) { … }
bool AXObject::SupportsNameFromContents(bool recursive) const { … }
bool AXObject::SupportsARIAReadOnly() const { … }
ax::mojom::blink::Role AXObject::ButtonRoleType() const { … }
const AtomicString& AXObject::AriaRoleName(ax::mojom::blink::Role role) { … }
const String AXObject::InternalRoleName(ax::mojom::blink::Role role) { … }
const String AXObject::RoleName(ax::mojom::blink::Role role,
bool* is_internal) { … }
const AXObject* AXObject::LowestCommonAncestor(const AXObject& first,
const AXObject& second,
int* index_in_ancestor1,
int* index_in_ancestor2) { … }
void AXObject::PreSerializationConsistencyCheck() const{ … }
String AXObject::ToString(bool verbose) const { … }
bool operator==(const AXObject& first, const AXObject& second) { … }
bool operator!=(const AXObject& first, const AXObject& second) { … }
bool operator<(const AXObject& first, const AXObject& second) { … }
bool operator<=(const AXObject& first, const AXObject& second) { … }
bool operator>(const AXObject& first, const AXObject& second) { … }
bool operator>=(const AXObject& first, const AXObject& second) { … }
std::ostream& operator<<(std::ostream& stream, const AXObject* obj) { … }
std::ostream& operator<<(std::ostream& stream, const AXObject& obj) { … }
void AXObject::Trace(Visitor* visitor) const { … }
}