// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // These should be kept in sync with third_party/WebKit/public/web/WebAXEnums.h // until the Chromium and Blink trees are merged. [camel_case_enum_to_string=true] namespace ui { // For new entries to the following three enums, also add to // chrome/common/extensions/api/automation.idl. // // Explanation of the comments next to these events: // // Web: this event is only used in web content. Unless a specific platform // is specified, it fires a native event on multiple platforms. // // Native: this event is only used in native UI. // // Implicit: it would be cleaner if we just updated the AX node // and each platform fired the appropriate events to indicate which // platform-specific attributes changed. // // If unspecified, the event is used across web and native on multiple // platforms. enum AXEvent { activedescendantchanged, // Web alert, aria_attribute_changed, // Implicit autocorrection_occured, // Unknown: http://crbug.com/392498 blur, // Remove: http://crbug.com/392502 checked_state_changed, // Implicit children_changed, focus, hide, // Remove: http://crbug.com/392502 hover, invalid_status_changed, // Implicit layout_complete, // Web live_region_changed, // Web load_complete, // Web location_changed, // Web menu_end, // Native / Win menu_list_item_selected, // Web menu_list_value_changed, // Web menu_popup_end, // Native / Win menu_popup_start, // Native / Win menu_start, // Native / Win row_collapsed, // Web / Mac row_count_changed, // Web / Mac row_expanded, // Web / Mac scroll_position_changed, // Web scrolled_to_anchor, // Web selected_children_changed, // Web selection, // Native selection_add, // Native selection_remove, // Native show, // Remove: http://crbug.com/392502 text_changed, text_selection_changed, value_changed }; enum AXRole { alert_dialog, alert, annotation, application, article, banner, browser, busy_indicator, button, button_drop_down, canvas, cell, check_box, client, color_well, column_header, column, combo_box, complementary, content_info, definition, description_list_detail, description_list_term, desktop, dialog, directory, disclosure_triangle, div, document, drawer, editable_text, embedded_object, figcaption, figure, footer, form, grid, group, grow_area, heading, help_tag, horizontal_rule, iframe, ignored, image_map_link, image_map, image, incrementor, inline_text_box, label_text, legend, link, list_box_option, list_box, list_item, list_marker, list, location_bar, log, main, marquee, math_element, math, matte, menu_bar, menu_button, menu_item, menu_list_option, menu_list_popup, menu, navigation, note, outline, pane, paragraph, pop_up_button, presentational, progress_indicator, radio_button, radio_group, region, root_web_area, row_header, row, ruler_marker, ruler, svg_root, scroll_area, scroll_bar, seamless_web_area, search, sheet, slider, slider_thumb, spin_button_part, spin_button, split_group, splitter, static_text, status, system_wide, tab_group, tab_list, tab_panel, tab, table_header_container, table, text_area, text_field, timer, title_bar, toggle_button, toolbar, tree_grid, tree_item, tree, unknown, tooltip, value_indicator, web_area, window }; // TODO(dmazzoni): switch content/ to use AX_STATE_DISABLED instead of // !AX_STATE_ENABLED, and AX_STATE_EDITABLE instead of !AX_STATE_READONLY. enum AXState { busy, checked, collapsed, default, disabled, // ui/views only editable, // ui/views only enabled, // content only expanded, focusable, focused, haspopup, hovered, indeterminate, invisible, linked, multiselectable, offscreen, pressed, protected, read_only, required, selectable, selected, vertical, visited }; [cpp_enum_prefix_override="ax_attr"] enum AXStringAttribute { // Document attributes. doc_url, doc_title, doc_mimetype, doc_doctype, // Attributes that could apply to any node. access_key, action, container_live_relevant, container_live_status, description, display, help, html_tag, name, live_relevant, live_status, role, shortcut, url, value }; [cpp_enum_prefix_override="ax_attr"] enum AXIntAttribute { // Scrollable container attributes. scroll_x, scroll_x_min, scroll_x_max, scroll_y, scroll_y_min, scroll_y_max, // Editable text attributes. text_sel_start, text_sel_end, // Table attributes. table_row_count, table_column_count, table_header_id, // Table row attributes. table_row_index, table_row_header_id, // Table column attributes. table_column_index, table_column_header_id, // Table cell attributes. table_cell_column_index, table_cell_column_span, table_cell_row_index, table_cell_row_span, // Tree control attributes. hierarchical_level, // Relationships between this element and other elements. title_ui_element, activedescendant_id, // Color value for AX_ROLE_COLOR_WELL, each component is 0..255 color_value_red, color_value_green, color_value_blue, // Inline text attributes. text_direction }; [cpp_enum_prefix_override="ax_attr"] enum AXFloatAttribute { // Document attributes. doc_loading_progress, // Range attributes. value_for_range, min_value_for_range, max_value_for_range }; [cpp_enum_prefix_override="ax_attr"] enum AXBoolAttribute { // Document attributes. doc_loaded, // True if a checkbox or radio button is in the "mixed" state. button_mixed, // Live region attributes. container_live_atomic, container_live_busy, live_atomic, live_busy, // ARIA readonly flag. aria_readonly, // Writeable attributes can_set_value, // If this is set, all of the other fields in this struct should // be ignored and only the locations should change. update_location_only, // Set on a canvas element if it has fallback content. canvas_has_fallback, // Set if this node is the host of an external AXTree, for // example a web view that's a child of a native view, or a // web iframe that's the child of another web frame. is_ax_tree_host }; [cpp_enum_prefix_override="ax_attr"] enum AXIntListAttribute { // Ids of nodes that are children of this node logically, but are // not children of this node in the tree structure. As an example, // a table cell is a child of a row, and an 'indirect' child of a // column. indirect_child_ids, // Relationships between this element and other elements. controls_ids, describedby_ids, flowto_ids, labelledby_ids, owns_ids, // Character indices where line breaks occur. line_breaks, // For a table, the cell ids in row-major order, with duplicate entries // when there's a rowspan or colspan, and with -1 for missing cells. // There are always exactly rows * columns entries. cell_ids, // For a table, the unique cell ids in row-major order of their first // occurrence. unique_cell_ids, // For inline text. This is the pixel position of the end of this // character within the bounding rectangle of this object, in the // direction given by AX_ATTR_TEXT_DIRECTION. For example, for left-to-right // text, the first offset is the right coordinate of the first character // within the object's bounds, the second offset is the right coordinate // of the second character, and so on. character_offsets, // For inline text. These int lists must be the same size; they represent // the start and end character index of each word within this text. word_starts, word_ends }; [cpp_enum_prefix_override="ax"] enum AXTextDirection { text_direction_lr, text_direction_rl, text_direction_tb, text_direction_bt }; };