blob: e706e1350d64de4e1ed038327b2c2f13eb40c81c [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 three 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,
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,
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,
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,
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,
div,
document,
embedded_object,
figcaption,
figure,
footer,
form,
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,
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,
checked,
collapsed,
default,
disabled,
editable,
expanded,
focusable,
haspopup,
horizontal,
hovered,
invisible,
linked,
multiline,
multiselectable,
offscreen,
pressed,
protected,
read_only,
required,
richly_editable,
selectable,
selected,
vertical,
visited
};
// 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,
action,
// Only used when invalid_state == invalid_state_other.
aria_invalid_value,
auto_complete,
container_live_relevant,
container_live_status,
description,
display,
// Only present when different from parent.
font_family,
html_tag,
// Only present when different from parent.
language,
name,
live_relevant,
live_status,
placeholder,
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,
// Attributes for retrieving the endpoints of a selection.
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,
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,
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,
// 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 {
// True if an ARIA toggle button, a checkbox or
// a menu item checkbox is in the "mixed" state.
STATE_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
};
[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,
// For static text. Character indices where line breaks occur.
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,
// 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
};
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
};
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 AXSortDirection {
unsorted,
ascending,
descending,
other
};
enum AXNameFrom {
uninitialized,
attribute,
contents,
placeholder,
related_element,
value
};
enum AXDescriptionFrom {
uninitialized,
attribute,
contents,
placeholder,
related_element
};
// 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
};
};