blob: f5b0c40c8e6678b9548da6091267de8c09f4f752 [file] [log] [blame]
// 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.
// TODO(nektar): Migrate entire file to Mojoq.
// 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 four enums, also add to
// chrome/common/extensions/api/automation.idl. This is enforced
// by a PRESUBMIT check.
//
// 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,
clicked,
document_selection_changed,
expanded_changed, // Web
focus,
hide, // Remove: http://crbug.com/392502
hover,
image_frame_updated, // Web
invalid_status_changed, // Implicit
layout_complete, // Web
live_region_created, // Implicit
live_region_changed, // Web
load_complete, // Web
location_changed, // Web
media_started_playing, // Automation
media_stopped_playing, // Automation
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
mouse_canceled,
mouse_dragged,
mouse_moved,
mouse_pressed,
mouse_released,
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,
tree_changed, // Accessibility tree changed. Don't
// explicitly fire an accessibility event,
// only implicitly due to the change.
value_changed
};
enum AXRole {
abbr,
alert_dialog,
alert,
anchor,
annotation,
application,
article,
audio,
banner,
blockquote,
// TODO(nektar): Remove busy_indicator because it's used nowhere.
busy_indicator,
button,
button_drop_down, // Not used on Web.
canvas,
caption,
caret,
cell,
check_box,
client,
color_well,
column_header,
column,
combo_box,
complementary,
content_info,
date,
date_time,
definition,
description_list_detail,
description_list,
description_list_term,
desktop,
details,
dialog,
directory,
disclosure_triangle,
document,
embedded_object,
feed,
figcaption,
figure,
footer,
form,
generic_container,
grid,
group,
heading,
iframe,
iframe_presentational,
ignored,
image_map_link,
image_map,
image,
inline_text_box,
input_time,
label_text,
legend,
line_break,
link,
list_box_option,
list_box,
list_item,
list_marker,
list,
location_bar,
log,
main,
mark,
marquee,
math,
menu,
menu_bar,
menu_button,
menu_item,
menu_item_check_box,
menu_item_radio,
menu_list_option,
menu_list_popup,
meter,
navigation,
note,
outline,
pane,
paragraph,
pop_up_button,
pre,
presentational,
progress_indicator,
radio_button,
radio_group,
region,
root_web_area,
row_header,
row,
ruby,
ruler,
svg_root,
scroll_area,
scroll_bar,
seamless_web_area,
search,
search_box,
slider,
slider_thumb,
spin_button_part,
spin_button,
splitter,
static_text,
status,
switch,
tab_group,
tab_list,
tab_panel,
tab,
table_header_container,
table,
term,
text_field,
time,
timer,
title_bar,
toggle_button,
toolbar,
tree_grid,
tree_item,
tree,
unknown,
tooltip,
video,
web_area,
web_view,
window
};
enum AXState {
busy,
collapsed,
default,
disabled,
editable,
expanded,
focusable,
haspopup,
// Grows horizontally, e.g. most toolbars and separators.
horizontal,
hovered,
invisible,
linked,
multiline,
multiselectable,
offscreen,
protected,
read_only,
required,
richly_editable,
selectable,
selected,
// Grows vertically, e.g. menu or combo box.
vertical,
visited
};
// An action to be taken on an accessibility node.
// In contrast to |AXDefaultActionVerb|, these describe what happens to the
// object, e.g. "FOCUS".
enum AXAction {
blur,
// Decrement a slider or range control by one step value.
decrement,
// Do the default action for an object, typically this means "click".
do_default,
focus,
// Return the content of this image object in the image_data attribute.
get_image_data,
// Given a point, find the object it corresponds to and fire a
// |AXActionData.hit_test_event_to_fire| event on it in response.
hit_test,
// Increment a slider or range control by one step value.
increment,
// Delete any selected text in the control's text value and
// insert |AXActionData::value| in its place, like when typing or pasting.
replace_selected_text,
// Scroll any scrollable containers to make the target object visible
// on the screen. Optionally pass a subfocus rect in
// AXActionData.target_rect.
scroll_to_make_visible,
// Scroll the given object to a specified point on the screen in
// global screen coordinates. Pass a point in AXActionData.target_point.
scroll_to_point,
set_accessibility_focus,
set_scroll_offset,
set_selection,
// Don't focus this node, but set it as the sequential focus navigation
// starting point, so that pressing Tab moves to the next element
// following this one, for example.
set_sequential_focus_navigation_starting_point,
// Replace the value of the control with AXActionData::value and
// reset the selection, if applicable.
set_value,
show_context_menu
};
enum AXActionFlags {
request_images,
request_inline_text_boxes
};
// A list of valid values for the |AXIntAttribute| |default_action_verb|.
// These will describe the action that will be performed on a given node when
// executing the default action, which is a click.
// In contrast to |AXAction|, these describe what the user can do on the
// object, e.g. "PRESS", not what happens to the object as a result.
// Only one verb can be used at a time to describe the default action.
enum AXDefaultActionVerb {
activate,
check,
click,
jump,
open,
press,
select,
uncheck
};
// A change to the accessibility tree.
enum AXMutation {
node_created,
subtree_created,
node_changed,
node_removed
};
[cpp_enum_prefix_override="ax_attr"] enum AXStringAttribute {
access_key,
// Only used when invalid_state == invalid_state_other.
aria_invalid_value,
auto_complete,
chrome_channel, // Automation only.
container_live_relevant,
container_live_status,
description,
display,
// Only present when different from parent.
font_family,
html_tag,
image_data_url,
inner_html,
key_shortcuts,
// Only present when different from parent.
language,
name,
live_relevant,
live_status,
placeholder,
role,
role_description,
url,
value
};
[cpp_enum_prefix_override="ax_attr"] enum AXIntAttribute {
default_action_verb,
// Scrollable container attributes.
scroll_x,
scroll_x_min,
scroll_x_max,
scroll_y,
scroll_y_min,
scroll_y_max,
// Attributes for retrieving the endpoints of a selection.
text_sel_start,
text_sel_end,
// aria_col* and aria_row* attributes
aria_column_count,
aria_cell_column_index,
aria_row_count,
aria_cell_row_index,
// 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,
sort_direction,
// Tree control attributes.
hierarchical_level,
// What information was used to compute the object's name
// (of type AXNameFrom).
name_from,
// What information was used to compute the object's description
// (of type AXDescriptionFrom).
description_from,
// Relationships between this element and other elements.
activedescendant_id,
errormessage_id,
in_page_link_target_id,
member_of_id,
next_on_line_id,
previous_on_line_id,
// Identifies a child tree which this node hosts.
child_tree_id,
// Position or Number of items in current set of listitems or treeitems
set_size,
pos_in_set,
// In the case of AX_ROLE_COLOR_WELL, specifies the selected color.
color_value,
// Indicates the element that represents the current item within a container
// or set of related elements.
aria_current_state,
// Text attributes.
// Foreground and background color in RGBA.
background_color,
color,
// Indicates if a form control has invalid input or
// if an element has an aria-invalid attribute.
invalid_state,
// Of type AXCheckedState
checked_state,
// Specifies the direction of the text, e.g., right-to-left.
text_direction,
// Bold, italic, underline, etc.
text_style
};
[cpp_enum_prefix_override="ax_attr"] enum AXFloatAttribute {
// Range attributes.
value_for_range,
min_value_for_range,
max_value_for_range,
// Text attributes.
// Font size is in pixels.
font_size
};
[cpp_enum_prefix_override="ax_attr"] enum AXBoolAttribute {
// Live region attributes.
container_live_atomic,
container_live_busy,
live_atomic,
live_busy,
// If a dialog box is marked as explicitly modal
modal,
// ARIA readonly flag.
aria_readonly,
// 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
};
[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,
details_ids,
flowto_ids,
labelledby_ids,
radio_group_ids,
// For static text. Character indices where line breaks occur. Note that
// this attribute is only available on Chrome OS and will be deprecated
// soon.
line_breaks,
// For static text. These int lists must be the same size; they represent
// the start and end character offset of each marker. Examples of markers
// include spelling and grammar errors, and find-in-page matches.
marker_types,
marker_starts,
marker_ends,
// 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,
// Used for caching. Do not read directly. Use
// |AXNode::GetOrComputeLineStartOffsets|
// For all text fields and content editable roots: A list of the start
// offsets of each line inside this object.
cached_line_starts,
// For inline text. These int lists must be the same size; they represent
// the start and end character offset of each word within this text.
word_starts,
word_ends
};
// TODO(dmazzoni, nektar): make this list not grow exponentially as new
// MarkerTypes are added
enum AXMarkerType {
// Assignments are ignored by the parser, but are kept here for clarity.
spelling = 1,
grammar = 2,
spelling_grammar = 3,
text_match = 4,
spelling_text_match = 5,
grammar_text_match = 6,
spelling_grammar_text_match = 7,
// DocumentMarker::MarkerType::Composition = 8 is ignored for accessibility
// purposes
active_suggestion = 16,
spelling_active_suggestion = 17,
grammar_active_suggestion = 18,
spelling_grammar_active_suggestion = 19,
text_match_active_suggestion = 20,
spelling_text_match_active_suggestion = 21,
grammar_text_match_active_suggestion = 22,
spelling_grammar_text_match_active_suggestion = 23
};
enum AXTextDirection {
ltr,
rtl,
ttb,
btt
};
// A Java counterpart will be generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.ui.accessibility
[cpp_enum_prefix_override="ax"] enum AXTextStyle {
// Assignments are ignored by the parser, but are kept here for clarity.
text_style_bold = 1,
text_style_italic = 2,
text_style_bold_italic = 3,
text_style_underline = 4,
text_style_bold_underline = 5,
text_style_italic_underline = 6,
text_style_bold_italic_underline = 7,
text_style_line_through = 8,
text_style_bold_line_through = 9,
text_style_italic_line_through = 10,
text_style_bold_italic_line_through = 11,
text_style_underline_line_through = 12,
text_style_bold_underline_line_through = 13,
text_style_italic_underline_line_through = 14,
text_style_bold_italic_underline_line_through = 15
};
enum AXAriaCurrentState {
false,
true,
page,
step,
location,
date,
time
};
enum AXInvalidState {
false,
true,
spelling,
grammar,
other
};
enum AXCheckedState {
false,
true,
mixed
};
enum AXSortDirection {
unsorted,
ascending,
descending,
other
};
enum AXNameFrom {
uninitialized,
attribute,
attribute_explicitly_empty,
contents,
placeholder,
related_element,
value
};
enum AXDescriptionFrom {
uninitialized,
attribute,
contents,
placeholder,
related_element
};
enum AXEventFrom {
user,
page,
action
};
// Touch gestures on Chrome OS.
enum AXGesture {
click,
swipe_left_1,
swipe_up_1,
swipe_right_1,
swipe_down_1,
swipe_left_2,
swipe_up_2,
swipe_right_2,
swipe_down_2,
swipe_left_3,
swipe_up_3,
swipe_right_3,
swipe_down_3,
swipe_left_4,
swipe_up_4,
swipe_right_4,
swipe_down_4
};
enum AXTextAffinity {
downstream,
upstream
};
// Compares two nodes in an accessibility tree in pre-order traversal.
enum AXTreeOrder {
// Not in the same tree, or other error.
undefined,
// First node is before the second one.
before,
// Nodes are the same.
equal,
// First node is after the second one.
after
};
};