summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/wai-aria/manual
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/wai-aria/manual
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/wai-aria/manual')
-rw-r--r--testing/web-platform/tests/wai-aria/manual/README.md65
-rw-r--r--testing/web-platform/tests/wai-aria/manual/alertdialog_modal_false-manual.html127
-rw-r--r--testing/web-platform/tests/wai-aria/manual/alertdialog_modal_true-manual.html107
-rw-r--r--testing/web-platform/tests/wai-aria/manual/application_activedescendant-manual.html202
-rw-r--r--testing/web-platform/tests/wai-aria/manual/application_activedescendant_value_changes-manual.html253
-rw-r--r--testing/web-platform/tests/wai-aria/manual/aria-current_not_declared-manual.html116
-rw-r--r--testing/web-platform/tests/wai-aria/manual/aria-current_with_value_changes-manual.html110
-rw-r--r--testing/web-platform/tests/wai-aria/manual/aria-current_with_value_date-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/aria-current_with_value_location-manual.html114
-rw-r--r--testing/web-platform/tests/wai-aria/manual/aria-current_with_value_page-manual.html120
-rw-r--r--testing/web-platform/tests/wai-aria/manual/aria-current_with_value_step-manual.html120
-rw-r--r--testing/web-platform/tests/wai-aria/manual/aria-current_with_value_time-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/aria-current_with_value_true-manual.html116
-rw-r--r--testing/web-platform/tests/wai-aria/manual/aria-current_with_value_unspecified-manual.html110
-rw-r--r--testing/web-platform/tests/wai-aria/manual/aria-details_pointing_to_details_element-manual.html90
-rw-r--r--testing/web-platform/tests/wai-aria/manual/aria-details_pointing_to_div_element-manual.html89
-rw-r--r--testing/web-platform/tests/wai-aria/manual/article_in_feed_posinset_and_setsize-manual.html170
-rw-r--r--testing/web-platform/tests/wai-aria/manual/article_in_feed_setsize_-1-manual.html140
-rw-r--r--testing/web-platform/tests/wai-aria/manual/article_not_in_feed_posinset_and_setsize-manual.html174
-rw-r--r--testing/web-platform/tests/wai-aria/manual/button_haspopup_dialog-manual.html132
-rw-r--r--testing/web-platform/tests/wai-aria/manual/button_haspopup_emptystring-manual.html129
-rw-r--r--testing/web-platform/tests/wai-aria/manual/button_haspopup_false-manual.html123
-rw-r--r--testing/web-platform/tests/wai-aria/manual/button_haspopup_foo-manual.html129
-rw-r--r--testing/web-platform/tests/wai-aria/manual/button_haspopup_grid-manual.html136
-rw-r--r--testing/web-platform/tests/wai-aria/manual/button_haspopup_listbox-manual.html134
-rw-r--r--testing/web-platform/tests/wai-aria/manual/button_haspopup_menu-manual.html134
-rw-r--r--testing/web-platform/tests/wai-aria/manual/button_haspopup_tree-manual.html140
-rw-r--r--testing/web-platform/tests/wai-aria/manual/button_haspopup_true-manual.html129
-rw-r--r--testing/web-platform/tests/wai-aria/manual/button_haspopup_unspecified-manual.html129
-rw-r--r--testing/web-platform/tests/wai-aria/manual/button_roledescription_empty-manual.html104
-rw-r--r--testing/web-platform/tests/wai-aria/manual/button_roledescription_valid-manual.html102
-rw-r--r--testing/web-platform/tests/wai-aria/manual/button_roledescription_whitespace_only-manual.html104
-rw-r--r--testing/web-platform/tests/wai-aria/manual/cell-manual.html216
-rw-r--r--testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_div-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_td_html_colspan_3-manual.html112
-rw-r--r--testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_td_html_colspan_3_with_headers_and_border-manual.html115
-rw-r--r--testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_td_html_colspan_3_with_three_actual_columns-manual.html109
-rw-r--r--testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_td_with_html_colspan_not_specified-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/cell_aria-rowspan_2_on_div-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/cell_aria-rowspan_2_on_td_html_rowspan_3-manual.html112
-rw-r--r--testing/web-platform/tests/wai-aria/manual/cell_aria-rowspan_2_on_td_html_rowspan_3_with_three_actual_rows-manual.html113
-rw-r--r--testing/web-platform/tests/wai-aria/manual/cell_aria-rowspan_2_on_td_with_html_rowspan_not_specified-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/cell_colindex_4-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/cell_rowindex_4-manual.html112
-rw-r--r--testing/web-platform/tests/wai-aria/manual/checkbox_readonly_false-manual.html120
-rw-r--r--testing/web-platform/tests/wai-aria/manual/checkbox_readonly_true-manual.html126
-rw-r--r--testing/web-platform/tests/wai-aria/manual/checkbox_readonly_unspecified-manual.html120
-rw-r--r--testing/web-platform/tests/wai-aria/manual/columnheader_aria-colspan_2_on_div-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/columnheader_aria-colspan_2_on_th_html_colspan_3-manual.html112
-rw-r--r--testing/web-platform/tests/wai-aria/manual/columnheader_aria-colspan_2_on_th_html_colspan_3_with_three_actual_columns-manual.html109
-rw-r--r--testing/web-platform/tests/wai-aria/manual/columnheader_aria-colspan_2_on_th_with_html_colspan_not_specified-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/columnheader_aria-rowspan_2_on_div-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/columnheader_aria-rowspan_2_on_th_html_rowspan_3-manual.html112
-rw-r--r--testing/web-platform/tests/wai-aria/manual/columnheader_aria-rowspan_2_on_th_html_rowspan_3_with_three_actual_rows-manual.html113
-rw-r--r--testing/web-platform/tests/wai-aria/manual/columnheader_aria-rowspan_2_on_th_with_html_rowspan_not_specified-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/columnheader_colindex_4-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/columnheader_rowindex_4-manual.html112
-rw-r--r--testing/web-platform/tests/wai-aria/manual/columnheader_selected_false_not_automatically_propagated-manual.html133
-rw-r--r--testing/web-platform/tests/wai-aria/manual/columnheader_selected_true_not_automatically_propagated-manual.html133
-rw-r--r--testing/web-platform/tests/wai-aria/manual/combobox_controls_an_invalid_id-manual.html98
-rw-r--r--testing/web-platform/tests/wai-aria/manual/combobox_haspopup_dialog-manual.html162
-rw-r--r--testing/web-platform/tests/wai-aria/manual/combobox_haspopup_false-manual.html156
-rw-r--r--testing/web-platform/tests/wai-aria/manual/combobox_haspopup_grid-manual.html164
-rw-r--r--testing/web-platform/tests/wai-aria/manual/combobox_haspopup_listbox-manual.html154
-rw-r--r--testing/web-platform/tests/wai-aria/manual/combobox_haspopup_menu-manual.html154
-rw-r--r--testing/web-platform/tests/wai-aria/manual/combobox_haspopup_tree-manual.html171
-rw-r--r--testing/web-platform/tests/wai-aria/manual/combobox_haspopup_true-manual.html162
-rw-r--r--testing/web-platform/tests/wai-aria/manual/combobox_haspopup_unspecified-manual.html159
-rw-r--r--testing/web-platform/tests/wai-aria/manual/combobox_orientation_horizontal-manual.html123
-rw-r--r--testing/web-platform/tests/wai-aria/manual/combobox_orientation_unspecified-manual.html129
-rw-r--r--testing/web-platform/tests/wai-aria/manual/combobox_orientation_vertical-manual.html123
-rw-r--r--testing/web-platform/tests/wai-aria/manual/combobox_readonly_false-manual.html149
-rw-r--r--testing/web-platform/tests/wai-aria/manual/combobox_readonly_true-manual.html155
-rw-r--r--testing/web-platform/tests/wai-aria/manual/combobox_readonly_unspecified-manual.html149
-rw-r--r--testing/web-platform/tests/wai-aria/manual/dialog_modal_false-manual.html127
-rw-r--r--testing/web-platform/tests/wai-aria/manual/dialog_modal_true-manual.html108
-rw-r--r--testing/web-platform/tests/wai-aria/manual/dialog_modal_unspecified-manual.html127
-rw-r--r--testing/web-platform/tests/wai-aria/manual/div_element_without_role_roledescription_valid-manual.html128
-rw-r--r--testing/web-platform/tests/wai-aria/manual/errormessage_object_in_invalid_state-manual.html100
-rw-r--r--testing/web-platform/tests/wai-aria/manual/errormessage_object_in_valid_state-manual.html100
-rw-r--r--testing/web-platform/tests/wai-aria/manual/feed-manual.html105
-rw-r--r--testing/web-platform/tests/wai-aria/manual/figure-manual.html106
-rw-r--r--testing/web-platform/tests/wai-aria/manual/grid_aria-readonly_false_automatically_propagated-manual.html249
-rw-r--r--testing/web-platform/tests/wai-aria/manual/grid_aria-readonly_true_automatically_propagated-manual.html249
-rw-r--r--testing/web-platform/tests/wai-aria/manual/grid_busy_false-manual.html163
-rw-r--r--testing/web-platform/tests/wai-aria/manual/grid_busy_true-manual.html157
-rw-r--r--testing/web-platform/tests/wai-aria/manual/grid_busy_value_changes-manual.html200
-rw-r--r--testing/web-platform/tests/wai-aria/manual/grid_colcount_8-manual.html130
-rw-r--r--testing/web-platform/tests/wai-aria/manual/grid_columnheader_readonly_false-manual.html112
-rw-r--r--testing/web-platform/tests/wai-aria/manual/grid_columnheader_readonly_true-manual.html106
-rw-r--r--testing/web-platform/tests/wai-aria/manual/grid_columnheader_readonly_unspecified-manual.html98
-rw-r--r--testing/web-platform/tests/wai-aria/manual/grid_columnheader_required_false-manual.html106
-rw-r--r--testing/web-platform/tests/wai-aria/manual/grid_columnheader_required_true-manual.html106
-rw-r--r--testing/web-platform/tests/wai-aria/manual/grid_columnheader_required_unspecified-manual.html106
-rw-r--r--testing/web-platform/tests/wai-aria/manual/grid_rowcount_3-manual.html132
-rw-r--r--testing/web-platform/tests/wai-aria/manual/grid_rowheader_readonly_false-manual.html98
-rw-r--r--testing/web-platform/tests/wai-aria/manual/grid_rowheader_readonly_true-manual.html98
-rw-r--r--testing/web-platform/tests/wai-aria/manual/grid_rowheader_readonly_unspecified-manual.html98
-rw-r--r--testing/web-platform/tests/wai-aria/manual/grid_rowheader_required_false-manual.html106
-rw-r--r--testing/web-platform/tests/wai-aria/manual/grid_rowheader_required_true-manual.html106
-rw-r--r--testing/web-platform/tests/wai-aria/manual/grid_rowheader_required_unspecified-manual.html106
-rw-r--r--testing/web-platform/tests/wai-aria/manual/gridcell_aria-colspan_2_on_div-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/gridcell_aria-rowspan_2_on_div-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/gridcell_colindex_4-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/gridcell_rowindex_4-manual.html112
-rw-r--r--testing/web-platform/tests/wai-aria/manual/group_hidden_undefined_element_not_rendered-manual.html80
-rw-r--r--testing/web-platform/tests/wai-aria/manual/group_hidden_undefined_element_rendered-manual.html116
-rw-r--r--testing/web-platform/tests/wai-aria/manual/heading_level_unspecified-manual.html120
-rw-r--r--testing/web-platform/tests/wai-aria/manual/keyshortcuts_multiple_shortcuts-manual.html82
-rw-r--r--testing/web-platform/tests/wai-aria/manual/keyshortcuts_one_shortcut-manual.html82
-rw-r--r--testing/web-platform/tests/wai-aria/manual/listbox_busy_false-manual.html121
-rw-r--r--testing/web-platform/tests/wai-aria/manual/listbox_busy_true-manual.html109
-rw-r--r--testing/web-platform/tests/wai-aria/manual/listbox_orientation_horizontal-manual.html128
-rw-r--r--testing/web-platform/tests/wai-aria/manual/listbox_orientation_unspecified-manual.html128
-rw-r--r--testing/web-platform/tests/wai-aria/manual/listbox_orientation_vertical-manual.html128
-rw-r--r--testing/web-platform/tests/wai-aria/manual/listbox_readonly_false-manual.html124
-rw-r--r--testing/web-platform/tests/wai-aria/manual/listbox_readonly_true-manual.html130
-rw-r--r--testing/web-platform/tests/wai-aria/manual/listbox_readonly_unspecified-manual.html124
-rw-r--r--testing/web-platform/tests/wai-aria/manual/listitem_setsize_-1-manual.html134
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menu_orientation_horizontal-manual.html123
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menu_orientation_unspecified-manual.html122
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menu_orientation_vertical-manual.html123
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menubar_busy_false-manual.html130
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menubar_busy_true-manual.html130
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menubar_orientation_horizontal-manual.html123
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menubar_orientation_unspecified-manual.html123
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menubar_orientation_vertical-manual.html111
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menuitem_expanded_false-manual.html78
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menuitem_expanded_true-manual.html82
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menuitem_posinset_and_setsize-manual.html148
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_expanded_false-manual.html78
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_expanded_true-manual.html82
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_posinset_and_setsize-manual.html185
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_readonly_false-manual.html128
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_readonly_true-manual.html128
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_readonly_unspecified-manual.html122
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menuitemradio_expanded_false-manual.html78
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menuitemradio_expanded_true-manual.html82
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menuitemradio_posinset_and_setsize-manual.html196
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menuitemradio_readonly_false-manual.html128
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menuitemradio_readonly_true-manual.html140
-rw-r--r--testing/web-platform/tests/wai-aria/manual/menuitemradio_readonly_unspecified-manual.html128
-rw-r--r--testing/web-platform/tests/wai-aria/manual/none-manual.html78
-rw-r--r--testing/web-platform/tests/wai-aria/manual/option_selected_false-manual.html131
-rw-r--r--testing/web-platform/tests/wai-aria/manual/option_selected_true-manual.html131
-rw-r--r--testing/web-platform/tests/wai-aria/manual/option_selected_undefined-manual.html131
-rw-r--r--testing/web-platform/tests/wai-aria/manual/option_selected_value_changes-manual.html146
-rw-r--r--testing/web-platform/tests/wai-aria/manual/radiogroup_orientation_horizontal-manual.html123
-rw-r--r--testing/web-platform/tests/wai-aria/manual/radiogroup_orientation_unspecified-manual.html135
-rw-r--r--testing/web-platform/tests/wai-aria/manual/radiogroup_orientation_vertical-manual.html111
-rw-r--r--testing/web-platform/tests/wai-aria/manual/radiogroup_readonly_false-manual.html115
-rw-r--r--testing/web-platform/tests/wai-aria/manual/radiogroup_readonly_true-manual.html115
-rw-r--r--testing/web-platform/tests/wai-aria/manual/radiogroup_readonly_unspecified-manual.html115
-rw-r--r--testing/web-platform/tests/wai-aria/manual/region_with_name-manual.html114
-rw-r--r--testing/web-platform/tests/wai-aria/manual/region_without_name-manual.html128
-rw-r--r--testing/web-platform/tests/wai-aria/manual/row_colindex_4-manual.html149
-rw-r--r--testing/web-platform/tests/wai-aria/manual/row_rowindex_4-manual.html149
-rw-r--r--testing/web-platform/tests/wai-aria/manual/rowheader_aria-colspan_2_on_div-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/rowheader_aria-rowspan_2_on_div-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/rowheader_colindex_4-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/rowheader_rowindex_4-manual.html112
-rw-r--r--testing/web-platform/tests/wai-aria/manual/rowheader_selected_false_not_automatically_propagated-manual.html133
-rw-r--r--testing/web-platform/tests/wai-aria/manual/rowheader_selected_true_not_automatically_propagated-manual.html133
-rw-r--r--testing/web-platform/tests/wai-aria/manual/scrollbar_all_values_unspecified-manual.html182
-rw-r--r--testing/web-platform/tests/wai-aria/manual/scrollbar_only_valuenow_unspecified-manual.html182
-rw-r--r--testing/web-platform/tests/wai-aria/manual/scrollbar_orientation_unspecified-manual.html132
-rw-r--r--testing/web-platform/tests/wai-aria/manual/searchbox-manual.html120
-rw-r--r--testing/web-platform/tests/wai-aria/manual/searchbox_activedescendant-manual.html222
-rw-r--r--testing/web-platform/tests/wai-aria/manual/searchbox_activedescendant_value_changes-manual.html271
-rw-r--r--testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_both-manual.html133
-rw-r--r--testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_inline-manual.html133
-rw-r--r--testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_list-manual.html133
-rw-r--r--testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_none-manual.html133
-rw-r--r--testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_unspecified-manual.html127
-rw-r--r--testing/web-platform/tests/wai-aria/manual/searchbox_multiline_false-manual.html126
-rw-r--r--testing/web-platform/tests/wai-aria/manual/searchbox_multiline_true-manual.html138
-rw-r--r--testing/web-platform/tests/wai-aria/manual/searchbox_multiline_unspecified-manual.html108
-rw-r--r--testing/web-platform/tests/wai-aria/manual/searchbox_placeholder-manual.html140
-rw-r--r--testing/web-platform/tests/wai-aria/manual/searchbox_readonly_false-manual.html139
-rw-r--r--testing/web-platform/tests/wai-aria/manual/searchbox_readonly_true-manual.html139
-rw-r--r--testing/web-platform/tests/wai-aria/manual/searchbox_readonly_unspecified-manual.html139
-rw-r--r--testing/web-platform/tests/wai-aria/manual/searchbox_required_false-manual.html127
-rw-r--r--testing/web-platform/tests/wai-aria/manual/searchbox_required_true-manual.html127
-rw-r--r--testing/web-platform/tests/wai-aria/manual/searchbox_required_unspecified-manual.html127
-rw-r--r--testing/web-platform/tests/wai-aria/manual/separator_focusable_all_values_unspecified-manual.html182
-rw-r--r--testing/web-platform/tests/wai-aria/manual/separator_focusable_only_valuenow_unspecified-manual.html182
-rw-r--r--testing/web-platform/tests/wai-aria/manual/separator_focusable_valuetext-manual.html206
-rw-r--r--testing/web-platform/tests/wai-aria/manual/separator_orientation_unspecified-manual.html120
-rw-r--r--testing/web-platform/tests/wai-aria/manual/separator_unfocusable_all_values_unspecified-manual.html90
-rw-r--r--testing/web-platform/tests/wai-aria/manual/separator_unfocusable_valuetext-manual.html116
-rw-r--r--testing/web-platform/tests/wai-aria/manual/slider_all_values_unspecified-manual.html182
-rw-r--r--testing/web-platform/tests/wai-aria/manual/slider_only_valuenow_unspecified-manual.html182
-rw-r--r--testing/web-platform/tests/wai-aria/manual/slider_orientation_unspecified-manual.html132
-rw-r--r--testing/web-platform/tests/wai-aria/manual/slider_readonly_false-manual.html127
-rw-r--r--testing/web-platform/tests/wai-aria/manual/slider_readonly_true-manual.html127
-rw-r--r--testing/web-platform/tests/wai-aria/manual/slider_readonly_unspecified-manual.html127
-rw-r--r--testing/web-platform/tests/wai-aria/manual/spinbutton_all_values_unspecified-manual.html183
-rw-r--r--testing/web-platform/tests/wai-aria/manual/spinbutton_only_aria-valuenow_unspecified-manual.html183
-rw-r--r--testing/web-platform/tests/wai-aria/manual/spinbutton_readonly_false-manual.html127
-rw-r--r--testing/web-platform/tests/wai-aria/manual/spinbutton_readonly_true-manual.html127
-rw-r--r--testing/web-platform/tests/wai-aria/manual/spinbutton_readonly_unspecified-manual.html127
-rw-r--r--testing/web-platform/tests/wai-aria/manual/switch_checked_false-manual.html124
-rw-r--r--testing/web-platform/tests/wai-aria/manual/switch_checked_mixed-manual.html130
-rw-r--r--testing/web-platform/tests/wai-aria/manual/switch_checked_true-manual.html138
-rw-r--r--testing/web-platform/tests/wai-aria/manual/switch_checked_undefined-manual.html124
-rw-r--r--testing/web-platform/tests/wai-aria/manual/switch_checked_value_changes-manual.html163
-rw-r--r--testing/web-platform/tests/wai-aria/manual/switch_readonly_false-manual.html119
-rw-r--r--testing/web-platform/tests/wai-aria/manual/switch_readonly_true-manual.html119
-rw-r--r--testing/web-platform/tests/wai-aria/manual/switch_readonly_unspecified-manual.html119
-rw-r--r--testing/web-platform/tests/wai-aria/manual/tab_posinset_and_setsize-manual.html189
-rw-r--r--testing/web-platform/tests/wai-aria/manual/table_colcount_-1-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/table_colcount_8-manual.html112
-rw-r--r--testing/web-platform/tests/wai-aria/manual/table_rowcount_-1-manual.html126
-rw-r--r--testing/web-platform/tests/wai-aria/manual/table_rowcount_3-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/tablist_orientation_horizontal-manual.html142
-rw-r--r--testing/web-platform/tests/wai-aria/manual/tablist_orientation_unspecified-manual.html136
-rw-r--r--testing/web-platform/tests/wai-aria/manual/tablist_orientation_vertical-manual.html130
-rw-r--r--testing/web-platform/tests/wai-aria/manual/term_role-manual.html106
-rw-r--r--testing/web-platform/tests/wai-aria/manual/textbox_placeholder-manual.html134
-rw-r--r--testing/web-platform/tests/wai-aria/manual/toolbar_orientation_horizontal-manual.html122
-rw-r--r--testing/web-platform/tests/wai-aria/manual/toolbar_orientation_unspecified-manual.html122
-rw-r--r--testing/web-platform/tests/wai-aria/manual/toolbar_orientation_vertical-manual.html122
-rw-r--r--testing/web-platform/tests/wai-aria/manual/tree_orientation_horizontal-manual.html129
-rw-r--r--testing/web-platform/tests/wai-aria/manual/tree_orientation_unspecified-manual.html129
-rw-r--r--testing/web-platform/tests/wai-aria/manual/tree_orientation_vertical-manual.html129
-rw-r--r--testing/web-platform/tests/wai-aria/manual/treegrid_colcount_8-manual.html118
-rw-r--r--testing/web-platform/tests/wai-aria/manual/treegrid_orientation_horizontal-manual.html137
-rw-r--r--testing/web-platform/tests/wai-aria/manual/treegrid_orientation_unspecified-manual.html155
-rw-r--r--testing/web-platform/tests/wai-aria/manual/treegrid_orientation_vertical-manual.html137
-rw-r--r--testing/web-platform/tests/wai-aria/manual/treegrid_rowcount_3-manual.html120
-rw-r--r--testing/web-platform/tests/wai-aria/manual/treeitem_selected_false-manual.html125
-rw-r--r--testing/web-platform/tests/wai-aria/manual/treeitem_selected_true-manual.html125
-rw-r--r--testing/web-platform/tests/wai-aria/manual/treeitem_selected_undefined-manual.html125
-rw-r--r--testing/web-platform/tests/wai-aria/manual/treeitem_selected_value_changes-manual.html146
234 files changed, 30307 insertions, 0 deletions
diff --git a/testing/web-platform/tests/wai-aria/manual/README.md b/testing/web-platform/tests/wai-aria/manual/README.md
new file mode 100644
index 0000000000..4e1a7706e3
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/README.md
@@ -0,0 +1,65 @@
+Wai-aria: Tests for the WAI-ARIA Recommendations
+================================================
+
+The [WAI ARIA Recommendations](https://www.w3.org/TR/wai-aria)
+define extensions to HTML4/5 for support of extended semantics. These
+semantics make it easier for Assistive Technologies to interpret and
+present content to users with varying physical and cognitive abilities.
+
+The purpose of these tests is to help ensure that user agents support the
+requirements of the Recommendations.
+
+The general approach for this testing is to enable both manual and automated
+testing, with a preference for automation.
+
+
+Running Tests
+-------------
+
+In order to run these tests in an automated fashion, you will need to have a
+special Assistive Technology Test Adapter (ATTA) for the platform under test. We will
+provide a list of these for popular platforms here as they are made available.
+
+The ATTA will monitor the window under test via the platforms Accessibility
+Layer, forwarding information about the Accessibility Tree to the running test
+so that it can evaluate support for the various features under test.
+
+The workflow for running these tests is something like:
+
+1. Start up the ATTA for the platform under test, informing it of the location
+ of the test server and the user agent to be tested.
+2. Start up the test driver window and select the wai-aria tests to be run
+ (e.g., the ARIA 1.1 tests) - click "Start"
+3. A window pops up that shows a test - the description of which tells the
+ tester what is being tested. In an automated test, the test with proceed
+ without user intervention. In a manual test, some user input may be required
+ in order to stimulate the test.
+4. The test runs. Success or failure is determined and reported to the test
+ driver window, which then cycles to the next test in the sequence.
+5. Repeat steps 2-4 until done.
+6. Download the JSON format report of test results, which can then be visually
+ inspected, reported on using various tools, or passed on to W3C for
+ evaluation and collection in the Implementation Report via github.
+
+**Remember that while these tests are written to help exercise implementations,
+their other (important) purpose is to increase confidence that there are
+interoperable implementations.** So, implementers are the audience, but these
+tests are not meant to be a comprehensive collection of tests for a client that
+might implement the Recommendation.
+
+
+Capturing and Reporting Results
+-------------------------------
+
+As tests are run against implementations, if the results of testing are
+submitted to [test-results](https://github.com/w3c/test-results/) then they will
+be automatically included in documents generated by
+[wptreport](https://www.github.com/w3c/wptreport). The same tool can be used
+locally to view reports about recorded results.
+
+
+Writing Tests
+-------------
+
+If you are interested in writing tests for this environment, see the
+associated [CONTRIBUTING](CONTRIBUTING.md) document.
diff --git a/testing/web-platform/tests/wai-aria/manual/alertdialog_modal_false-manual.html b/testing/web-platform/tests/wai-aria/manual/alertdialog_modal_false-manual.html
new file mode 100644
index 0000000000..ee64c9dbf0
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/alertdialog_modal_false-manual.html
@@ -0,0 +1,127 @@
+<!doctype html>
+<html>
+ <head>
+ <title>alertdialog modal false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_DIALOG"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_MODAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXApplicationAlertDialog"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "web alert dialog"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_DIALOG"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_MODAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_DIALOG"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Pane"
+ ],
+ [
+ "result",
+ "Window.isModal",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ },
+ {
+ "element" : "Test2",
+ "test" : {
+ "AXAPI" : [
+ [
+ "property",
+ "accessible",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ }
+ ],
+ "title" : "alertdialog modal false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for alertdialog modal false.</p>
+ <h1 id="Test2">Modal Dialog Box Test</h1>
+ <div role="alertdialog" aria-modal="false" id="test">
+ You have an error.
+ <input type="button" value="ok"/>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/alertdialog_modal_true-manual.html b/testing/web-platform/tests/wai-aria/manual/alertdialog_modal_true-manual.html
new file mode 100644
index 0000000000..4affe2fd5e
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/alertdialog_modal_true-manual.html
@@ -0,0 +1,107 @@
+<!doctype html>
+<html>
+ <head>
+ <title>alertdialog modal true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_DIALOG"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_MODAL"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_DIALOG"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_MODAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_DIALOG"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Pane"
+ ],
+ [
+ "result",
+ "Window.isModal",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ },
+ {
+ "element" : "Test2",
+ "test" : {
+ "AXAPI" : [
+ [
+ "property",
+ "accessible",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ }
+ ],
+ "title" : "alertdialog modal true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for alertdialog modal true.</p>
+ <h1 id="Test2">Modal Dialog Box Test</h1>
+ <div role="alertdialog" aria-modal="true" id="test">
+ You have an error.
+ <input type="button" value="ok"/>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/application_activedescendant-manual.html b/testing/web-platform/tests/wai-aria/manual/application_activedescendant-manual.html
new file mode 100644
index 0000000000..a6ef85ac3d
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/application_activedescendant-manual.html
@@ -0,0 +1,202 @@
+<!doctype html>
+<html>
+ <head>
+ <title>application activedescendant</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "event" : "focus",
+ "title" : "step 1",
+ "type" : "event"
+ },
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_EMBEDDED"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_FOCUSED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_FOCUSABLE"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXWebApplication"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "web application"
+ ],
+ [
+ "property",
+ "AXFocused",
+ "is",
+ "false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_APPLICATION"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_FOCUSED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_FOCUSABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Pane"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "application"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.UIA_IsKeyboardFocusablePropertyId",
+ "is",
+ "true"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.UIA_HasKeyboardFocusPropertyId",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ },
+ {
+ "element" : "bob",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_FOCUSED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_FOCUSABLE"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXFocused",
+ "is",
+ "true"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXFocused)",
+ "is",
+ "true"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_FOCUSED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_FOCUSABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "IUIAutomationElement.UIA_IsKeyboardFocusablePropertyId",
+ "is",
+ "true"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.UIA_HasKeyboardFocusPropertyId",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 3",
+ "type" : "test"
+ }
+ ],
+ "title" : "application activedescendant"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for application activedescendant.</p>
+ <div id='test' tabindex="0" aria-activedescendant="bob" role='application'>
+ <div id='bob' role='group'>Hello world</div>
+ </div>
+ then role:application, aria-activedescendant: bob
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/application_activedescendant_value_changes-manual.html b/testing/web-platform/tests/wai-aria/manual/application_activedescendant_value_changes-manual.html
new file mode 100644
index 0000000000..d923c84dea
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/application_activedescendant_value_changes-manual.html
@@ -0,0 +1,253 @@
+<!doctype html>
+<html>
+ <head>
+ <title>application activedescendant value changes</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "event" : "focus",
+ "title" : "step 1",
+ "type" : "event"
+ },
+ {
+ "attribute" : "aria-activedescendant",
+ "element" : "test",
+ "title" : "step 2",
+ "type" : "attribute",
+ "value" : "\"bob\""
+ },
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_EMBEDDED"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_FOCUSED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_FOCUSABLE"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXWebApplication"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "web application"
+ ],
+ [
+ "property",
+ "AXFocused",
+ "is",
+ "false"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXFocused)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "event",
+ "type",
+ "is",
+ "EVENT_OBJECT_FOCUS"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_APPLICATION"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_FOCUSED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_FOCUSABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Pane"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "application"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.UIA_IsKeyboardFocusablePropertyId",
+ "is",
+ "true"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.UIA_HasKeyboardFocusPropertyId",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 3",
+ "type" : "test"
+ },
+ {
+ "element" : "bob",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_FOCUSED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_FOCUSABLE"
+ ],
+ [
+ "event",
+ "type",
+ "is",
+ "object:state-changed:focused"
+ ],
+ [
+ "event",
+ "detail1",
+ "is",
+ "1"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXFocused",
+ "is",
+ "true"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXFocused)",
+ "is",
+ "true"
+ ],
+ [
+ "event",
+ "type",
+ "is",
+ "AXFocusedUIElementChanged"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_FOCUSED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_FOCUSABLE"
+ ],
+ [
+ "event",
+ "type",
+ "is",
+ "EVENT_OBJECT_FOCUS"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "IUIAutomationElement.UIA_IsKeyboardFocusablePropertyId",
+ "is",
+ "true"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.UIA_HasKeyboardFocusPropertyId",
+ "is",
+ "true"
+ ],
+ [
+ "event",
+ "type",
+ "is",
+ "UIA_AutomationFocusChangedEventId"
+ ]
+ ]
+ },
+ "title" : "step 4",
+ "type" : "test"
+ }
+ ],
+ "title" : "application activedescendant value changes"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for application activedescendant value changes.</p>
+ <div id='test' tabindex="0" role='application'>
+ <div id='bob' role='group'>Hello world</div>
+ </div>
+ then role:application, aria-activedescendant: bob generates a state change event
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/aria-current_not_declared-manual.html b/testing/web-platform/tests/wai-aria/manual/aria-current_not_declared-manual.html
new file mode 100644
index 0000000000..ecf95bb64f
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/aria-current_not_declared-manual.html
@@ -0,0 +1,116 @@
+<!doctype html>
+<html>
+ <head>
+ <title>aria-current not declared</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_LIST_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_ACTIVE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "current:false"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXGroup"
+ ],
+ [
+ "property",
+ "AXARIACurrent",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LISTITEM"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "current:false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LISTITEM"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "ListItem"
+ ],
+ [
+ "property",
+ "current",
+ "is",
+ ""
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "aria-current not declared"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for aria-current not declared.</p>
+ <ul role="list">
+ <li id="test" role="listitem">2</li>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_changes-manual.html b/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_changes-manual.html
new file mode 100644
index 0000000000..d3f1eae005
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_changes-manual.html
@@ -0,0 +1,110 @@
+<!doctype html>
+<html>
+ <head>
+ <title>aria-current with value changes</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "attribute" : "aria-current",
+ "element" : "test",
+ "title" : "step 1",
+ "type" : "attribute",
+ "value" : "\"false\""
+ },
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_ACTIVE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "current:false"
+ ],
+ [
+ "event",
+ "type",
+ "is",
+ "object:state-changed:active"
+ ],
+ [
+ "event",
+ "detail1",
+ "is",
+ "0"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXARIACurrent",
+ "contains",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "current:false"
+ ],
+ [
+ "event",
+ "type",
+ "is",
+ "IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "current",
+ "is",
+ "false"
+ ],
+ [
+ "event",
+ "type",
+ "is",
+ "PropertyChangedEvent"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ }
+ ],
+ "title" : "aria-current with value changes"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for aria-current with value changes.</p>
+ <ul role="list">
+ <li id="test" role="listitem" aria-current="true">1</li>
+ <li role="listitem" aria-current="false">2</li>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_date-manual.html b/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_date-manual.html
new file mode 100644
index 0000000000..b15f5ec13a
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_date-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>aria-current with value date</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_ACTIVE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "current:date"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXARIACurrent",
+ "is",
+ "date"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "current:date"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "TableItem"
+ ],
+ [
+ "property",
+ "current",
+ "is",
+ "date"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "aria-current with value date"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for aria-current with value date.</p>
+ <table>
+ <tr>
+ <td id="test" role="cell" aria-current="date">1</td>
+ </tr>
+ </table>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_location-manual.html b/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_location-manual.html
new file mode 100644
index 0000000000..e8cf762c0e
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_location-manual.html
@@ -0,0 +1,114 @@
+<!doctype html>
+<html>
+ <head>
+ <title>aria-current with value location</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_IMAGE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_ACTIVE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "current:location"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXImage"
+ ],
+ [
+ "property",
+ "AXARIACurrent",
+ "is",
+ "location"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_GRAPHIC"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "current:location"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleImage"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_GRAPHIC"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Image"
+ ],
+ [
+ "property",
+ "current",
+ "is",
+ "location"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "aria-current with value location"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for aria-current with value location.</p>
+ <div id="test" role="img" aria-current="location">1</div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_page-manual.html b/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_page-manual.html
new file mode 100644
index 0000000000..ba48b738cc
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_page-manual.html
@@ -0,0 +1,120 @@
+<!doctype html>
+<html>
+ <head>
+ <title>aria-current with value page</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_LINK"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_ACTIVE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "current:page"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXLink"
+ ],
+ [
+ "property",
+ "AXARIACurrent",
+ "is",
+ "page"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LINK"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "current:page"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleHypertext"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LINK"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_LINKED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HyperLink"
+ ],
+ [
+ "property",
+ "current",
+ "is",
+ "page"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "aria-current with value page"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for aria-current with value page.</p>
+ <div id="test" role="link" aria-current="page">1</div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_step-manual.html b/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_step-manual.html
new file mode 100644
index 0000000000..6f4d5986c6
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_step-manual.html
@@ -0,0 +1,120 @@
+<!doctype html>
+<html>
+ <head>
+ <title>aria-current with value step</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_LINK"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_ACTIVE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "current:step"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXLink"
+ ],
+ [
+ "property",
+ "AXARIACurrent",
+ "is",
+ "step"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LINK"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "current:step"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleHypertext"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LINK"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_LINKED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HyperLink"
+ ],
+ [
+ "property",
+ "current",
+ "is",
+ "step"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "aria-current with value step"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for aria-current with value step.</p>
+ <div id="test" role="link" aria-current="step">1</div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_time-manual.html b/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_time-manual.html
new file mode 100644
index 0000000000..046fb81769
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_time-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>aria-current with value time</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_ACTIVE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "current:time"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXARIACurrent",
+ "is",
+ "time"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "current:time"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "TableItem"
+ ],
+ [
+ "property",
+ "current",
+ "is",
+ "time"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "aria-current with value time"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for aria-current with value time.</p>
+ <table>
+ <tr>
+ <td id="test" role="cell" aria-current="time">1</td>
+ </tr>
+ </table>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_true-manual.html b/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_true-manual.html
new file mode 100644
index 0000000000..3ce799f8b2
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_true-manual.html
@@ -0,0 +1,116 @@
+<!doctype html>
+<html>
+ <head>
+ <title>aria-current with value true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_LIST_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_ACTIVE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "current:true"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXGroup"
+ ],
+ [
+ "property",
+ "AXARIACurrent",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LISTITEM"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "current:true"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LISTITEM"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "ListItem"
+ ],
+ [
+ "property",
+ "current",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "aria-current with value true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for aria-current with value true.</p>
+ <ul role="list">
+ <li id="test" role="listitem" aria-current="true">1</li>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_unspecified-manual.html
new file mode 100644
index 0000000000..c017a000a1
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/aria-current_with_value_unspecified-manual.html
@@ -0,0 +1,110 @@
+<!doctype html>
+<html>
+ <head>
+ <title>aria-current with value unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_LIST_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_ACTIVE"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXGroup"
+ ],
+ [
+ "property",
+ "AXARIACurrent",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LISTITEM"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "current:false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LISTITEM"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "ListItem"
+ ],
+ [
+ "property",
+ "current",
+ "is",
+ ""
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "aria-current with value unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for aria-current with value unspecified.</p>
+ <ul role="list">
+ <li id="test" role="listitem" aria-current="">1</li>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/aria-details_pointing_to_details_element-manual.html b/testing/web-platform/tests/wai-aria/manual/aria-details_pointing_to_details_element-manual.html
new file mode 100644
index 0000000000..6a0d9d776a
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/aria-details_pointing_to_details_element-manual.html
@@ -0,0 +1,90 @@
+<!doctype html>
+<html>
+ <head>
+ <title>aria-details pointing to details element</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "relation",
+ "RELATION_DETAILS",
+ "is",
+ "[details]"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "relations",
+ "contains",
+ "IA2_RELATION_DETAILS"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "IUIAutomationElement.DescribedBy",
+ "is",
+ "[details]"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ },
+ {
+ "element" : "details",
+ "test" : {
+ "ATK" : [
+ [
+ "relation",
+ "RELATION_DETAILS_FOR",
+ "is",
+ "[test]"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "relations",
+ "contains",
+ "IA2_RELATION_DETAILS_FOR"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ }
+ ],
+ "title" : "aria-details pointing to details element"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for aria-details pointing to details element.</p>
+ <img id="test" src="foo.jpg" aria-details="details">
+ <details id="details">
+ <summary>More information at W3.org</summary>
+ <iframe src="data:text/html,<body>foo</body>"/>
+ </details>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/aria-details_pointing_to_div_element-manual.html b/testing/web-platform/tests/wai-aria/manual/aria-details_pointing_to_div_element-manual.html
new file mode 100644
index 0000000000..8a46e78d97
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/aria-details_pointing_to_div_element-manual.html
@@ -0,0 +1,89 @@
+<!doctype html>
+<html>
+ <head>
+ <title>aria-details pointing to div element</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "relation",
+ "RELATION_DETAILS",
+ "is",
+ "[details]"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "relations",
+ "contains",
+ "IA2_RELATION_DETAILS"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "IUIAutomationElement.DescribedBy",
+ "is",
+ "[details]"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ },
+ {
+ "element" : "details",
+ "test" : {
+ "ATK" : [
+ [
+ "relation",
+ "RELATION_DETAILS_FOR",
+ "is",
+ "[test]"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "relations",
+ "contains",
+ "IA2_RELATION_DETAILS_FOR"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ }
+ ],
+ "title" : "aria-details pointing to div element"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for aria-details pointing to div element.</p>
+ <img id="test" src="foo.jpg" aria-details="details">
+ <div id="details">
+ <iframe src="data:text/html,<body>foo</body>"/>
+ </div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/article_in_feed_posinset_and_setsize-manual.html b/testing/web-platform/tests/wai-aria/manual/article_in_feed_posinset_and_setsize-manual.html
new file mode 100644
index 0000000000..9c89dc3fa9
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/article_in_feed_posinset_and_setsize-manual.html
@@ -0,0 +1,170 @@
+<!doctype html>
+<html>
+ <head>
+ <title>article in feed posinset and setsize</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ARTICLE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:article"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "posinset:4"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "setsize:8"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXDocumentArticle"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "article"
+ ],
+ [
+ "property",
+ "AXARIAPosInSet",
+ "is",
+ "4"
+ ],
+ [
+ "property",
+ "AXARIASetSize",
+ "is",
+ "8"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:article"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "posinset:4"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "setsize:8"
+ ],
+ [
+ "property",
+ "groupPosition",
+ "contains",
+ "similarItemsInGroup:8"
+ ],
+ [
+ "property",
+ "groupPosition",
+ "contains",
+ "positionInGroup:4"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_DOCUMENT"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Group"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "article"
+ ],
+ [
+ "property",
+ "AriaProperties.posinset",
+ "is",
+ "4"
+ ],
+ [
+ "property",
+ "AriaProperties.setsize",
+ "is",
+ "8"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "article in feed posinset and setsize"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for article in feed posinset and setsize.</p>
+ <div role="feed">
+ <div id="test" role="article" aria-posinset="4" aria-setsize="8">test cell</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/article_in_feed_setsize_-1-manual.html b/testing/web-platform/tests/wai-aria/manual/article_in_feed_setsize_-1-manual.html
new file mode 100644
index 0000000000..0552f926e9
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/article_in_feed_setsize_-1-manual.html
@@ -0,0 +1,140 @@
+<!doctype html>
+<html>
+ <head>
+ <title>article in feed setsize -1</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ARTICLE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:article"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "setsize:-1"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXDocumentArticle"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "article"
+ ],
+ [
+ "property",
+ "AXARIASetSize",
+ "is",
+ "-1"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:article"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "setsize:-1"
+ ],
+ [
+ "property",
+ "groupPosition",
+ "contains",
+ "similarItemsInGroup:-1"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_DOCUMENT"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Group"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "article"
+ ],
+ [
+ "property",
+ "AriaProperties.setsize",
+ "is",
+ "-1"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "article in feed setsize -1"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for article in feed setsize -1.</p>
+ <div role="feed">
+ <div id="test" role="article" aria-setsize="-1">test cell</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/article_not_in_feed_posinset_and_setsize-manual.html b/testing/web-platform/tests/wai-aria/manual/article_not_in_feed_posinset_and_setsize-manual.html
new file mode 100644
index 0000000000..91cb0e0eb4
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/article_not_in_feed_posinset_and_setsize-manual.html
@@ -0,0 +1,174 @@
+<!doctype html>
+<html>
+ <head>
+ <title>article not in feed posinset and setsize</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ARTICLE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:article"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "posinset:4"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "setsize:8"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXDocumentArticle"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "article"
+ ],
+ [
+ "property",
+ "AXARIAPosInSet",
+ "is",
+ "4"
+ ],
+ [
+ "property",
+ "AXARIASetSize",
+ "is",
+ "8"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_DOCUMENT"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:article"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "posinset:4"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "setsize:8"
+ ],
+ [
+ "property",
+ "groupPosition",
+ "contains",
+ "similarItemsInGroup:8"
+ ],
+ [
+ "property",
+ "groupPosition",
+ "contains",
+ "positionInGroup:4"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_DOCUMENT"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Group"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "article"
+ ],
+ [
+ "property",
+ "AriaProperties.posinset",
+ "is",
+ "4"
+ ],
+ [
+ "property",
+ "AriaProperties.setsize",
+ "is",
+ "8"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "article not in feed posinset and setsize"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for article not in feed posinset and setsize.</p>
+ <div id="test" role="article" aria-posinset="4" aria-setsize="8">test cell</div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/button_haspopup_dialog-manual.html b/testing/web-platform/tests/wai-aria/manual/button_haspopup_dialog-manual.html
new file mode 100644
index 0000000000..8ba0a22a8d
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/button_haspopup_dialog-manual.html
@@ -0,0 +1,132 @@
+<!doctype html>
+<html>
+ <head>
+ <title>button haspopup dialog</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PUSH_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:dialog"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HAS_POPUP"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXPopUpButton"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "pop up button"
+ ],
+ [
+ "property",
+ "actions",
+ "contains",
+ "AXShowMenu"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:dialog"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_HASPOPUP"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "IUIAutomationElement.ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "ExpandCollapse"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "button haspopup dialog"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for button haspopup dialog.</p>
+ <div id="test" role="button" aria-haspopup="dialog">
+ OK
+ </div>
+ <div role="dialog">
+ This is the dialog box
+ </div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/button_haspopup_emptystring-manual.html b/testing/web-platform/tests/wai-aria/manual/button_haspopup_emptystring-manual.html
new file mode 100644
index 0000000000..e909148906
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/button_haspopup_emptystring-manual.html
@@ -0,0 +1,129 @@
+<!doctype html>
+<html>
+ <head>
+ <title>button haspopup emptystring</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PUSH_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:false"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_HAS_POPUP"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXButton"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "button"
+ ],
+ [
+ "property",
+ "actions",
+ "doesNotContain",
+ "AXShowMenu"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_HASPOPUP"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "IUIAutomationElement.ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "doesNotContain",
+ "ExpandCollapse"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "button haspopup emptystring"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for button haspopup emptystring.</p>
+ <div id="test" role="button" aria-haspopup="">
+ OK
+ </div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/button_haspopup_false-manual.html b/testing/web-platform/tests/wai-aria/manual/button_haspopup_false-manual.html
new file mode 100644
index 0000000000..97188995e5
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/button_haspopup_false-manual.html
@@ -0,0 +1,123 @@
+<!doctype html>
+<html>
+ <head>
+ <title>button haspopup false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PUSH_BUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_HAS_POPUP"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXButton"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "button"
+ ],
+ [
+ "property",
+ "actions",
+ "doesNotContain",
+ "AXShowMenu"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_HASPOPUP"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "IUIAutomationElement.ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "doesNotContain",
+ "ExpandCollapse"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "button haspopup false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for button haspopup false.</p>
+ <div id="test" role="button" aria-haspopup="false">
+ OK
+ </div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/button_haspopup_foo-manual.html b/testing/web-platform/tests/wai-aria/manual/button_haspopup_foo-manual.html
new file mode 100644
index 0000000000..a09d21c074
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/button_haspopup_foo-manual.html
@@ -0,0 +1,129 @@
+<!doctype html>
+<html>
+ <head>
+ <title>button haspopup foo</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PUSH_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:false"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_HAS_POPUP"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXButton"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "button"
+ ],
+ [
+ "property",
+ "actions",
+ "doesNotContain",
+ "AXShowMenu"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_HASPOPUP"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "IUIAutomationElement.ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "doesNotContain",
+ "ExpandCollapse"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "button haspopup foo"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for button haspopup foo.</p>
+ <div id="test" role="button" aria-haspopup="foo">
+ OK
+ </div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/button_haspopup_grid-manual.html b/testing/web-platform/tests/wai-aria/manual/button_haspopup_grid-manual.html
new file mode 100644
index 0000000000..57c8efbde2
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/button_haspopup_grid-manual.html
@@ -0,0 +1,136 @@
+<!doctype html>
+<html>
+ <head>
+ <title>button haspopup grid</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PUSH_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:grid"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HAS_POPUP"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXPopUpButton"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "pop up button"
+ ],
+ [
+ "property",
+ "actions",
+ "contains",
+ "AXShowMenu"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:grid"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_HASPOPUP"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "IUIAutomationElement.ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "ExpandCollapse"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "button haspopup grid"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for button haspopup grid.</p>
+ <div id="test" role="button" aria-haspopup="grid">
+ OK
+ </div>
+ <table role="grid">
+ <tr>
+ <th>c1</th><th>c2</th>
+ </tr>
+ <tr>
+ <td>A</td><td>B</td>
+ </tr>
+ </table>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/button_haspopup_listbox-manual.html b/testing/web-platform/tests/wai-aria/manual/button_haspopup_listbox-manual.html
new file mode 100644
index 0000000000..4191fc40a3
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/button_haspopup_listbox-manual.html
@@ -0,0 +1,134 @@
+<!doctype html>
+<html>
+ <head>
+ <title>button haspopup listbox</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PUSH_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:listbox"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HAS_POPUP"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXPopUpButton"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "pop up button"
+ ],
+ [
+ "property",
+ "actions",
+ "contains",
+ "AXShowMenu"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:listbox"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_HASPOPUP"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "IUIAutomationElement.ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "ExpandCollapse"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "button haspopup listbox"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for button haspopup listbox.</p>
+ <div id="test" role="button" aria-haspopup="listbox">
+ OK
+ </div>
+ <ul role="listbox">
+ <li tabindex="0" role="option">sprouts</li>
+ <li tabindex="-1" role="option">cucumbers</li>
+ </ul>
+
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/button_haspopup_menu-manual.html b/testing/web-platform/tests/wai-aria/manual/button_haspopup_menu-manual.html
new file mode 100644
index 0000000000..9378993f55
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/button_haspopup_menu-manual.html
@@ -0,0 +1,134 @@
+<!doctype html>
+<html>
+ <head>
+ <title>button haspopup menu</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PUSH_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:menu"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HAS_POPUP"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXPopUpButton"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "pop up button"
+ ],
+ [
+ "property",
+ "actions",
+ "contains",
+ "AXShowMenu"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:menu"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_HASPOPUP"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "IUIAutomationElement.ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "ExpandCollapse"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "button haspopup menu"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for button haspopup menu.</p>
+ <div id="test" role="button" aria-haspopup="menu">
+ OK
+ </div>
+ <ul tabindex="0" aria-activedescendant="foo" role="menu">
+ <li id="foo" tabindex="-1" role="menuitem">sprouts</li>
+ <li tabindex="-1" role="menuitem">cucumbers</li>
+ </ul>
+
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/button_haspopup_tree-manual.html b/testing/web-platform/tests/wai-aria/manual/button_haspopup_tree-manual.html
new file mode 100644
index 0000000000..e62b87f59d
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/button_haspopup_tree-manual.html
@@ -0,0 +1,140 @@
+<!doctype html>
+<html>
+ <head>
+ <title>button haspopup tree</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PUSH_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:tree"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HAS_POPUP"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXPopUpButton"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "pop up button"
+ ],
+ [
+ "property",
+ "actions",
+ "contains",
+ "AXShowMenu"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:tree"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_HASPOPUP"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "IUIAutomationElement.ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "ExpandCollapse"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "button haspopup tree"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for button haspopup tree.</p>
+ <div id="test" role="button" aria-haspopup="tree">
+ OK
+ </div>
+ <ul tabindex="0" aria-activedescendant="foo" role="tree">
+ <li id="foo" tabindex="-1" role="treeitem">
+ squash
+ <ul role="group">
+ <li tabindex="-1"id="t1" role="treeitem">yellow</li>
+ <li tabindex="-1"id="t2" role="treeitem">summmer</li>
+ </ul>
+ </li>
+ <li tabindex="-1" role="treeitem">cucumbers</li>
+ </ul>
+
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/button_haspopup_true-manual.html b/testing/web-platform/tests/wai-aria/manual/button_haspopup_true-manual.html
new file mode 100644
index 0000000000..a6d94658d2
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/button_haspopup_true-manual.html
@@ -0,0 +1,129 @@
+<!doctype html>
+<html>
+ <head>
+ <title>button haspopup true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PUSH_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:menu"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HAS_POPUP"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXPopUpButton"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "pop up button"
+ ],
+ [
+ "property",
+ "actions",
+ "contains",
+ "AXShowMenu"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:menu"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_HASPOPUP"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "IUIAutomationElement.ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "ExpandCollapse"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "button haspopup true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for button haspopup true.</p>
+ <div role="button" aria-haspopup="true" id="test">
+ OK
+ </div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/button_haspopup_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/button_haspopup_unspecified-manual.html
new file mode 100644
index 0000000000..96d7095d4d
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/button_haspopup_unspecified-manual.html
@@ -0,0 +1,129 @@
+<!doctype html>
+<html>
+ <head>
+ <title>button haspopup unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PUSH_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "haspopup"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_HAS_POPUP"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXButton"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "button"
+ ],
+ [
+ "property",
+ "actions",
+ "doesNotContain",
+ "AXShowMenu"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_HASPOPUP"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "IUIAutomationElement.ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "doesNotContain",
+ "ExpandCollapse"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "button haspopup unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for button haspopup unspecified.</p>
+ <div id="test" role="button">
+ OK
+ </div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/button_roledescription_empty-manual.html b/testing/web-platform/tests/wai-aria/manual/button_roledescription_empty-manual.html
new file mode 100644
index 0000000000..d9eb0fe7cc
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/button_roledescription_empty-manual.html
@@ -0,0 +1,104 @@
+<!doctype html>
+<html>
+ <head>
+ <title>button roledescription empty</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PUSH_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "roledescription"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXButton"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "button"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "localizedExtendedRole",
+ "is",
+ "null"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "Button"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "button roledescription empty"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for button roledescription empty.</p>
+ <div role="button" aria-roledescription="" id="test">
+ Go Fish
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/button_roledescription_valid-manual.html b/testing/web-platform/tests/wai-aria/manual/button_roledescription_valid-manual.html
new file mode 100644
index 0000000000..cdcf6071e6
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/button_roledescription_valid-manual.html
@@ -0,0 +1,102 @@
+<!doctype html>
+<html>
+ <head>
+ <title>button roledescription valid</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PUSH_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "roledescription:SassyButton"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXButton"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "SassyButton"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "localizedExtendedRole",
+ "is",
+ "SassyButton"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "SassyButton"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "button roledescription valid"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for button roledescription valid.</p>
+ <input type="button" value="Go Fish" aria-roledescription="SassyButton" id="test"/>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/button_roledescription_whitespace_only-manual.html b/testing/web-platform/tests/wai-aria/manual/button_roledescription_whitespace_only-manual.html
new file mode 100644
index 0000000000..59e463778a
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/button_roledescription_whitespace_only-manual.html
@@ -0,0 +1,104 @@
+<!doctype html>
+<html>
+ <head>
+ <title>button roledescription whitespace only</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PUSH_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "roledescription"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXButton"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "button"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "localizedExtendedRole",
+ "is",
+ "null"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "Button"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "button roledescription whitespace only"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for button roledescription whitespace only.</p>
+ <div role="button" aria-roledescription=" " id="test">
+ Go Fish
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/cell-manual.html b/testing/web-platform/tests/wai-aria/manual/cell-manual.html
new file mode 100644
index 0000000000..d9f0eafbe0
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/cell-manual.html
@@ -0,0 +1,216 @@
+<!doctype html>
+<html>
+ <head>
+ <title>cell</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "foo",
+ "test" : {
+ "ATK" : [
+ [
+ "result",
+ "atk_table_get_n_columns()",
+ "is",
+ "8"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colcount:8"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTable"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "table"
+ ],
+ [
+ "property",
+ "AXARIAColumnCount",
+ "is",
+ "8"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "Grid.ColumnCount",
+ "is",
+ "8"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ },
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_position()",
+ "contains",
+ "column=3"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "TableCell"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colindex:4"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "cell"
+ ],
+ [
+ "property",
+ "AXARIAColumnIndex",
+ "is",
+ "4"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colindex:4"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colcount:8"
+ ],
+ [
+ "property",
+ "groupPosition",
+ "contains",
+ "similarItemsInGroup:8"
+ ],
+ [
+ "property",
+ "groupPosition",
+ "contains",
+ "positionInGroup:4"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "GridItem pattern"
+ ],
+ [
+ "property",
+ "GridItem.Column",
+ "is",
+ "3"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "selection pattern"
+ ],
+ [
+ "property",
+ "interfaces",
+ "MUST NOT contain",
+ "invoke pattern"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ }
+ ],
+ "title" : "cell"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for cell.</p>
+ <div id="foo" role="table" aria-colcount="8">
+ <div role="row">
+ <span id="test" role="cell" aria-colindex="4" >test cell</span>
+ </div>
+ </div>
+ then role: cell, aria-colindex: 4, aria-colcount:8
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_div-manual.html
new file mode 100644
index 0000000000..fa120dc5e4
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_div-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>cell aria-colspan 2 on div</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colspan:2"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "contains",
+ "column_span=2"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXColumnIndexRange.length",
+ "is",
+ "2"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colspan:2"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "TableItem.ColumnSpan",
+ "is",
+ "2"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "cell aria-colspan 2 on div"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for cell aria-colspan 2 on div.</p>
+ <div role="table">
+ <div role="row">
+ <div id="test" role="cell" aria-colspan="2">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_td_html_colspan_3-manual.html b/testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_td_html_colspan_3-manual.html
new file mode 100644
index 0000000000..a7c65fed3d
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_td_html_colspan_3-manual.html
@@ -0,0 +1,112 @@
+<!doctype html>
+<html>
+ <head>
+ <title>cell aria-colspan 2 on td html colspan 3</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "colspan:2"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "doesNotContain",
+ "column_span=2"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXColumnIndexRange.length",
+ "isNot",
+ "2"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "colspan:2"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "TableItem.ColumnSpan",
+ "isNot",
+ "2"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "cell aria-colspan 2 on td html colspan 3"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for cell aria-colspan 2 on td html colspan 3.</p>
+ <table>
+ <tr>
+ <td id="test" colspan="3" aria-colspan="2">test cell</td>
+ </tr>
+ </table>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_td_html_colspan_3_with_headers_and_border-manual.html b/testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_td_html_colspan_3_with_headers_and_border-manual.html
new file mode 100644
index 0000000000..057918c6b0
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_td_html_colspan_3_with_headers_and_border-manual.html
@@ -0,0 +1,115 @@
+<!doctype html>
+<html>
+ <head>
+ <title>cell aria-colspan 2 on td html colspan 3 with headers and border</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "colspan:2"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "contains",
+ "column_span=3"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXColumnIndexRange.length",
+ "is",
+ "3"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "colspan:2"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "TableItem.ColumnSpan",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "cell aria-colspan 2 on td html colspan 3 with headers and border"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for cell aria-colspan 2 on td html colspan 3 with headers and border.</p>
+ <table border="1">
+ <tr>
+ <th>test header 1</th><th>test header 2</th><th>test header 3</th>
+ </tr>
+ <tr>
+ <td id="test" colspan="3" aria-colspan="2">test cell</td>
+ </tr>
+ </table>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_td_html_colspan_3_with_three_actual_columns-manual.html b/testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_td_html_colspan_3_with_three_actual_columns-manual.html
new file mode 100644
index 0000000000..2c05e6ea71
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_td_html_colspan_3_with_three_actual_columns-manual.html
@@ -0,0 +1,109 @@
+<!doctype html>
+<html>
+ <head>
+ <title>cell aria-colspan 2 on td html colspan 3 with three actual columns</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "contains",
+ "column_span=3"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXColumnIndexRange.length",
+ "is",
+ "3"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "colspan:2"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "TableItem.ColumnSpan",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "cell aria-colspan 2 on td html colspan 3 with three actual columns"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for cell aria-colspan 2 on td html colspan 3 with three actual columns.</p>
+ <table>
+ <tr>
+ <td>1</td><td>2</td><td>3</td>
+ </tr>
+ <tr>
+ <td id="test" colspan="3" aria-colspan="2">test cell</td>
+ </tr>
+ </table>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_td_with_html_colspan_not_specified-manual.html b/testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_td_with_html_colspan_not_specified-manual.html
new file mode 100644
index 0000000000..06212078b7
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/cell_aria-colspan_2_on_td_with_html_colspan_not_specified-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>cell aria-colspan 2 on td with html colspan not specified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colspan:2"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "contains",
+ "column_span=2"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXColumnIndexRange.length",
+ "is",
+ "2"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colspan:2"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "TableItem.ColumnSpan",
+ "is",
+ "2"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "cell aria-colspan 2 on td with html colspan not specified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for cell aria-colspan 2 on td with html colspan not specified.</p>
+ <table>
+ <tr>
+ <td id="test" aria-colspan="2">test cell</td>
+ </tr>
+ </table>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/cell_aria-rowspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/manual/cell_aria-rowspan_2_on_div-manual.html
new file mode 100644
index 0000000000..e94303848d
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/cell_aria-rowspan_2_on_div-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>cell aria-rowspan 2 on div</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowspan:2"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "contains",
+ "row_span=2"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXRowIndexRange.length",
+ "is",
+ "2"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowspan:2"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "TableItem.RowSpan",
+ "is",
+ "2"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "cell aria-rowspan 2 on div"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for cell aria-rowspan 2 on div.</p>
+ <div role="table">
+ <div role="row">
+ <div id="test" role="cell" aria-rowspan="2">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/cell_aria-rowspan_2_on_td_html_rowspan_3-manual.html b/testing/web-platform/tests/wai-aria/manual/cell_aria-rowspan_2_on_td_html_rowspan_3-manual.html
new file mode 100644
index 0000000000..86ea1a4aec
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/cell_aria-rowspan_2_on_td_html_rowspan_3-manual.html
@@ -0,0 +1,112 @@
+<!doctype html>
+<html>
+ <head>
+ <title>cell aria-rowspan 2 on td html rowspan 3</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "rowspan:2"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "doesNotContain",
+ "row_span=2"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXRowIndexRange.length",
+ "isNot",
+ "2"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "rowspan:2"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "TableItem.RowSpan",
+ "isNot",
+ "2"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "cell aria-rowspan 2 on td html rowspan 3"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for cell aria-rowspan 2 on td html rowspan 3.</p>
+ <table>
+ <tr>
+ <td id="test" role="cell" rowspan="3" aria-rowspan="2">test cell</td>
+ </tr>
+ </table>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/cell_aria-rowspan_2_on_td_html_rowspan_3_with_three_actual_rows-manual.html b/testing/web-platform/tests/wai-aria/manual/cell_aria-rowspan_2_on_td_html_rowspan_3_with_three_actual_rows-manual.html
new file mode 100644
index 0000000000..f1572046f2
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/cell_aria-rowspan_2_on_td_html_rowspan_3_with_three_actual_rows-manual.html
@@ -0,0 +1,113 @@
+<!doctype html>
+<html>
+ <head>
+ <title>cell aria-rowspan 2 on td html rowspan 3 with three actual rows</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "contains",
+ "row_span=3"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXRowIndexRange.length",
+ "is",
+ "3"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "rowspan:2"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "TableItem.RowSpan",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "cell aria-rowspan 2 on td html rowspan 3 with three actual rows"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for cell aria-rowspan 2 on td html rowspan 3 with three actual rows.</p>
+ <table>
+ <tr>
+ <td>1</td>
+ <td id="test" role="cell" rowspan="3" aria-rowspan="2">test cell</td>
+ </tr>
+ <tr>
+ <td>2</td>
+ </tr>
+ <tr>
+ <td>3</td>
+ </tr>
+ </table>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/cell_aria-rowspan_2_on_td_with_html_rowspan_not_specified-manual.html b/testing/web-platform/tests/wai-aria/manual/cell_aria-rowspan_2_on_td_with_html_rowspan_not_specified-manual.html
new file mode 100644
index 0000000000..0978186feb
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/cell_aria-rowspan_2_on_td_with_html_rowspan_not_specified-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>cell aria-rowspan 2 on td with html rowspan not specified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowspan:2"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "contains",
+ "row_span=2"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXRowIndexRange.length",
+ "is",
+ "2"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowspan:2"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "TableItem.RowSpan",
+ "is",
+ "2"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "cell aria-rowspan 2 on td with html rowspan not specified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for cell aria-rowspan 2 on td with html rowspan not specified.</p>
+ <table>
+ <tr>
+ <td id="test" role="cell" aria-rowspan="2">test cell</td>
+ </tr>
+ </table>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/cell_colindex_4-manual.html b/testing/web-platform/tests/wai-aria/manual/cell_colindex_4-manual.html
new file mode 100644
index 0000000000..02003065e0
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/cell_colindex_4-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>cell colindex 4</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colindex:4"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_position()",
+ "contains",
+ "column=3"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXARIAColumnIndex",
+ "is",
+ "4"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colindex:4"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "TableItem.Column",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "cell colindex 4"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for cell colindex 4.</p>
+ <div role="table">
+ <div role="row">
+ <div id="test" role="cell" aria-colindex="4" aria-colcount="8">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/cell_rowindex_4-manual.html b/testing/web-platform/tests/wai-aria/manual/cell_rowindex_4-manual.html
new file mode 100644
index 0000000000..ea2937efcb
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/cell_rowindex_4-manual.html
@@ -0,0 +1,112 @@
+<!doctype html>
+<html>
+ <head>
+ <title>cell rowindex 4</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowindex:4"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_position()",
+ "contains",
+ "row=3"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXARIARowIndex",
+ "is",
+ "4"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowindex:4"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "Row",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "cell rowindex 4"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for cell rowindex 4.</p>
+ <div role="table">
+ <div role="row">
+ <div id="test" role="cell" aria-rowindex="4">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/checkbox_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/manual/checkbox_readonly_false-manual.html
new file mode 100644
index 0000000000..558dc8e391
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/checkbox_readonly_false-manual.html
@@ -0,0 +1,120 @@
+<!doctype html>
+<html>
+ <head>
+ <title>checkbox readonly false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_CHECK_BOX"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCheckBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "checkbox"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CHECKBUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "checkable:true"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CHECKBUTTON"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Checkbox"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "checkbox readonly false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for checkbox readonly false.</p>
+ <div id="test" aria-readonly="false" role="checkbox">test cell</div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/checkbox_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/manual/checkbox_readonly_true-manual.html
new file mode 100644
index 0000000000..f3c879038f
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/checkbox_readonly_true-manual.html
@@ -0,0 +1,126 @@
+<!doctype html>
+<html>
+ <head>
+ <title>checkbox readonly true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_CHECK_BOX"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_CHECKABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCheckBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "checkbox"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "checkable:true"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CHECKBUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Checkbox"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "checkbox readonly true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for checkbox readonly true.</p>
+ <div id="test" aria-readonly="true" role="checkbox">test cell</div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/checkbox_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/checkbox_readonly_unspecified-manual.html
new file mode 100644
index 0000000000..583985f000
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/checkbox_readonly_unspecified-manual.html
@@ -0,0 +1,120 @@
+<!doctype html>
+<html>
+ <head>
+ <title>checkbox readonly unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_CHECK_BOX"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCheckBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "checkbox"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CHECKBUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "checkable:true"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CHECKBUTTON"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Checkbox"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "checkbox readonly unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for checkbox readonly unspecified.</p>
+ <div id="test" role="checkbox">test cell</div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/columnheader_aria-colspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/manual/columnheader_aria-colspan_2_on_div-manual.html
new file mode 100644
index 0000000000..4789ced84d
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/columnheader_aria-colspan_2_on_div-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>columnheader aria-colspan 2 on div</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COLUMN_HEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colspan:2"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "contains",
+ "column_span=2"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXColumnIndexRange.length",
+ "is",
+ "2"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colspan:2"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "HeaderItem.ColumnSpan",
+ "is",
+ "2"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "columnheader aria-colspan 2 on div"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for columnheader aria-colspan 2 on div.</p>
+ <div role="table">
+ <div role="row">
+ <div id="test" role="columnheader" aria-colspan="2">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/columnheader_aria-colspan_2_on_th_html_colspan_3-manual.html b/testing/web-platform/tests/wai-aria/manual/columnheader_aria-colspan_2_on_th_html_colspan_3-manual.html
new file mode 100644
index 0000000000..2ad8cb4bed
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/columnheader_aria-colspan_2_on_th_html_colspan_3-manual.html
@@ -0,0 +1,112 @@
+<!doctype html>
+<html>
+ <head>
+ <title>columnheader aria-colspan 2 on th html colspan 3</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COLUMN_HEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "colspan:2"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "doesNotContain",
+ "column_span=2"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXColumnIndexRange.length",
+ "isNot",
+ "2"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "colspan:2"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "HeaderItem.ColumnSpan",
+ "isNot",
+ "2"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "columnheader aria-colspan 2 on th html colspan 3"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for columnheader aria-colspan 2 on th html colspan 3.</p>
+ <table>
+ <tr>
+ <th id="test" role="columnheader" colspan="3" aria-colspan="2">test cell</th>
+ </tr>
+ </table>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/columnheader_aria-colspan_2_on_th_html_colspan_3_with_three_actual_columns-manual.html b/testing/web-platform/tests/wai-aria/manual/columnheader_aria-colspan_2_on_th_html_colspan_3_with_three_actual_columns-manual.html
new file mode 100644
index 0000000000..3ac8701f5d
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/columnheader_aria-colspan_2_on_th_html_colspan_3_with_three_actual_columns-manual.html
@@ -0,0 +1,109 @@
+<!doctype html>
+<html>
+ <head>
+ <title>columnheader aria-colspan 2 on th html colspan 3 with three actual columns</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COLUMN_HEADER"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "contains",
+ "column_span=3"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXColumnIndexRange.length",
+ "is",
+ "3"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "colspan:2"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "TableItem.ColumnSpan",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "columnheader aria-colspan 2 on th html colspan 3 with three actual columns"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for columnheader aria-colspan 2 on th html colspan 3 with three actual columns.</p>
+ <table>
+ <tr>
+ <th>1</th><th>2</th><th>3</th>
+ </tr>
+ <tr>
+ <th id="test" role="columnheader" colspan="3" aria-colspan="2">test cell</th>
+ </tr>
+ </table>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/columnheader_aria-colspan_2_on_th_with_html_colspan_not_specified-manual.html b/testing/web-platform/tests/wai-aria/manual/columnheader_aria-colspan_2_on_th_with_html_colspan_not_specified-manual.html
new file mode 100644
index 0000000000..82c7599188
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/columnheader_aria-colspan_2_on_th_with_html_colspan_not_specified-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>columnheader aria-colspan 2 on th with html colspan not specified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COLUMN_HEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colspan:2"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "contains",
+ "column_span=2"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXColumnIndexRange.length",
+ "is",
+ "2"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colspan:2"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "HeaderItem.ColumnSpan",
+ "is",
+ "2"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "columnheader aria-colspan 2 on th with html colspan not specified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for columnheader aria-colspan 2 on th with html colspan not specified.</p>
+ <table>
+ <tr>
+ <th id="test" role="columnheader" aria-colspan="2">test cell</th>
+ </tr>
+ </table>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/columnheader_aria-rowspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/manual/columnheader_aria-rowspan_2_on_div-manual.html
new file mode 100644
index 0000000000..00c0068392
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/columnheader_aria-rowspan_2_on_div-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>columnheader aria-rowspan 2 on div</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COLUMN_HEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowspan:2"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "contains",
+ "row_span=2"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXRowIndexRange.length",
+ "is",
+ "2"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowspan:2"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "HeaderItem.RowSpan",
+ "is",
+ "2"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "columnheader aria-rowspan 2 on div"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for columnheader aria-rowspan 2 on div.</p>
+ <div role="table">
+ <div role="row">
+ <div id="test" role="columnheader" aria-rowspan="2">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/columnheader_aria-rowspan_2_on_th_html_rowspan_3-manual.html b/testing/web-platform/tests/wai-aria/manual/columnheader_aria-rowspan_2_on_th_html_rowspan_3-manual.html
new file mode 100644
index 0000000000..256a3d73bd
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/columnheader_aria-rowspan_2_on_th_html_rowspan_3-manual.html
@@ -0,0 +1,112 @@
+<!doctype html>
+<html>
+ <head>
+ <title>columnheader aria-rowspan 2 on th html rowspan 3</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COLUMN_HEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "rowspan:2"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "doesNotContain",
+ "row_span=2"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXRowIndexRange.length",
+ "isNot",
+ "2"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "rowspan:2"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "HeaderItem.RowSpan",
+ "isNot",
+ "2"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "columnheader aria-rowspan 2 on th html rowspan 3"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for columnheader aria-rowspan 2 on th html rowspan 3.</p>
+ <table>
+ <tr>
+ <th id="test" role="columnheader" rowspan="3" aria-rowspan="2">test cell</th>
+ </tr>
+ </table>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/columnheader_aria-rowspan_2_on_th_html_rowspan_3_with_three_actual_rows-manual.html b/testing/web-platform/tests/wai-aria/manual/columnheader_aria-rowspan_2_on_th_html_rowspan_3_with_three_actual_rows-manual.html
new file mode 100644
index 0000000000..6327e5fb4e
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/columnheader_aria-rowspan_2_on_th_html_rowspan_3_with_three_actual_rows-manual.html
@@ -0,0 +1,113 @@
+<!doctype html>
+<html>
+ <head>
+ <title>columnheader aria-rowspan 2 on th html rowspan 3 with three actual rows</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COLUMN_HEADER"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "contains",
+ "row_span=3"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXRowIndexRange.length",
+ "is",
+ "3"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "rowspan:2"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "HeaderItem.RowSpan",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "columnheader aria-rowspan 2 on th html rowspan 3 with three actual rows"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for columnheader aria-rowspan 2 on th html rowspan 3 with three actual rows.</p>
+ <table>
+ <tr>
+ <th>1</th>
+ <th id="test" role="columnheader" rowspan="3" aria-rowspan="2">test cell</th>
+ </tr>
+ <tr>
+ <th>2</th>
+ </tr>
+ <tr>
+ <th>3</th>
+ </tr>
+ </table>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/columnheader_aria-rowspan_2_on_th_with_html_rowspan_not_specified-manual.html b/testing/web-platform/tests/wai-aria/manual/columnheader_aria-rowspan_2_on_th_with_html_rowspan_not_specified-manual.html
new file mode 100644
index 0000000000..425eb5b15e
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/columnheader_aria-rowspan_2_on_th_with_html_rowspan_not_specified-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>columnheader aria-rowspan 2 on th with html rowspan not specified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COLUMN_HEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowspan:2"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "contains",
+ "row_span=2"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXRowIndexRange.length",
+ "is",
+ "2"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowspan:2"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "HeaderItem.RowSpan",
+ "is",
+ "2"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "columnheader aria-rowspan 2 on th with html rowspan not specified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for columnheader aria-rowspan 2 on th with html rowspan not specified.</p>
+ <table>
+ <tr>
+ <th id="test" role="columnheader" aria-rowspan="2">test cell</th>
+ </tr>
+ </table>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/columnheader_colindex_4-manual.html b/testing/web-platform/tests/wai-aria/manual/columnheader_colindex_4-manual.html
new file mode 100644
index 0000000000..f44e8343fb
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/columnheader_colindex_4-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>columnheader colindex 4</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COLUMN_HEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colindex:4"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_position()",
+ "contains",
+ "column=3"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXARIAColumnIndex",
+ "is",
+ "4"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colindex:4"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "Column",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "columnheader colindex 4"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for columnheader colindex 4.</p>
+ <div role="table">
+ <div role="row">
+ <div id="test" role="columnheader" aria-colindex="4" aria-colcount="8">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/columnheader_rowindex_4-manual.html b/testing/web-platform/tests/wai-aria/manual/columnheader_rowindex_4-manual.html
new file mode 100644
index 0000000000..7ab7e9c8d0
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/columnheader_rowindex_4-manual.html
@@ -0,0 +1,112 @@
+<!doctype html>
+<html>
+ <head>
+ <title>columnheader rowindex 4</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COLUMN_HEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowindex:4"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_position()",
+ "contains",
+ "row=3"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXARIARowIndex",
+ "is",
+ "4"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowindex:4"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "HeaderItem.Row",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "columnheader rowindex 4"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for columnheader rowindex 4.</p>
+ <div role="table">
+ <div role="row">
+ <div id="test" role="columnheader" aria-rowindex="4">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/columnheader_selected_false_not_automatically_propagated-manual.html b/testing/web-platform/tests/wai-aria/manual/columnheader_selected_false_not_automatically_propagated-manual.html
new file mode 100644
index 0000000000..7624f2a3b8
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/columnheader_selected_false_not_automatically_propagated-manual.html
@@ -0,0 +1,133 @@
+<!doctype html>
+<html>
+ <head>
+ <title>columnheader selected false not automatically propagated</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SELECTABLE"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "cell"
+ ],
+ [
+ "property",
+ "AXSelected",
+ "is",
+ "true"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_SELECTABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "SelectionItem.IsSelected",
+ "is",
+ "true"
+ ],
+ [
+ "property",
+ "SelectionItem.selectionContainer",
+ "is",
+ "test1"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "columnheader selected false not automatically propagated"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for columnheader selected false not automatically propagated.</p>
+ <div id="test1" role="grid">
+ <div role="row">
+ <div role="columnheader" aria-selected="false">C1</div>
+ <div role="columnheader">C2</div>
+ </div>
+ <div role="row">
+ <div id="test" aria-selected="true" role="gridcell">A1</div>
+ <div role="gridcell">A2</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/columnheader_selected_true_not_automatically_propagated-manual.html b/testing/web-platform/tests/wai-aria/manual/columnheader_selected_true_not_automatically_propagated-manual.html
new file mode 100644
index 0000000000..1bc364cb88
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/columnheader_selected_true_not_automatically_propagated-manual.html
@@ -0,0 +1,133 @@
+<!doctype html>
+<html>
+ <head>
+ <title>columnheader selected true not automatically propagated</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SELECTABLE"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "cell"
+ ],
+ [
+ "property",
+ "AXSelected",
+ "is",
+ "false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_SELECTABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "SelectionItem.IsSelected",
+ "is",
+ "false"
+ ],
+ [
+ "property",
+ "SelectionItem.selectionContainer",
+ "is",
+ "test1"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "columnheader selected true not automatically propagated"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for columnheader selected true not automatically propagated.</p>
+ <div id="test1" role="grid">
+ <div role="row">
+ <div role="columnheader" aria-selected="true">C1</div>
+ <div role="columnheader">C2</div>
+ </div>
+ <div role="row">
+ <div id="test" role="gridcell">A1</div>
+ <div role="gridcell">A2</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/combobox_controls_an_invalid_id-manual.html b/testing/web-platform/tests/wai-aria/manual/combobox_controls_an_invalid_id-manual.html
new file mode 100644
index 0000000000..91188d8e3c
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/combobox_controls_an_invalid_id-manual.html
@@ -0,0 +1,98 @@
+<!doctype html>
+<html>
+ <head>
+ <title>combobox controls an invalid ID</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "relations",
+ "doesNotContain",
+ "RELATION_CONTROLLER_FOR"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXLinkedUIElements",
+ "doesNotContain",
+ "myID"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "relations",
+ "doesNotContain",
+ "IA2_RELATION_CONTROLLER_FOR"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "IUIAutomation.ControllerFor",
+ "doesNotContain",
+ "myID"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ },
+ {
+ "element" : "myID",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "relations",
+ "doesNotContain",
+ "RELATION_CONTROLLED_BY"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "relations",
+ "doesNotContain",
+ "IA2_RELATION_CONTROLLED_BY"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ }
+ ],
+ "title" : "combobox controls an invalid ID"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for combobox controls an invalid ID.</p>
+ <div id="test" role="combobox" aria-controls="fakeID" aria-owns="myID" aria-expanded="true" aria-haspopup="listbox"><span role="textbox">option 3</span></div>
+ <div role="listbox" id="myID">
+ <div role="option">option 1</div>
+ <div role="option">option 2</div>
+ <div role="option">option 3</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_dialog-manual.html b/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_dialog-manual.html
new file mode 100644
index 0000000000..d9cf618d9b
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_dialog-manual.html
@@ -0,0 +1,162 @@
+<!doctype html>
+<html>
+ <head>
+ <title>combobox haspopup dialog</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COMBO_BOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HAS_POPUP"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:dialog"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXComboBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "combo box"
+ ],
+ [
+ "property",
+ "AXExpanded",
+ "is",
+ "true"
+ ],
+ [
+ "property",
+ "actions",
+ "contains",
+ "AXShowMenu"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:dialog"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_HASPOPUP"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_EXPANDED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Combobox"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "ExpandCollapse pattern"
+ ],
+ [
+ "property",
+ "ExpandCollapse.ExpandCollapseState",
+ "is",
+ "Expanded"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "combobox haspopup dialog"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for combobox haspopup dialog.</p>
+ <div aria-label="Tag" aria-haspopup="dialog" id="test" role="combobox" aria-expanded="true" aria-owns="owned_dialog">
+ <input type="text" aria-autocomplete="list" aria-controls="owned_dialog" aria-activedescendant="selected_cell">
+ <div role="radiogroup">
+ <div role="radio" id="selected_radio" tabindex="-1">R1</div><div role="radio" tabindex="-1">R2</div>
+ </div>
+ <div role="button" tabindex="0">ok</div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_false-manual.html b/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_false-manual.html
new file mode 100644
index 0000000000..2b0ca94745
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_false-manual.html
@@ -0,0 +1,156 @@
+<!doctype html>
+<html>
+ <head>
+ <title>combobox haspopup false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COMBO_BOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDED"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_HAS_POPUP"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXComboBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "combo box"
+ ],
+ [
+ "property",
+ "AXExpanded",
+ "is",
+ "true"
+ ],
+ [
+ "property",
+ "actions",
+ "doesNotContain",
+ "AXShowMenu"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_HASPOPUP"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_EXPANDED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Combobox"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "ExpandCollapse pattern"
+ ],
+ [
+ "property",
+ "ExpandCollapse.ExpandCollapseState",
+ "is",
+ "Expanded"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "combobox haspopup false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for combobox haspopup false.</p>
+ <div aria-label="Tag" id="test" aria-haspopup="false" role="combobox" aria-expanded="true" aria-owns="owned_dialog">
+ <input type="text" aria-autocomplete="list" aria-controls="owned_dialog" aria-activedescendant="selected_cell">
+ <div role="radiogroup">
+ <div role="radio" id="selected_radio" tabindex="-1">R1</div><div role="radio" tabindex="-1">R2</div>
+ </div>
+ <div role="button" tabindex="0">ok</div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_grid-manual.html b/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_grid-manual.html
new file mode 100644
index 0000000000..a3929cf79e
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_grid-manual.html
@@ -0,0 +1,164 @@
+<!doctype html>
+<html>
+ <head>
+ <title>combobox haspopup grid</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COMBO_BOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HAS_POPUP"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:grid"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXComboBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "combo box"
+ ],
+ [
+ "property",
+ "AXExpanded",
+ "is",
+ "true"
+ ],
+ [
+ "property",
+ "actions",
+ "contains",
+ "AXShowMenu"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:grid"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_HASPOPUP"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_EXPANDED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Combobox"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "ExpandCollapse pattern"
+ ],
+ [
+ "property",
+ "ExpandCollapse.ExpandCollapseState",
+ "is",
+ "Expanded"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "combobox haspopup grid"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for combobox haspopup grid.</p>
+ <div aria-label="Tag" aria-haspopup="grid" id="test" role="combobox" aria-expanded="true" aria-owns="owned_grid">
+ <input type="text" aria-autocomplete="list" aria-controls="owned_grid" aria-activedescendant="selected_cell">
+ </div>
+ <table id="owned_grid" role="grid">
+ <tr>
+ <th tabindex="-1" id="selected_cell" role="colomnheader">c1</th><th role="colomnheader">c2</th>
+ </tr>
+ <tr>
+ <td role="gridcell">A1</td><td role="gridcell">A2</td>
+ </tr>
+ <tr>
+ <td role="gridcell">A3</td><td role="gridcell">A4</td>
+ </tr>
+ </table>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_listbox-manual.html b/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_listbox-manual.html
new file mode 100644
index 0000000000..e1c9084fd5
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_listbox-manual.html
@@ -0,0 +1,154 @@
+<!doctype html>
+<html>
+ <head>
+ <title>combobox haspopup listbox</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COMBO_BOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HAS_POPUP"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:listbox"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXComboBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "combo box"
+ ],
+ [
+ "property",
+ "AXExpanded",
+ "is",
+ "true"
+ ],
+ [
+ "property",
+ "actions",
+ "contains",
+ "AXShowMenu"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:listbox"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_HASPOPUP"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_EXPANDED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Combobox"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "ExpandCollapse pattern"
+ ],
+ [
+ "property",
+ "ExpandCollapse.ExpandCollapseState",
+ "is",
+ "Expanded"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "combobox haspopup listbox"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for combobox haspopup listbox.</p>
+ <div aria-label="Tag" aria-haspopup="listbox" id="test" role="combobox" aria-expanded="true" aria-owns="owned_listbox">
+ <input type="text" aria-autocomplete="list" aria-controls="owned_listbox" aria-activedescendant="selected_cell">
+ <div role="option">foo</div>
+ <div role="option">baz</div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_menu-manual.html b/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_menu-manual.html
new file mode 100644
index 0000000000..a9439ed496
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_menu-manual.html
@@ -0,0 +1,154 @@
+<!doctype html>
+<html>
+ <head>
+ <title>combobox haspopup menu</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COMBO_BOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HAS_POPUP"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:menu"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXComboBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "combo box"
+ ],
+ [
+ "property",
+ "AXExpanded",
+ "is",
+ "true"
+ ],
+ [
+ "property",
+ "actions",
+ "contains",
+ "AXShowMenu"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:menu"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_HASPOPUP"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_EXPANDED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Combobox"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "ExpandCollapse pattern"
+ ],
+ [
+ "property",
+ "ExpandCollapse.ExpandCollapseState",
+ "is",
+ "Expanded"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "combobox haspopup menu"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for combobox haspopup menu.</p>
+ <div aria-label="Tag" aria-haspopup="menu" id="test" role="combobox" aria-expanded="true" aria-owns="owned_menu">
+ <input type="text" aria-autocomplete="list" aria-controls="owned_menu" aria-activedescendant="selected_cell">
+ <div role="menuitem">foo</div>
+ <div role="menuitem">baz</div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_tree-manual.html b/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_tree-manual.html
new file mode 100644
index 0000000000..a0602b520f
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_tree-manual.html
@@ -0,0 +1,171 @@
+<!doctype html>
+<html>
+ <head>
+ <title>combobox haspopup tree</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COMBO_BOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HAS_POPUP"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:tree"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXComboBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "combo box"
+ ],
+ [
+ "property",
+ "AXExpanded",
+ "is",
+ "true"
+ ],
+ [
+ "property",
+ "actions",
+ "contains",
+ "AXShowMenu"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:tree"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_HASPOPUP"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_EXPANDED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Combobox"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "ExpandCollapse pattern"
+ ],
+ [
+ "property",
+ "ExpandCollapse.ExpandCollapseState",
+ "is",
+ "Expanded"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "combobox haspopup tree"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for combobox haspopup tree.</p>
+ <div aria-label="Tag" id="test" role="combobox" aria-expanded="true" aria-owns="owned_tree" aria-haspopup="tree">
+ <input type="text" aria-autocomplete="list" aria-controls="owned_tree" aria-activedescendant="oranges">
+ <li id="fruits" role="treeitem" tabindex="0" aria-expanded="true"><span>Fruits</span>
+ <ul id="fruit-grp" role="group">
+ <li id="oranges" role="treeitem" tabindex="-1">Oranges</li>
+ <li id="apples" role="treeitem" tabindex="-1" aria-expanded="false"><span>Apples</span>
+ <ul id="apple-grp" role="group">
+ <li id="macintosh" role="treeitem" tabindex="-1">Macintosh</li>
+ <li id="granny_smith" role="treeitem" tabindex="-1" aria-expanded="false"><span>Granny Smith</span>
+ <ul id="granny-grp" role="group">
+ <li id="Washington" role="treeitem" tabindex="-1">Washington State</li>
+ <li id="Michigan" role="treeitem" tabindex="-1">Michigan</li>
+ </ul>
+ </li>
+ <li id="fuji" role="treeitem" tabindex="-1">Fuji</li>
+ </ul>
+ </li>
+ <li id="bananas" role="treeitem" tabindex="-1">Bananas</li>
+ <li id="pears" role="treeitem" tabindex="-1">Pears</li>
+ </ul>
+ </li>
+ <li id="vegetables" role="treeitem" tabindex="-1" aria-expanded="true">Vegetables</li>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_true-manual.html b/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_true-manual.html
new file mode 100644
index 0000000000..c7548ce5cd
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_true-manual.html
@@ -0,0 +1,162 @@
+<!doctype html>
+<html>
+ <head>
+ <title>combobox haspopup true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COMBO_BOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HAS_POPUP"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:true"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXComboBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "combo box"
+ ],
+ [
+ "property",
+ "AXExpanded",
+ "is",
+ "true"
+ ],
+ [
+ "property",
+ "actions",
+ "contains",
+ "AXShowMenu"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:true"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_HASPOPUP"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_EXPANDED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Combobox"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "ExpandCollapse pattern"
+ ],
+ [
+ "property",
+ "ExpandCollapse.ExpandCollapseState",
+ "is",
+ "Expanded"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "combobox haspopup true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for combobox haspopup true.</p>
+ <div aria-label="Tag" id="test" aria-haspopup="true" role="combobox" aria-expanded="true" aria-owns="owned_dialog">
+ <input type="text" aria-autocomplete="list" aria-controls="owned_dialog" aria-activedescendant="selected_cell">
+ <div role="radiogroup">
+ <div role="radio" id="selected_radio" tabindex="-1">R1</div><div role="radio" tabindex="-1">R2</div>
+ </div>
+ <div role="button" tabindex="0">ok</div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_unspecified-manual.html
new file mode 100644
index 0000000000..cd61076fb4
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/combobox_haspopup_unspecified-manual.html
@@ -0,0 +1,159 @@
+<!doctype html>
+<html>
+ <head>
+ <title>combobox haspopup unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COMBO_BOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HAS_POPUP"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:listbox"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXComboBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "combo box"
+ ],
+ [
+ "property",
+ "AXExpanded",
+ "is",
+ "true"
+ ],
+ [
+ "property",
+ "actions",
+ "contains",
+ "AXShowMenu"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:listbox"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_HASPOPUP"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_EXPANDED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Combobox"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "ExpandCollapse pattern"
+ ],
+ [
+ "property",
+ "ExpandCollapse.ExpandCollapseState",
+ "is",
+ "Expanded"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "combobox haspopup unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for combobox haspopup unspecified.</p>
+ <div aria-label="Tag" id="test" role="combobox" aria-expanded="true" aria-owns="owned_listbox">
+ <input type="text" aria-autocomplete="list" aria-controls="owned_listbox" aria-activedescendant="selected_option">
+ <li role="option">Zebra</li>
+ <li role="option" id="selected_option">Zoom</li>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/combobox_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/manual/combobox_orientation_horizontal-manual.html
new file mode 100644
index 0000000000..a5bcc700ec
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/combobox_orientation_horizontal-manual.html
@@ -0,0 +1,123 @@
+<!doctype html>
+<html>
+ <head>
+ <title>combobox orientation horizontal</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COMBO_BOX"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXComboBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "combo box"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXHorizontalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Combobox"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.Orientation",
+ "is",
+ "horizontal"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "combobox orientation horizontal"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for combobox orientation horizontal.</p>
+ <div aria-label="Tag" id="test" role="combobox" aria-orientation="horizontal" aria-expanded="true" aria-owns="owned_listbox">
+ <input type="text" aria-autocomplete="list" aria-controls="owned_listbox" aria-activedescendant="selected_option">
+ <li role="option">Zebra</li>
+ <li role="option" id="selected_option">Zoom</li>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/combobox_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/combobox_orientation_unspecified-manual.html
new file mode 100644
index 0000000000..20bd53d8d1
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/combobox_orientation_unspecified-manual.html
@@ -0,0 +1,129 @@
+<!doctype html>
+<html>
+ <head>
+ <title>combobox orientation unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COMBO_BOX"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXComboBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "combo box"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXUnknownOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Combobox"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.Orientation",
+ "isNot",
+ "vertical"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.Orientation",
+ "isNot",
+ "horizontal"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "combobox orientation unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for combobox orientation unspecified.</p>
+ <div aria-label="Tag" id="test" role="combobox" aria-expanded="true" aria-owns="owned_listbox">
+ <input type="text" aria-autocomplete="list" aria-controls="owned_listbox" aria-activedescendant="selected_option">
+ <li role="option">Zebra</li>
+ <li role="option" id="selected_option">Zoom</li>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/combobox_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/manual/combobox_orientation_vertical-manual.html
new file mode 100644
index 0000000000..189345c415
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/combobox_orientation_vertical-manual.html
@@ -0,0 +1,123 @@
+<!doctype html>
+<html>
+ <head>
+ <title>combobox orientation vertical</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COMBO_BOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXComboBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "combo box"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXVerticalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Combobox"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.Orientation",
+ "is",
+ "vertical"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "combobox orientation vertical"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for combobox orientation vertical.</p>
+ <div aria-label="Tag" id="test" role="combobox" aria-orientation="vertical" aria-expanded="true" aria-owns="owned_listbox">
+ <input type="text" aria-autocomplete="list" aria-controls="owned_listbox" aria-activedescendant="selected_option">
+ <li role="option">Zebra</li>
+ <li role="option" id="selected_option">Zoom</li>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/combobox_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/manual/combobox_readonly_false-manual.html
new file mode 100644
index 0000000000..978ab11948
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/combobox_readonly_false-manual.html
@@ -0,0 +1,149 @@
+<!doctype html>
+<html>
+ <head>
+ <title>combobox readonly false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COMBO_BOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HAS_POPUP"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXComboBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "combo box"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:listbox"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_HASPOPUP"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_EXPANDED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Combobox"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "combobox readonly false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for combobox readonly false.</p>
+ <div id="test" role="combobox" aria-readonly="false" aria-owns="myID" aria-expanded="true" aria-haspopup="listbox"><span role="textbox">option 3</span></div>
+ <div role="listbox" id="myID">
+ <div role="option">option 1</div>
+ <div role="option">option 2</div>
+ <div role="option">option 3</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/combobox_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/manual/combobox_readonly_true-manual.html
new file mode 100644
index 0000000000..26a4302c24
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/combobox_readonly_true-manual.html
@@ -0,0 +1,155 @@
+<!doctype html>
+<html>
+ <head>
+ <title>combobox readonly true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COMBO_BOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HAS_POPUP"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXComboBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "combo box"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:listbox"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_HASPOPUP"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_READONLY"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_EXPANDED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Combobox"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "combobox readonly true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for combobox readonly true.</p>
+ <div id="test" role="combobox" aria-readonly="true" aria-owns="myID" aria-expanded="true" aria-haspopup="listbox"><span role="textbox">option 3</span></div>
+ <div role="listbox" id="myID">
+ <div role="option">option 1</div>
+ <div role="option">option 2</div>
+ <div role="option">option 3</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/combobox_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/combobox_readonly_unspecified-manual.html
new file mode 100644
index 0000000000..4ad87b2c0a
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/combobox_readonly_unspecified-manual.html
@@ -0,0 +1,149 @@
+<!doctype html>
+<html>
+ <head>
+ <title>combobox readonly unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COMBO_BOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HAS_POPUP"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXComboBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "combo box"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "haspopup:listbox"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COMBOBOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_HASPOPUP"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_EXPANDED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Combobox"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "combobox readonly unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for combobox readonly unspecified.</p>
+ <div id="test" role="combobox" aria-owns="myID" aria-expanded="true" aria-haspopup="listbox"><span role="textbox">option 3</span></div>
+ <div role="listbox" id="myID">
+ <div role="option">option 1</div>
+ <div role="option">option 2</div>
+ <div role="option">option 3</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/dialog_modal_false-manual.html b/testing/web-platform/tests/wai-aria/manual/dialog_modal_false-manual.html
new file mode 100644
index 0000000000..6c906d320f
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/dialog_modal_false-manual.html
@@ -0,0 +1,127 @@
+<!doctype html>
+<html>
+ <head>
+ <title>dialog modal false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_DIALOG"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_MODAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXApplicationDialog"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "web dialog"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_DIALOG"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_MODAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_DIALOG"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Pane"
+ ],
+ [
+ "result",
+ "Window.isModal",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ },
+ {
+ "element" : "Test2",
+ "test" : {
+ "AXAPI" : [
+ [
+ "property",
+ "accessible",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ }
+ ],
+ "title" : "dialog modal false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for dialog modal false.</p>
+ <h1 id="Test2">Modal Dialog Box Test</h1>
+ <div role="dialog" aria-modal="false" id="test">
+ You have an error.
+ <input type="button" value="ok"/>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/dialog_modal_true-manual.html b/testing/web-platform/tests/wai-aria/manual/dialog_modal_true-manual.html
new file mode 100644
index 0000000000..02cbfb5fe8
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/dialog_modal_true-manual.html
@@ -0,0 +1,108 @@
+<!doctype html>
+<html>
+ <head>
+ <title>dialog modal true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_DIALOG"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_MODAL"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_DIALOG"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_MODAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_DIALOG"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Pane"
+ ],
+ [
+ "result",
+ "Window.isModal",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ },
+ {
+ "element" : "Test2",
+ "test" : {
+ "AXAPI" : [
+ [
+ "property",
+ "accessible",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ }
+ ],
+ "title" : "dialog modal true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for dialog modal true.</p>
+ <body>
+ <h1 id="Test2">Modal Dialog Box Test</h1>
+ <div role="dialog" aria-modal="true" id="test">
+ <input type="button" value="ok"/>
+ </div>
+ </body>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/dialog_modal_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/dialog_modal_unspecified-manual.html
new file mode 100644
index 0000000000..edd4605dad
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/dialog_modal_unspecified-manual.html
@@ -0,0 +1,127 @@
+<!doctype html>
+<html>
+ <head>
+ <title>dialog modal unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_DIALOG"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_MODAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXApplicationDialog"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "web dialog"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_DIALOG"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_MODAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_DIALOG"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Pane"
+ ],
+ [
+ "result",
+ "Window.isModal",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ },
+ {
+ "element" : "Test2",
+ "test" : {
+ "AXAPI" : [
+ [
+ "property",
+ "accessible",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ }
+ ],
+ "title" : "dialog modal unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for dialog modal unspecified.</p>
+ <h1 id="Test2">Modal Dialog Box Test</h1>
+ <div role="dialog" id="test">
+ You have an error.
+ <input type="button" value="ok"/>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/div_element_without_role_roledescription_valid-manual.html b/testing/web-platform/tests/wai-aria/manual/div_element_without_role_roledescription_valid-manual.html
new file mode 100644
index 0000000000..68b6cc51c7
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/div_element_without_role_roledescription_valid-manual.html
@@ -0,0 +1,128 @@
+<!doctype html>
+<html>
+ <head>
+ <title>div element without role roledescription valid</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SECTION"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "roledescription"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Text"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Hypertext"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "group"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_SECTION"
+ ],
+ [
+ "property",
+ "localizedExtendedRole",
+ "is",
+ "null"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleText2"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleHypertext2"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_GROUPING"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Group"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "div element without role roledescription valid"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for div element without role roledescription valid.</p>
+ <div aria-roledescription="foo" id="test">
+ Go Fish
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/errormessage_object_in_invalid_state-manual.html b/testing/web-platform/tests/wai-aria/manual/errormessage_object_in_invalid_state-manual.html
new file mode 100644
index 0000000000..9996568262
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/errormessage_object_in_invalid_state-manual.html
@@ -0,0 +1,100 @@
+<!doctype html>
+<html>
+ <head>
+ <title>errormessage object in invalid state</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "relation",
+ "RELATION_ERROR_MESSAGE",
+ "is",
+ "[error]"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXValidationError",
+ "is",
+ "You did not enter a valid date!"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "properties",
+ "relations",
+ "contains",
+ "IA2_RELATION_ERROR_MESSAGE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "IUIAutomationElement.ControllerFor",
+ "is",
+ "error"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ },
+ {
+ "element" : "error",
+ "test" : {
+ "ATK" : [
+ [
+ "relation",
+ "RELATION_ERROR_FOR",
+ "is",
+ "[test]"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "relations",
+ "contains",
+ "IA2_RELATION_ERROR_FOR"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ }
+ ],
+ "title" : "errormessage object in invalid state"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for errormessage object in invalid state.</p>
+ <div role="form">
+ <label for="test">date</label><input type="text" id="test" value="foo" aria-invalid="true" aria-errormessage="error">
+ <label for="test1">surname</label><input type="text" id="test1">
+ </div>
+ <div id="error">
+ You did not enter a valid date!
+ </div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/errormessage_object_in_valid_state-manual.html b/testing/web-platform/tests/wai-aria/manual/errormessage_object_in_valid_state-manual.html
new file mode 100644
index 0000000000..7c194c6d0a
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/errormessage_object_in_valid_state-manual.html
@@ -0,0 +1,100 @@
+<!doctype html>
+<html>
+ <head>
+ <title>errormessage object in valid state</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "relations",
+ "doesNotContain",
+ "RELATION_ERROR_MESSAGE"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXValidationError",
+ "is",
+ "<nil>"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "relations",
+ "doesNotContain",
+ "IA2_RELATION_ERROR"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "IUIAutomationElement.ControllerFor",
+ "is",
+ ""
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ },
+ {
+ "element" : "error",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "relations",
+ "doesNotContain",
+ "RELATION_ERROR_FOR"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "relations",
+ "doesNotContain",
+ "IA2_RELATION_ERROR_FOR"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ }
+ ],
+ "title" : "errormessage object in valid state"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for errormessage object in valid state.</p>
+ <div role="form">
+ <label for="test">date</label><input type="text" id="test" value="April 12" aria-invalid="false" aria-errormessage="error">
+ <label for="test1">surname</label><input type="text" id="test1">
+ </div>
+ <div id="error">
+ You did not enter a valid date!
+ </div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/feed-manual.html b/testing/web-platform/tests/wai-aria/manual/feed-manual.html
new file mode 100644
index 0000000000..91fc6778db
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/feed-manual.html
@@ -0,0 +1,105 @@
+<!doctype html>
+<html>
+ <head>
+ <title>feed</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PANEL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:feed"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXApplicationGroup"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "feed"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:feed"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_GROUPING"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Group"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "feed"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "feed"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for feed.</p>
+ <section role="feed" id="test">
+ <article>This is article 1</article>
+ <div role="article">This is article 2</div>
+ </section>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/figure-manual.html b/testing/web-platform/tests/wai-aria/manual/figure-manual.html
new file mode 100644
index 0000000000..d60973527a
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/figure-manual.html
@@ -0,0 +1,106 @@
+<!doctype html>
+<html>
+ <head>
+ <title>figure</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PANEL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:figure"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "figure"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:figure"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_GROUPING"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Group"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "figure"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "figure"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for figure.</p>
+ <div role="figure" id="test">
+ <img src="foo.jpg" aria-label="fake image"/>
+ <img src="baz.jpg" aria-label="really fake image">
+ </div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/grid_aria-readonly_false_automatically_propagated-manual.html b/testing/web-platform/tests/wai-aria/manual/grid_aria-readonly_false_automatically_propagated-manual.html
new file mode 100644
index 0000000000..d373a3023e
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/grid_aria-readonly_false_automatically_propagated-manual.html
@@ -0,0 +1,249 @@
+<!doctype html>
+<html>
+ <head>
+ <title>grid aria-readonly false automatically propagated</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "TableCell"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "selectionitem"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ },
+ {
+ "element" : "test1",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COLUMN_HEADER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ },
+ {
+ "element" : "test2",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ROW_HEADER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROWHEADER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 3",
+ "type" : "test"
+ }
+ ],
+ "title" : "grid aria-readonly false automatically propagated"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for grid aria-readonly false automatically propagated.</p>
+ <div role="grid" aria-readonly="false">
+ <div role="row">
+ <div id="test1" role="columnheader">c1</div>
+ <div role="columnheader">c2</div>
+ </div>
+ <div role="row">
+ <div id="test2" role="rowheader">rh1</div>
+ <div id="test" role="gridcell">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/grid_aria-readonly_true_automatically_propagated-manual.html b/testing/web-platform/tests/wai-aria/manual/grid_aria-readonly_true_automatically_propagated-manual.html
new file mode 100644
index 0000000000..7b6a22e292
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/grid_aria-readonly_true_automatically_propagated-manual.html
@@ -0,0 +1,249 @@
+<!doctype html>
+<html>
+ <head>
+ <title>grid aria-readonly true automatically propagated</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_READ_ONLY"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "TableCell"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "SelectionItem"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ },
+ {
+ "element" : "test1",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COLUMN_HEADER"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ },
+ {
+ "element" : "test2",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ROW_HEADER"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROWHEADER"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 3",
+ "type" : "test"
+ }
+ ],
+ "title" : "grid aria-readonly true automatically propagated"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for grid aria-readonly true automatically propagated.</p>
+ <div role="grid" aria-readonly="true">
+ <div role="row">
+ <div id="test1" role="columnheader">c1</div>
+ <div role="columnheader">c2</div>
+ </div>
+ <div role="row">
+ <div id="test2" role="rowheader">rh1</div>
+ <div id="test" role="gridcell">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/grid_busy_false-manual.html b/testing/web-platform/tests/wai-aria/manual/grid_busy_false-manual.html
new file mode 100644
index 0000000000..48edba5bf7
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/grid_busy_false-manual.html
@@ -0,0 +1,163 @@
+<!doctype html>
+<html>
+ <head>
+ <title>grid busy false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:grid"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Table"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Selection"
+ ],
+ [
+ "result",
+ "atk_selection_clear_selection()",
+ "is",
+ "false"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_BUSY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTable"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "table"
+ ],
+ [
+ "property",
+ "AXElementBusy",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:grid"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTable2"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TABLE"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_BUSY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataGrid"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "selection pattern"
+ ],
+ [
+ "result",
+ "AriaProperties.busy",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "grid busy false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for grid busy false.</p>
+ <div role="grid" aria-busy="false" id="test">
+ <div role="row">
+ <div role="columnheader">shoes</div>
+ <div role="columnheader">shirts</div>
+ </div>
+ <div role="row">
+ <div role="gridcell">loafers</div>
+ <div role="gridcell">polo</div>
+ </div>
+ <div role="row">
+ <div role="gridcell">laced</div>
+ <div role="gridcell">rugby</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/grid_busy_true-manual.html b/testing/web-platform/tests/wai-aria/manual/grid_busy_true-manual.html
new file mode 100644
index 0000000000..ddcdf0198f
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/grid_busy_true-manual.html
@@ -0,0 +1,157 @@
+<!doctype html>
+<html>
+ <head>
+ <title>grid busy true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:grid"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Table"
+ ],
+ [
+ "result",
+ "atk_selection_clear_selection()",
+ "is",
+ "false"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_BUSY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTable"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "table"
+ ],
+ [
+ "property",
+ "AXElementBusy",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:grid"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTable2"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_BUSY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataGrid"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "selection pattern"
+ ],
+ [
+ "result",
+ "AriaProperties.busy",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "grid busy true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for grid busy true.</p>
+ <div role="grid" aria-busy="true" id="test">
+ <div role="row">
+ <div role="columnheader">shoes</div>
+ <div role="columnheader">shirts</div>
+ </div>
+ <div role="row">
+ <div role="gridcell">loafers</div>
+ <div role="gridcell">polo</div>
+ </div>
+ <div role="row">
+ <div role="gridcell">laced</div>
+ <div role="gridcell">rugby</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/grid_busy_value_changes-manual.html b/testing/web-platform/tests/wai-aria/manual/grid_busy_value_changes-manual.html
new file mode 100644
index 0000000000..4891198882
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/grid_busy_value_changes-manual.html
@@ -0,0 +1,200 @@
+<!doctype html>
+<html>
+ <head>
+ <title>grid busy value changes</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "attribute" : "aria-busy",
+ "element" : "test",
+ "title" : "step 1",
+ "type" : "attribute",
+ "value" : "\"true\""
+ },
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "event",
+ "type",
+ "is",
+ "object:state-changed:busy"
+ ],
+ [
+ "event",
+ "detail1",
+ "is",
+ "1"
+ ],
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:grid"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Table"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Selection"
+ ],
+ [
+ "result",
+ "atk_selection_clear_selection()",
+ "is",
+ "false"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_BUSY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "event",
+ "type",
+ "is",
+ "AXElementBusyChanged"
+ ],
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTable"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "table"
+ ],
+ [
+ "property",
+ "AXElementBusy",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:grid"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTable2"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "event",
+ "type",
+ "is",
+ "EVENT_OBJECT_STATECHANGE"
+ ],
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_BUSY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "event",
+ "type",
+ "is",
+ "PropertyChangedEvent"
+ ],
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataGrid"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "selection pattern"
+ ],
+ [
+ "result",
+ "AriaProperties.busy",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ }
+ ],
+ "title" : "grid busy value changes"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for grid busy value changes.</p>
+ <div role="grid" aria-busy="false" id="test">
+ <div role="row">
+ <div role="columnheader">shoes</div>
+ <div role="columnheader">shirts</div>
+ </div>
+ <div role="row">
+ <div role="gridcell">loafers</div>
+ <div role="gridcell">polo</div>
+ </div>
+ <div role="row">
+ <div role="gridcell">laced</div>
+ <div role="gridcell">rugby</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/grid_colcount_8-manual.html b/testing/web-platform/tests/wai-aria/manual/grid_colcount_8-manual.html
new file mode 100644
index 0000000000..0f03b12605
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/grid_colcount_8-manual.html
@@ -0,0 +1,130 @@
+<!doctype html>
+<html>
+ <head>
+ <title>grid colcount 8</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:grid"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colcount:8"
+ ],
+ [
+ "result",
+ "atk_table_get_n_columns()",
+ "is",
+ "8"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTable"
+ ],
+ [
+ "property",
+ "AXARIAColumnCount",
+ "is",
+ "8"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TABLE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTable2"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:grid"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colcount:8"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataGrid"
+ ],
+ [
+ "property",
+ "DataGrid.ColumnCount",
+ "is",
+ "8"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "grid colcount 8"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for grid colcount 8.</p>
+ <div role="grid" id="test" aria-colcount="8">
+ <div role="row">
+ <div role="gridcell" aria-colindex="4">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/grid_columnheader_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/manual/grid_columnheader_readonly_false-manual.html
new file mode 100644
index 0000000000..bb8dd34a92
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/grid_columnheader_readonly_false-manual.html
@@ -0,0 +1,112 @@
+<!doctype html>
+<html>
+ <head>
+ <title>grid columnheader readonly false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COLUMN_HEADER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "grid columnheader readonly false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for grid columnheader readonly false.</p>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="columnheader" aria-readonly="false">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/grid_columnheader_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/manual/grid_columnheader_readonly_true-manual.html
new file mode 100644
index 0000000000..a81e4cbdce
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/grid_columnheader_readonly_true-manual.html
@@ -0,0 +1,106 @@
+<!doctype html>
+<html>
+ <head>
+ <title>grid columnheader readonly true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COLUMN_HEADER"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "grid columnheader readonly true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for grid columnheader readonly true.</p>
+ <div role="grid" >
+ <div role="row">
+ <div id="test" role="columnheader" aria-readonly="true">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/grid_columnheader_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/grid_columnheader_readonly_unspecified-manual.html
new file mode 100644
index 0000000000..d45d3b9ca7
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/grid_columnheader_readonly_unspecified-manual.html
@@ -0,0 +1,98 @@
+<!doctype html>
+<html>
+ <head>
+ <title>grid columnheader readonly unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COLUMN_HEADER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "grid columnheader readonly unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for grid columnheader readonly unspecified.</p>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="columnheader">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/grid_columnheader_required_false-manual.html b/testing/web-platform/tests/wai-aria/manual/grid_columnheader_required_false-manual.html
new file mode 100644
index 0000000000..b8f7ae332c
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/grid_columnheader_required_false-manual.html
@@ -0,0 +1,106 @@
+<!doctype html>
+<html>
+ <head>
+ <title>grid columnheader required false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COLUMN_HEADER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_REQUIRED"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXRequired",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_REQUIRED"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "IsrequiredForForm",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "grid columnheader required false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for grid columnheader required false.</p>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="columnheader" aria-required="false">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/grid_columnheader_required_true-manual.html b/testing/web-platform/tests/wai-aria/manual/grid_columnheader_required_true-manual.html
new file mode 100644
index 0000000000..76155ab905
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/grid_columnheader_required_true-manual.html
@@ -0,0 +1,106 @@
+<!doctype html>
+<html>
+ <head>
+ <title>grid columnheader required true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COLUMN_HEADER"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_REQUIRED"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXRequired",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_REQUIRED"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "IsrequiredForForm",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "grid columnheader required true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for grid columnheader required true.</p>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="columnheader" aria-required="true">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/grid_columnheader_required_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/grid_columnheader_required_unspecified-manual.html
new file mode 100644
index 0000000000..491cbed6f2
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/grid_columnheader_required_unspecified-manual.html
@@ -0,0 +1,106 @@
+<!doctype html>
+<html>
+ <head>
+ <title>grid columnheader required unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_COLUMN_HEADER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_REQUIRED"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXRequired",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_REQUIRED"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_COLUMNHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "IsrequiredForForm",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "grid columnheader required unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for grid columnheader required unspecified.</p>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="columnheader">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/grid_rowcount_3-manual.html b/testing/web-platform/tests/wai-aria/manual/grid_rowcount_3-manual.html
new file mode 100644
index 0000000000..3079b59b4d
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/grid_rowcount_3-manual.html
@@ -0,0 +1,132 @@
+<!doctype html>
+<html>
+ <head>
+ <title>grid rowcount 3</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:grid"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowcount:3"
+ ],
+ [
+ "result",
+ "atk_table_get_n_rows()",
+ "is",
+ "3"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTable"
+ ],
+ [
+ "property",
+ "AXARIARowCount",
+ "is",
+ "3"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TABLE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTable2"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:grid"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowcount:3"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataGrid"
+ ],
+ [
+ "property",
+ "DataGrid.RowCount",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "grid rowcount 3"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for grid rowcount 3.</p>
+ <div role='grid' id='test' aria-rowcount='3' aria-colcount='2'>
+ <div role='row'>
+ <span role='gridcell'>
+ <button>hello</button>
+ </span>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/grid_rowheader_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/manual/grid_rowheader_readonly_false-manual.html
new file mode 100644
index 0000000000..883918fd04
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/grid_rowheader_readonly_false-manual.html
@@ -0,0 +1,98 @@
+<!doctype html>
+<html>
+ <head>
+ <title>grid rowheader readonly false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ROW_HEADER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROWHEADER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "grid rowheader readonly false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for grid rowheader readonly false.</p>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="rowheader" aria-readonly="false">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/grid_rowheader_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/manual/grid_rowheader_readonly_true-manual.html
new file mode 100644
index 0000000000..5d53c3624c
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/grid_rowheader_readonly_true-manual.html
@@ -0,0 +1,98 @@
+<!doctype html>
+<html>
+ <head>
+ <title>grid rowheader readonly true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ROW_HEADER"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROWHEADER"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "grid rowheader readonly true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for grid rowheader readonly true.</p>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="rowheader" aria-readonly="true">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/grid_rowheader_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/grid_rowheader_readonly_unspecified-manual.html
new file mode 100644
index 0000000000..f9321cac10
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/grid_rowheader_readonly_unspecified-manual.html
@@ -0,0 +1,98 @@
+<!doctype html>
+<html>
+ <head>
+ <title>grid rowheader readonly unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ROW_HEADER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROWHEADER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "grid rowheader readonly unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for grid rowheader readonly unspecified.</p>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="rowheader">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/grid_rowheader_required_false-manual.html b/testing/web-platform/tests/wai-aria/manual/grid_rowheader_required_false-manual.html
new file mode 100644
index 0000000000..4fafba50a9
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/grid_rowheader_required_false-manual.html
@@ -0,0 +1,106 @@
+<!doctype html>
+<html>
+ <head>
+ <title>grid rowheader required false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ROW_HEADER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_REQUIRED"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXRequired",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROWHEADER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_REQUIRED"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROWHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "IsrequiredForForm",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "grid rowheader required false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for grid rowheader required false.</p>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="rowheader" aria-required="false">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/grid_rowheader_required_true-manual.html b/testing/web-platform/tests/wai-aria/manual/grid_rowheader_required_true-manual.html
new file mode 100644
index 0000000000..0f14d2dea8
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/grid_rowheader_required_true-manual.html
@@ -0,0 +1,106 @@
+<!doctype html>
+<html>
+ <head>
+ <title>grid rowheader required true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ROW_HEADER"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_REQUIRED"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXRequired",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROWHEADER"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_REQUIRED"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROWHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "IsrequiredForForm",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "grid rowheader required true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for grid rowheader required true.</p>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="rowheader" aria-required="true">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/grid_rowheader_required_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/grid_rowheader_required_unspecified-manual.html
new file mode 100644
index 0000000000..208f0c5e56
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/grid_rowheader_required_unspecified-manual.html
@@ -0,0 +1,106 @@
+<!doctype html>
+<html>
+ <head>
+ <title>grid rowheader required unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ROW_HEADER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_REQUIRED"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXRequired",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROWHEADER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_REQUIRED"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROWHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "IsrequiredForForm",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "grid rowheader required unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for grid rowheader required unspecified.</p>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="rowheader">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/gridcell_aria-colspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/manual/gridcell_aria-colspan_2_on_div-manual.html
new file mode 100644
index 0000000000..c151087767
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/gridcell_aria-colspan_2_on_div-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>gridcell aria-colspan 2 on div</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colspan:2"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "contains",
+ "column_span=2"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXColumnIndexRange.length",
+ "is",
+ "2"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colspan:2"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "DataItem.ColumnSpan",
+ "is",
+ "2"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "gridcell aria-colspan 2 on div"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for gridcell aria-colspan 2 on div.</p>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="gridcell" aria-colspan="2">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/gridcell_aria-rowspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/manual/gridcell_aria-rowspan_2_on_div-manual.html
new file mode 100644
index 0000000000..318709b360
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/gridcell_aria-rowspan_2_on_div-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>gridcell aria-rowspan 2 on div</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowspan:2"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "contains",
+ "row_span=2"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXRowIndexRange.length",
+ "is",
+ "2"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowspan:2"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "DataItem.RowSpan",
+ "is",
+ "2"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "gridcell aria-rowspan 2 on div"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for gridcell aria-rowspan 2 on div.</p>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="gridcell" aria-rowspan="2">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/gridcell_colindex_4-manual.html b/testing/web-platform/tests/wai-aria/manual/gridcell_colindex_4-manual.html
new file mode 100644
index 0000000000..6ef4fb3a16
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/gridcell_colindex_4-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>gridcell colindex 4</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colindex:4"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_position()",
+ "contains",
+ "column=3"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXARIAColumnIndex",
+ "is",
+ "4"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colindex:4"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "DataItem.Column",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "gridcell colindex 4"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for gridcell colindex 4.</p>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="gridcell" aria-colindex="4" aria-colcount="8">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/gridcell_rowindex_4-manual.html b/testing/web-platform/tests/wai-aria/manual/gridcell_rowindex_4-manual.html
new file mode 100644
index 0000000000..8b9daaa703
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/gridcell_rowindex_4-manual.html
@@ -0,0 +1,112 @@
+<!doctype html>
+<html>
+ <head>
+ <title>gridcell rowindex 4</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowindex:4"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_position()",
+ "contains",
+ "row=3"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXARIARowIndex",
+ "is",
+ "4"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowindex:4"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "DataItem.Row",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "gridcell rowindex 4"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for gridcell rowindex 4.</p>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="gridcell" aria-rowindex="4">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/group_hidden_undefined_element_not_rendered-manual.html b/testing/web-platform/tests/wai-aria/manual/group_hidden_undefined_element_not_rendered-manual.html
new file mode 100644
index 0000000000..ef947859db
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/group_hidden_undefined_element_not_rendered-manual.html
@@ -0,0 +1,80 @@
+<!doctype html>
+<html>
+ <head>
+ <title>group hidden undefined element not rendered</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "accessible",
+ "is",
+ "false"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "accessible",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "accessible",
+ "is",
+ "false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "accessible",
+ "is",
+ "false"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "accessible",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "group hidden undefined element not rendered"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for group hidden undefined element not rendered.</p>
+ <div role="group" id="test" style="display:none">
+ Some invisible group content
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/group_hidden_undefined_element_rendered-manual.html b/testing/web-platform/tests/wai-aria/manual/group_hidden_undefined_element_rendered-manual.html
new file mode 100644
index 0000000000..92c067c216
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/group_hidden_undefined_element_rendered-manual.html
@@ -0,0 +1,116 @@
+<!doctype html>
+<html>
+ <head>
+ <title>group hidden undefined element rendered</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PANEL"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "hidden"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXApplicationGroup"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "group"
+ ],
+ [
+ "property",
+ "hidden",
+ "is",
+ "<nil>"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_GROUPING"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "hidden:false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_GROUPING"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Group"
+ ],
+ [
+ "property",
+ "AriaProperties.hidden",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "group hidden undefined element rendered"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for group hidden undefined element rendered.</p>
+ <div role="group" id="test">
+ Some group content
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/heading_level_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/heading_level_unspecified-manual.html
new file mode 100644
index 0000000000..819bc7b60c
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/heading_level_unspecified-manual.html
@@ -0,0 +1,120 @@
+<!doctype html>
+<html>
+ <head>
+ <title>heading level unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_HEADING"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "level:2"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXHeading"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "heading"
+ ],
+ [
+ "property",
+ "AXValue",
+ "is",
+ "2"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_HEADING"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "level:2"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:heading"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Text"
+ ],
+ [
+ "property",
+ "StyleId_Heading",
+ "is",
+ "2"
+ ],
+ [
+ "property",
+ "AriaProperties.level",
+ "is",
+ "2"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "heading level unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for heading level unspecified.</p>
+ <div role="heading" id="test">
+ Go Fish
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/keyshortcuts_multiple_shortcuts-manual.html b/testing/web-platform/tests/wai-aria/manual/keyshortcuts_multiple_shortcuts-manual.html
new file mode 100644
index 0000000000..ce4074a4f2
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/keyshortcuts_multiple_shortcuts-manual.html
@@ -0,0 +1,82 @@
+<!doctype html>
+<html>
+ <head>
+ <title>keyshortcuts multiple shortcuts</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PUSH_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "keyshortcuts:Shift+Space Alt+Space"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "accKeyboardShortcut",
+ "is",
+ "Shift+Space Alt+Space"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "AcceleratorKey",
+ "is",
+ "Shift+Space Alt+Space"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "keyshortcuts multiple shortcuts"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for keyshortcuts multiple shortcuts.</p>
+ <body>
+ <div id="test" tabindex="0" role="button" aria-keyshortcuts="Shift+Space Alt+Space">Submit</h1>
+ </body>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/keyshortcuts_one_shortcut-manual.html b/testing/web-platform/tests/wai-aria/manual/keyshortcuts_one_shortcut-manual.html
new file mode 100644
index 0000000000..d0238dbf20
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/keyshortcuts_one_shortcut-manual.html
@@ -0,0 +1,82 @@
+<!doctype html>
+<html>
+ <head>
+ <title>keyshortcuts one shortcut</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PUSH_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "keyshortcuts:Shift+Space"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PUSHBUTTON"
+ ],
+ [
+ "property",
+ "accKeyboardShortcut",
+ "is",
+ "Shift+Space"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "AcceleratorKey",
+ "is",
+ "Shift+Space"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "keyshortcuts one shortcut"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for keyshortcuts one shortcut.</p>
+ <body>
+ <div id="test" tabindex="0" role="button" aria-keyshortcuts="Shift+Space">Submit</h1>
+ </body>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/listbox_busy_false-manual.html b/testing/web-platform/tests/wai-aria/manual/listbox_busy_false-manual.html
new file mode 100644
index 0000000000..9f6b8b36a8
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/listbox_busy_false-manual.html
@@ -0,0 +1,121 @@
+<!doctype html>
+<html>
+ <head>
+ <title>listbox busy false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_LIST_BOX"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Selection"
+ ],
+ [
+ "result",
+ "atk_selection_clear_selection()",
+ "is",
+ "false"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_BUSY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXList"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "list"
+ ],
+ [
+ "property",
+ "AXElementBusy",
+ "is",
+ "false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LISTBOX"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_BUSY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "List"
+ ],
+ [
+ "result",
+ "AriaProperties.busy",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "listbox busy false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for listbox busy false.</p>
+ <ul role="listbox" aria-busy="false" id="test">
+ <li role="option">option 1</li>
+ <li role="option">option 2</li>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/listbox_busy_true-manual.html b/testing/web-platform/tests/wai-aria/manual/listbox_busy_true-manual.html
new file mode 100644
index 0000000000..c8388f7add
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/listbox_busy_true-manual.html
@@ -0,0 +1,109 @@
+<!doctype html>
+<html>
+ <head>
+ <title>listbox busy true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_LIST_BOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_BUSY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXList"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "list"
+ ],
+ [
+ "property",
+ "AXElementBusy",
+ "is",
+ "true"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LISTBOX"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_BUSY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "List"
+ ],
+ [
+ "result",
+ "AriaProperties.busy",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "listbox busy true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for listbox busy true.</p>
+ <ul role="listbox" aria-busy="true" id="test">
+ <li role="option">option 1</li>
+ <li role="option">option 2</li>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/listbox_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/manual/listbox_orientation_horizontal-manual.html
new file mode 100644
index 0000000000..c718a54eaf
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/listbox_orientation_horizontal-manual.html
@@ -0,0 +1,128 @@
+<!doctype html>
+<html>
+ <head>
+ <title>listbox orientation horizontal</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_LIST_BOX"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Selection"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXList"
+ ],
+ [
+ "property",
+ "AXsubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "list"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXHorizontalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LIST"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "List"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.Orientation",
+ "is",
+ "horizontal"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "listbox orientation horizontal"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for listbox orientation horizontal.</p>
+ <div id="test" aria-orientation="horizontal" tabindex="0" role="listbox" >
+ <div role="option">option 1</div>
+ <div role="option">option 2</div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/listbox_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/listbox_orientation_unspecified-manual.html
new file mode 100644
index 0000000000..7dd2762d6d
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/listbox_orientation_unspecified-manual.html
@@ -0,0 +1,128 @@
+<!doctype html>
+<html>
+ <head>
+ <title>listbox orientation unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_LIST_BOX"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Selection"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXList"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "list"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXVerticalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LIST"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "List"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.Orientation",
+ "is",
+ "vertical"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "listbox orientation unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for listbox orientation unspecified.</p>
+ <div id="test" tabindex="0" role="listbox" >
+ <div role="option">option 1</div>
+ <div role="option">option 2</div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/listbox_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/manual/listbox_orientation_vertical-manual.html
new file mode 100644
index 0000000000..8bcca037d3
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/listbox_orientation_vertical-manual.html
@@ -0,0 +1,128 @@
+<!doctype html>
+<html>
+ <head>
+ <title>listbox orientation vertical</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_LIST_BOX"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Selection"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXList"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "list"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXVerticalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LIST"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "List"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.Orientation",
+ "is",
+ "vertical"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "listbox orientation vertical"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for listbox orientation vertical.</p>
+ <div id="test" aria-orientation="vertical" tabindex="0" role="listbox" >
+ <div role="option">option 1</div>
+ <div role="option">option 2</div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/listbox_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/manual/listbox_readonly_false-manual.html
new file mode 100644
index 0000000000..b3bde923a4
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/listbox_readonly_false-manual.html
@@ -0,0 +1,124 @@
+<!doctype html>
+<html>
+ <head>
+ <title>listbox readonly false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_LIST_BOX"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Selection"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXList"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "list"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LIST"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LIST"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "List"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "listbox readonly false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for listbox readonly false.</p>
+ <div id="test" aria-readonly="false" role="listbox">
+ <div role="option">option 1</div>
+ <div role="option">option 2</div>
+ <div role="option">option 3</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/listbox_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/manual/listbox_readonly_true-manual.html
new file mode 100644
index 0000000000..30213919e4
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/listbox_readonly_true-manual.html
@@ -0,0 +1,130 @@
+<!doctype html>
+<html>
+ <head>
+ <title>listbox readonly true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_LIST_BOX"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Selection"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXList"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "list"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LIST"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LIST"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "List"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "listbox readonly true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for listbox readonly true.</p>
+ <div id="test" aria-readonly="true" role="listbox">
+ <div role="option">option 1</div>
+ <div role="option">option 2</div>
+ <div role="option">option 3</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/listbox_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/listbox_readonly_unspecified-manual.html
new file mode 100644
index 0000000000..9283ad2404
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/listbox_readonly_unspecified-manual.html
@@ -0,0 +1,124 @@
+<!doctype html>
+<html>
+ <head>
+ <title>listbox readonly unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_LIST_BOX"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Selection"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXList"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "list"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LIST"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LIST"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "List"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "listbox readonly unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for listbox readonly unspecified.</p>
+ <div id="test" role="listbox">
+ <div role="option">option 1</div>
+ <div role="option">option 2</div>
+ <div role="option">option 3</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/listitem_setsize_-1-manual.html b/testing/web-platform/tests/wai-aria/manual/listitem_setsize_-1-manual.html
new file mode 100644
index 0000000000..7537a4bcd7
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/listitem_setsize_-1-manual.html
@@ -0,0 +1,134 @@
+<!doctype html>
+<html>
+ <head>
+ <title>listitem setsize -1</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_LIST_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_EDITABLE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "setsize:-1"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "group"
+ ],
+ [
+ "property",
+ "AXARIASetSize",
+ "is",
+ "-1"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "setsize:-1"
+ ],
+ [
+ "property",
+ "groupPosition",
+ "contains",
+ "similarItemsInGroup:-1"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LISTITEM"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "ListItem"
+ ],
+ [
+ "property",
+ "AriaProperties.setsize",
+ "is",
+ "-1"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "SelectionItem"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "listitem setsize -1"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for listitem setsize -1.</p>
+ <div role="list">
+ <div id="test" role="listitem" aria-setsize="-1">test cell</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menu_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/manual/menu_orientation_horizontal-manual.html
new file mode 100644
index 0000000000..184c42052e
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menu_orientation_horizontal-manual.html
@@ -0,0 +1,123 @@
+<!doctype html>
+<html>
+ <head>
+ <title>menu orientation horizontal</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_MENU"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXMenu"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "menu"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXHorizontalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_MENUPOPUP"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_MENUPOPUP"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Menu"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.Orientation",
+ "is",
+ "horizontal"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "menu orientation horizontal"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for menu orientation horizontal.</p>
+ <ul id="test" role="menu" aria-orientation="horizontal">
+ <li role="menuitem">File</file>
+ <li role="menuitem">Edit</file>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menu_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/menu_orientation_unspecified-manual.html
new file mode 100644
index 0000000000..07e8e691b9
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menu_orientation_unspecified-manual.html
@@ -0,0 +1,122 @@
+<!doctype html>
+<html>
+ <head>
+ <title>menu orientation unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_MENU"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXMenu"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "menu"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXVerticalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_MENUPOPUP"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Menu"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.Orientation",
+ "is",
+ "vertical"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "menu orientation unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for menu orientation unspecified.</p>
+ <div id="test" tabindex="0" role="menu" >
+ <div role="menuitem">option 1</div>
+ <div role="menuitem">option 2</div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menu_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/manual/menu_orientation_vertical-manual.html
new file mode 100644
index 0000000000..10a65e997d
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menu_orientation_vertical-manual.html
@@ -0,0 +1,123 @@
+<!doctype html>
+<html>
+ <head>
+ <title>menu orientation vertical</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_MENU"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_VERTICAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXMenu"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "menu"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXVerticalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_MENUPOPUP"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_MENUPOPUP"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Menu"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.Orientation",
+ "is",
+ "vertical"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "menu orientation vertical"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for menu orientation vertical.</p>
+ <ul id="test" role="menu" aria-orientation="vertical">
+ <li role="menuitem">File</file>
+ <li role="menuitem">Edit</file>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menubar_busy_false-manual.html b/testing/web-platform/tests/wai-aria/manual/menubar_busy_false-manual.html
new file mode 100644
index 0000000000..8224d79b87
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menubar_busy_false-manual.html
@@ -0,0 +1,130 @@
+<!doctype html>
+<html>
+ <head>
+ <title>menubar busy false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_MENU_BAR"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:menubar"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_BUSY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXMenuBar"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "menu bar"
+ ],
+ [
+ "property",
+ "AXElementBusy",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:menubar"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_MENUBAR"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_BUSY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "MenuBar"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "selection pattern"
+ ],
+ [
+ "property",
+ "AriaProperties.busy",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "menubar busy false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for menubar busy false.</p>
+ <div role="menubar" aria-busy="false" id="test">
+ <div role="menuitem">File</div>
+ <div role="menuitem">Edit</div>
+ <div role="menuitem">View</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menubar_busy_true-manual.html b/testing/web-platform/tests/wai-aria/manual/menubar_busy_true-manual.html
new file mode 100644
index 0000000000..b1695dcef4
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menubar_busy_true-manual.html
@@ -0,0 +1,130 @@
+<!doctype html>
+<html>
+ <head>
+ <title>menubar busy true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_MENU_BAR"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:menubar"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_BUSY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXMenuBar"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "menu bar"
+ ],
+ [
+ "property",
+ "AXElementBusy",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:menubar"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_MENUBAR"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_BUSY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "MenuBar"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "selection pattern"
+ ],
+ [
+ "result",
+ "AriaProperties.busy",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "menubar busy true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for menubar busy true.</p>
+ <div role="menubar" aria-busy="true" id="test">
+ <div role="menuitem">File</div>
+ <div role="menuitem">Edit</div>
+ <div role="menuitem">View</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menubar_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/manual/menubar_orientation_horizontal-manual.html
new file mode 100644
index 0000000000..e47a68e81a
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menubar_orientation_horizontal-manual.html
@@ -0,0 +1,123 @@
+<!doctype html>
+<html>
+ <head>
+ <title>menubar orientation horizontal</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_MENU_BAR"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXMenuBar"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "menu bar"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXHorizontalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_MENUBAR"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_MENUBAR"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "MenuBar"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.Orientation",
+ "is",
+ "horizontal"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "menubar orientation horizontal"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for menubar orientation horizontal.</p>
+ <ul id="test" role="menubar" aria-orientation="horizontal">
+ <li role="menuitem">File</file>
+ <li role="menuitem">Edit</file>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menubar_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/menubar_orientation_unspecified-manual.html
new file mode 100644
index 0000000000..0e945ae26f
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menubar_orientation_unspecified-manual.html
@@ -0,0 +1,123 @@
+<!doctype html>
+<html>
+ <head>
+ <title>menubar orientation unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_MENU_BAR"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXMenuBar"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "menu bar"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXHorizontalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_MENUBAR"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_MENUBAR"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "MenuBar"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.Orientation",
+ "is",
+ "horizontal"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "menubar orientation unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for menubar orientation unspecified.</p>
+ <ul id="test" role="menubar">
+ <li role="menuitem">File</file>
+ <li role="menuitem">Edit</file>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menubar_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/manual/menubar_orientation_vertical-manual.html
new file mode 100644
index 0000000000..c0830abc7f
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menubar_orientation_vertical-manual.html
@@ -0,0 +1,111 @@
+<!doctype html>
+<html>
+ <head>
+ <title>menubar orientation vertical</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_MENU_BAR"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_VERTICAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXMenuBar"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "menu bar"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXVerticalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_VERTICAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_MENUBAR"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "MenuBar"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.Orientation",
+ "is",
+ "vertical"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "menubar orientation vertical"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for menubar orientation vertical.</p>
+ <ul id="test" role="menubar" aria-orientation="vertical">
+ <li role="menuitem">File</file>
+ <li role="menuitem">Edit</file>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menuitem_expanded_false-manual.html b/testing/web-platform/tests/wai-aria/manual/menuitem_expanded_false-manual.html
new file mode 100644
index 0000000000..7e5ca5485b
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menuitem_expanded_false-manual.html
@@ -0,0 +1,78 @@
+<!doctype html>
+<html>
+ <head>
+ <title>aria-expanded=false on a menuitem</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDABLE"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_EXPANDED"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXExpanded",
+ "is",
+ "NO"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_COLLAPSED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ExpandCollapse.ExpandCollapseState",
+ "is",
+ "Collapsed"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "aria-expanded=false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for aria-expanded=false on a menuitem.</p>
+ <div role='menu'>
+ <div role='menuitem' id='test' aria-expanded='false'>item 1</div>
+ <div role='menuitem'>item 2</div>
+ </div>
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menuitem_expanded_true-manual.html b/testing/web-platform/tests/wai-aria/manual/menuitem_expanded_true-manual.html
new file mode 100644
index 0000000000..a9d9b5df35
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menuitem_expanded_true-manual.html
@@ -0,0 +1,82 @@
+<!doctype html>
+<html>
+ <head>
+ <title>aria-expanded=true on a menuitem</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDED"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXExpanded",
+ "is",
+ "YES"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_EXPANDED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ExpandCollapse.ExpandCollapseState",
+ "is",
+ "Expanded"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "aria-expanded=true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for aria-expanded=true on a menuitem.</p>
+ <div role='menu'>
+ <div role='menuitem' id='test' aria-expanded='true'>item 1</div>
+ <div role='menu'>
+ <div role='menuitem'>subitem 1</div>
+ <div role='menuitem'>subitem 2</div>
+ </div>
+ <div role='menuitem'>item 2</div>
+ </div>
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menuitem_posinset_and_setsize-manual.html b/testing/web-platform/tests/wai-aria/manual/menuitem_posinset_and_setsize-manual.html
new file mode 100644
index 0000000000..ac0ec8871d
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menuitem_posinset_and_setsize-manual.html
@@ -0,0 +1,148 @@
+<!doctype html>
+<html>
+ <head>
+ <title>menuitem posinset and setsize</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_MENU_ITEM"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "posinset:4"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "setsize:8"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXMenuItem"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "menu item"
+ ],
+ [
+ "property",
+ "AXARIAPosInSet",
+ "is",
+ "4"
+ ],
+ [
+ "property",
+ "AXARIASetSize",
+ "is",
+ "8"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "posinset:4"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "setsize:8"
+ ],
+ [
+ "property",
+ "groupPosition",
+ "contains",
+ "similarItemsInGroup:8"
+ ],
+ [
+ "property",
+ "groupPosition",
+ "contains",
+ "positionInGroup:4"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_MENUITEM"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "MenuItem"
+ ],
+ [
+ "property",
+ "AriaProperties.posinset",
+ "is",
+ "4"
+ ],
+ [
+ "property",
+ "AriaProperties.setsize",
+ "is",
+ "8"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "menuitem posinset and setsize"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for menuitem posinset and setsize.</p>
+ <ul role='menu'>Menu
+ <li role='menuitem'> option 1</li>
+ <li role='menuitem' id='test' aria-posinset='4' aria-setsize='8'> option 2</li>
+ <li role='menuitem'> option 3</li>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_expanded_false-manual.html b/testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_expanded_false-manual.html
new file mode 100644
index 0000000000..e05ea1af71
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_expanded_false-manual.html
@@ -0,0 +1,78 @@
+<!doctype html>
+<html>
+ <head>
+ <title>aria-expanded=false on a menuitemcheckbox</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDABLE"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_EXPANDED"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXExpanded",
+ "is",
+ "NO"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_COLLAPSED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ExpandCollapse.ExpandCollapseState",
+ "is",
+ "Collapsed"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "aria-expanded=false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for aria-expanded=false on a menuitemcheckbox.</p>
+ <div role='menu'>
+ <div role='menuitemcheckbox' id='test' aria-expanded='false'>item 1</div>
+ <div role='menuitem'>item 2</div>
+ </div>
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_expanded_true-manual.html b/testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_expanded_true-manual.html
new file mode 100644
index 0000000000..b2ac5db68f
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_expanded_true-manual.html
@@ -0,0 +1,82 @@
+<!doctype html>
+<html>
+ <head>
+ <title>aria-expanded=true on a menuitemcheckbox</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDED"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXExpanded",
+ "is",
+ "YES"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_EXPANDED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ExpandCollapse.ExpandCollapseState",
+ "is",
+ "Expanded"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "aria-expanded=true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for aria-expanded=true on a menuitemcheckbox.</p>
+ <div role='menu'>
+ <div role='menuitemcheckbox' id='test' aria-expanded='true'>item 1</div>
+ <div role='menu'>
+ <div role='menuitem'>subitem 1</div>
+ <div role='menuitem'>subitem 2</div>
+ </div>
+ <div role='menuitem'>item 2</div>
+ </div>
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_posinset_and_setsize-manual.html b/testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_posinset_and_setsize-manual.html
new file mode 100644
index 0000000000..cf867c1cf9
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_posinset_and_setsize-manual.html
@@ -0,0 +1,185 @@
+<!doctype html>
+<html>
+ <head>
+ <title>menuitemcheckbox posinset and setsize</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_CHECK_MENU_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_CHECKABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_CHECKED"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "posinset:4"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "setsize:8"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXMenuItem"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "menu item"
+ ],
+ [
+ "property",
+ "AXValue",
+ "is",
+ "1"
+ ],
+ [
+ "property",
+ "AXARIAPosInSet",
+ "is",
+ "4"
+ ],
+ [
+ "property",
+ "AXARIASetSize",
+ "is",
+ "8"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_CHECK_MENU_ITEM"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "checkable:true"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "posinset:4"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "setsize:8"
+ ],
+ [
+ "property",
+ "groupPosition",
+ "contains",
+ "similarItemsInGroup:8"
+ ],
+ [
+ "property",
+ "groupPosition",
+ "contains",
+ "positionInGroup:4"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "isAny",
+ "[ROLE_SYSTEM_MENUITEM, ROLE_SYSTEM_CHECKBUTTON]"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "MenuItem"
+ ],
+ [
+ "property",
+ "Toggle.ToggleState",
+ "is",
+ "On"
+ ],
+ [
+ "property",
+ "AriaProperties.posinset",
+ "is",
+ "4"
+ ],
+ [
+ "property",
+ "AriaProperties.setsize",
+ "is",
+ "8"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "menuitemcheckbox posinset and setsize"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for menuitemcheckbox posinset and setsize.</p>
+ <ul role='menu'>Menu
+ <li role='menuitem'> option 1</li>
+ <li role='menuitemcheckbox' id='test' aria-posinset='4' aria-setsize='8'
+ class='ckbox' aria-checked='true'>panda doodles</li>
+ <li role='menuitem'> option 3</li>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_readonly_false-manual.html
new file mode 100644
index 0000000000..59f12ed0fc
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_readonly_false-manual.html
@@ -0,0 +1,128 @@
+<!doctype html>
+<html>
+ <head>
+ <title>menuitemcheckbox readonly false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_CHECK_MENU_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_CHECKABLE"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXMenuItem"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "menu item"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_CHECK_MENU_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "isAny",
+ "[ROLE_SYSTEM_CHECKBUTTON, ROLE_SYSTEM_MENUITEM]"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "MenuItem"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "Toggle"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "menuitemcheckbox readonly false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for menuitemcheckbox readonly false.</p>
+ <div role="menu">
+ <div role="menuitemcheckbox" aria-readonly="false" id="test">option 1</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_readonly_true-manual.html
new file mode 100644
index 0000000000..faa9703fda
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_readonly_true-manual.html
@@ -0,0 +1,128 @@
+<!doctype html>
+<html>
+ <head>
+ <title>menuitemcheckbox readonly true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_CHECK_MENU_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXMenuItem"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "menu item"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_CHECK_MENU_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "isAny",
+ "[ROLE_SYSTEM_CHECKBUTTON, ROLE_SYSTEM_MENUITEM]"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "MenuItem"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "Toggle"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "menuitemcheckbox readonly true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for menuitemcheckbox readonly true.</p>
+ <div role="menu">
+ <div role="menuitemcheckbox" aria-readonly="true" id="test">option 1</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_readonly_unspecified-manual.html
new file mode 100644
index 0000000000..d9b5dc2980
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menuitemcheckbox_readonly_unspecified-manual.html
@@ -0,0 +1,122 @@
+<!doctype html>
+<html>
+ <head>
+ <title>menuitemcheckbox readonly unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_CHECK_MENU_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXMenuItem"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "menu item"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_CHECK_MENU_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "isAny",
+ "[ROLE_SYSTEM_CHECKBUTTON, ROLE_SYSTEM_MENUITEM]"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "MenuItem"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "Toggle"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "menuitemcheckbox readonly unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for menuitemcheckbox readonly unspecified.</p>
+ <div role="menu">
+ <div role="menuitemcheckbox" id="test">option 1</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menuitemradio_expanded_false-manual.html b/testing/web-platform/tests/wai-aria/manual/menuitemradio_expanded_false-manual.html
new file mode 100644
index 0000000000..52c599d90e
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menuitemradio_expanded_false-manual.html
@@ -0,0 +1,78 @@
+<!doctype html>
+<html>
+ <head>
+ <title>aria-expanded=false on a menuitemradio</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDABLE"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_EXPANDED"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXExpanded",
+ "is",
+ "NO"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_COLLAPSED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ExpandCollapse.ExpandCollapseState",
+ "is",
+ "Collapsed"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "aria-expanded=false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for aria-expanded=false on a menuitemradio.</p>
+ <div role='menu'>
+ <div role='menuitemradio' id='test' aria-expanded='false'>item 1</div>
+ <div role='menuitem'>item 2</div>
+ </div>
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menuitemradio_expanded_true-manual.html b/testing/web-platform/tests/wai-aria/manual/menuitemradio_expanded_true-manual.html
new file mode 100644
index 0000000000..601879885f
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menuitemradio_expanded_true-manual.html
@@ -0,0 +1,82 @@
+<!doctype html>
+<html>
+ <head>
+ <title>aria-expanded=true on a menuitemradio</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_EXPANDED"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXExpanded",
+ "is",
+ "YES"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_EXPANDED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ExpandCollapse.ExpandCollapseState",
+ "is",
+ "Expanded"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "aria-expanded=true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for aria-expanded=true on a menuitemradio.</p>
+ <div role='menu'>
+ <div role='menuitemradio' id='test' aria-expanded='true'>item 1</div>
+ <div role='menu'>
+ <div role='menuitem'>subitem 1</div>
+ <div role='menuitem'>subitem 2</div>
+ </div>
+ <div role='menuitem'>item 2</div>
+ </div>
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menuitemradio_posinset_and_setsize-manual.html b/testing/web-platform/tests/wai-aria/manual/menuitemradio_posinset_and_setsize-manual.html
new file mode 100644
index 0000000000..d512e95ddd
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menuitemradio_posinset_and_setsize-manual.html
@@ -0,0 +1,196 @@
+<!doctype html>
+<html>
+ <head>
+ <title>menuitemradio posinset and setsize</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_RADIO_MENU_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_CHECKABLE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "posinset:4"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "setsize:8"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXMenuItem"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "menu item"
+ ],
+ [
+ "property",
+ "AXValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "AXARIAPosInSet",
+ "is",
+ "4"
+ ],
+ [
+ "property",
+ "AXARIASetSize",
+ "is",
+ "8"
+ ],
+ [
+ "property",
+ "AXMenuItemMarkChar",
+ "is",
+ "<nil>"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_RADIO_MENU_ITEM"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "checkable:true"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "posinset:4"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "setsize:8"
+ ],
+ [
+ "property",
+ "groupPosition",
+ "contains",
+ "similarItemsInGroup:8"
+ ],
+ [
+ "property",
+ "groupPosition",
+ "contains",
+ "positionInGroup:4"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "isAny",
+ "[ROLE_SYSTEM_RADIOBUTTON, ROLE_SYSTEM_MENUITEM]"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "MenuItem"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "Toggle"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "SelectionItem"
+ ],
+ [
+ "property",
+ "Toggle.ToggleState",
+ "is",
+ "Off"
+ ],
+ [
+ "property",
+ "AriaProperties.posinset",
+ "is",
+ "4"
+ ],
+ [
+ "property",
+ "AriaProperties.setsize",
+ "is",
+ "8"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "menuitemradio posinset and setsize"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for menuitemradio posinset and setsize.</p>
+ <ul role='menu'>Menu
+ <li role='menuitemradio'> option 1</li>
+ <li role='menuitemradio' id='test' aria-posinset='4' aria-setsize='8'>panda doodles</li>
+ <li role='menuitemradio'> option 3</li>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menuitemradio_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/manual/menuitemradio_readonly_false-manual.html
new file mode 100644
index 0000000000..164bde7ae1
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menuitemradio_readonly_false-manual.html
@@ -0,0 +1,128 @@
+<!doctype html>
+<html>
+ <head>
+ <title>menuitemradio readonly false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_RADIO_MENU_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXMenuItem"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "menu item"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_RADIO_MENU_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "isAny",
+ "[ROLE_SYSTEM_RADIOBUTTON, ROLE_SYSTEM_MENUITEM]"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "MenuItem"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "Toggle"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "SelectionItem"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "menuitemradio readonly false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for menuitemradio readonly false.</p>
+ <div role="menu">
+ <div role="menuitemradio" aria-readonly="false" id="test">option 1</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menuitemradio_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/manual/menuitemradio_readonly_true-manual.html
new file mode 100644
index 0000000000..70690f372c
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menuitemradio_readonly_true-manual.html
@@ -0,0 +1,140 @@
+<!doctype html>
+<html>
+ <head>
+ <title>menuitemradio readonly true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_RADIO_MENU_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_CHECKABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXMenuItem"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "menu item"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_RADIO_MENU_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "isAny",
+ "[ROLE_SYSTEM_RADIOBUTTON, ROLE_SYSTEM_MENUITEM]"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "MenuItem"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "Toggle"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "SelectionItem"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "menuitemradio readonly true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for menuitemradio readonly true.</p>
+ <div role="menu">
+ <div role="menuitemradio" aria-readonly="true" id="test">option 1</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/menuitemradio_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/menuitemradio_readonly_unspecified-manual.html
new file mode 100644
index 0000000000..a4257c439f
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/menuitemradio_readonly_unspecified-manual.html
@@ -0,0 +1,128 @@
+<!doctype html>
+<html>
+ <head>
+ <title>menuitemradio readonly unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_RADIO_MENU_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXMenuItem"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "menu item"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_RADIO_MENU_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "isAny",
+ "[ROLE_SYSTEM_RADIOBUTTON, ROLE_SYSTEM_MENUITEM]"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "MenuItem"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "Toggle"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "SelectionItem"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "menuitemradio readonly unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for menuitemradio readonly unspecified.</p>
+ <div role="menu">
+ <div role="menuitemradio" id="test">option 1</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/none-manual.html b/testing/web-platform/tests/wai-aria/manual/none-manual.html
new file mode 100644
index 0000000000..ded346faa6
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/none-manual.html
@@ -0,0 +1,78 @@
+<!doctype html>
+<html>
+ <head>
+ <title>none</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "accessible",
+ "is",
+ "false"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "accessible",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "accessible",
+ "is",
+ "false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "accessible",
+ "is",
+ "false"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "accessible",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "none"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for none.</p>
+ <img id='test' role='none' src="foo.jpg" alt="footest"/>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/option_selected_false-manual.html b/testing/web-platform/tests/wai-aria/manual/option_selected_false-manual.html
new file mode 100644
index 0000000000..02b1ec8293
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/option_selected_false-manual.html
@@ -0,0 +1,131 @@
+<!doctype html>
+<html>
+ <head>
+ <title>option selected false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_LIST_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SELECTABLE"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXStaticText"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "text"
+ ],
+ [
+ "property",
+ "AXSelected",
+ "is",
+ "false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LISTITEM"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_SELECTABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "ListItem"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Invoke"
+ ],
+ [
+ "property",
+ "ControlPatterns",
+ "doesNotContain",
+ "SelectionItem"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "option selected false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for option selected false.</p>
+ <div role="listbox">
+ <div role="option" aria-selected="false" id="test">
+ Fish
+ </div>
+ <div role="option">
+ beef
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/option_selected_true-manual.html b/testing/web-platform/tests/wai-aria/manual/option_selected_true-manual.html
new file mode 100644
index 0000000000..8bb7dd7ef5
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/option_selected_true-manual.html
@@ -0,0 +1,131 @@
+<!doctype html>
+<html>
+ <head>
+ <title>option selected true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_LIST_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SELECTABLE"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXStaticText"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "text"
+ ],
+ [
+ "property",
+ "AXSelected",
+ "is",
+ "true"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LISTITEM"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_SELECTABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "ListItem"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Invoke"
+ ],
+ [
+ "property",
+ "SelectionItem.IsSelected",
+ "Is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "option selected true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for option selected true.</p>
+ <div role="listbox">
+ <div role="option" aria-selected="true" id="test">
+ Fish
+ </div>
+ <div role="option">
+ beef
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/option_selected_undefined-manual.html b/testing/web-platform/tests/wai-aria/manual/option_selected_undefined-manual.html
new file mode 100644
index 0000000000..5930de9a48
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/option_selected_undefined-manual.html
@@ -0,0 +1,131 @@
+<!doctype html>
+<html>
+ <head>
+ <title>option selected undefined</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_LIST_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SELECTABLE"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXStaticText"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "text"
+ ],
+ [
+ "property",
+ "AXSelected",
+ "is",
+ "false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_LISTITEM"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_SELECTABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "ListItem"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Invoke"
+ ],
+ [
+ "property",
+ "ControlPatterns",
+ "doesNotContain",
+ "SelectionItem"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "option selected undefined"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for option selected undefined.</p>
+ <div role="listbox">
+ <div role="option" id="test">
+ Fish
+ </div>
+ <div role="option">
+ beef
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/option_selected_value_changes-manual.html b/testing/web-platform/tests/wai-aria/manual/option_selected_value_changes-manual.html
new file mode 100644
index 0000000000..2c02a8707d
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/option_selected_value_changes-manual.html
@@ -0,0 +1,146 @@
+<!doctype html>
+<html>
+ <head>
+ <title>option selected value changes</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "attribute" : "aria-activedescendant",
+ "element" : "test1",
+ "title" : "step 1",
+ "type" : "attribute",
+ "value" : "\"test\" "
+ },
+ {
+ "attribute" : "aria-selected",
+ "element" : "test",
+ "title" : "step 2",
+ "type" : "attribute",
+ "value" : "\"true\""
+ },
+ {
+ "attribute" : "aria-selected",
+ "element" : "test2",
+ "title" : "step 3",
+ "type" : "attribute",
+ "value" : "\"false\""
+ },
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "event",
+ "type",
+ "is",
+ "object:state-changed:selected"
+ ],
+ [
+ "event",
+ "detail1",
+ "is",
+ "1"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "event",
+ "type",
+ "is",
+ "EVENT_OBJECT_SELECTION"
+ ],
+ [
+ "event",
+ "type",
+ "is",
+ "EVENT_OBJECT_STATECHANGE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "event",
+ "type",
+ "is",
+ "UIA_SelectionItem_ElementSelectedEventId"
+ ]
+ ]
+ },
+ "title" : "step 4",
+ "type" : "test"
+ },
+ {
+ "element" : "test1",
+ "test" : {
+ "ATK" : [
+ [
+ "event",
+ "type",
+ "is",
+ "object:selection-changed"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "event",
+ "type",
+ "is",
+ "AXSelectedChildrenChanged"
+ ]
+ ]
+ },
+ "title" : "step 5",
+ "type" : "test"
+ },
+ {
+ "element" : "test2",
+ "test" : {
+ "ATK" : [
+ [
+ "event",
+ "type",
+ "is",
+ "object:state-changed:selected"
+ ],
+ [
+ "event",
+ "detail1",
+ "is",
+ "0"
+ ]
+ ]
+ },
+ "title" : "step 6",
+ "type" : "test"
+ }
+ ],
+ "title" : "option selected value changes"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for option selected value changes.</p>
+ <div id="test1" aria-activedescendant="test2" role="listbox">
+ <div role="option" aria-selected="false" id="test">
+ Fish
+ </div>
+ <div id="test2" aria-selected="true" role="option">
+ beef
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/radiogroup_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/manual/radiogroup_orientation_horizontal-manual.html
new file mode 100644
index 0000000000..4943335cf2
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/radiogroup_orientation_horizontal-manual.html
@@ -0,0 +1,123 @@
+<!doctype html>
+<html>
+ <head>
+ <title>radiogroup orientation horizontal</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PANEL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXRadioGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "radio group"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXHorizontalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_GROUPING"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_GROUPING"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "List"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.Orientation",
+ "is",
+ "horizontal"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "radiogroup orientation horizontal"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for radiogroup orientation horizontal.</p>
+ <ul id="test" role="radiogroup" aria-orientation="horizontal">
+ <li role="radio">File</file>
+ <li role="radio">Edit</file>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/radiogroup_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/radiogroup_orientation_unspecified-manual.html
new file mode 100644
index 0000000000..40ceab71ca
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/radiogroup_orientation_unspecified-manual.html
@@ -0,0 +1,135 @@
+<!doctype html>
+<html>
+ <head>
+ <title>radiogroup orientation unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PANEL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXRadioGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "radio group"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXUnknownOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_GROUPING"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_GROUPING"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "List"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.Orientation",
+ "isNot",
+ "vertical"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.Orientation",
+ "isNot",
+ "horizontal"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "radiogroup orientation unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for radiogroup orientation unspecified.</p>
+ <ul id="test" role="radiogroup">
+ <li role="radio">File</file>
+ <li role="radio">Edit</file>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/radiogroup_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/manual/radiogroup_orientation_vertical-manual.html
new file mode 100644
index 0000000000..def4543652
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/radiogroup_orientation_vertical-manual.html
@@ -0,0 +1,111 @@
+<!doctype html>
+<html>
+ <head>
+ <title>radiogroup orientation vertical</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PANEL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_VERTICAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXRadioGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "radio group"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXVerticalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_VERTICAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_GROUPING"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "List"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.Orientation",
+ "is",
+ "vertical"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "radiogroup orientation vertical"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for radiogroup orientation vertical.</p>
+ <ul id="test" role="radiogroup" aria-orientation="vertical">
+ <li role="radio">File</file>
+ <li role="radio">Edit</file>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/radiogroup_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/manual/radiogroup_readonly_false-manual.html
new file mode 100644
index 0000000000..102f51757b
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/radiogroup_readonly_false-manual.html
@@ -0,0 +1,115 @@
+<!doctype html>
+<html>
+ <head>
+ <title>radiogroup readonly false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PANEL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXRadioGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "radio group"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_GROUPING"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_GROUPING"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "List"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "radiogroup readonly false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for radiogroup readonly false.</p>
+ <div id="test" role="radiogroup" aria-readonly="false">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/radiogroup_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/manual/radiogroup_readonly_true-manual.html
new file mode 100644
index 0000000000..0c97e24a8b
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/radiogroup_readonly_true-manual.html
@@ -0,0 +1,115 @@
+<!doctype html>
+<html>
+ <head>
+ <title>radiogroup readonly true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PANEL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXRadioGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "radio group"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_GROUPING"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_GROUPING"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "List"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "radiogroup readonly true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for radiogroup readonly true.</p>
+ <div id="test" role="radiogroup" aria-readonly="true">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/radiogroup_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/radiogroup_readonly_unspecified-manual.html
new file mode 100644
index 0000000000..6e8c641ac7
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/radiogroup_readonly_unspecified-manual.html
@@ -0,0 +1,115 @@
+<!doctype html>
+<html>
+ <head>
+ <title>radiogroup readonly unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PANEL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXRadioGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "radio group"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_GROUPING"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_GROUPING"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "List"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "radiogroup readonly unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for radiogroup readonly unspecified.</p>
+ <div id="test" role="radiogroup">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/region_with_name-manual.html b/testing/web-platform/tests/wai-aria/manual/region_with_name-manual.html
new file mode 100644
index 0000000000..ba868a77b2
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/region_with_name-manual.html
@@ -0,0 +1,114 @@
+<!doctype html>
+<html>
+ <head>
+ <title>region with name</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_LANDMARK"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:region"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXLandmarkRegion"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "region"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:region"
+ ],
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_LANDMARK"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "Control Group",
+ "is",
+ "Group"
+ ],
+ [
+ "property",
+ "localizedControlType",
+ "is",
+ "region"
+ ],
+ [
+ "property",
+ "landmarkType",
+ "is",
+ "Custom"
+ ],
+ [
+ "property",
+ "localizedLandmarkType",
+ "is",
+ "region"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "region with name"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for region with name.</p>
+ <section role="region" aria-label="foobar" id="test">
+ <article>This is article 1</article>
+ </section>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/region_without_name-manual.html b/testing/web-platform/tests/wai-aria/manual/region_without_name-manual.html
new file mode 100644
index 0000000000..84ea6658e7
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/region_without_name-manual.html
@@ -0,0 +1,128 @@
+<!doctype html>
+<html>
+ <head>
+ <title>region without name</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SECTION"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Text"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Hypertext"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "group"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleText2"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleHypertext2"
+ ],
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_SECTION"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_GROUPING"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "Control Group",
+ "is",
+ "Group"
+ ],
+ [
+ "property",
+ "landmarkType",
+ "isNot",
+ "Custom"
+ ],
+ [
+ "property",
+ "localizedLandmarkType",
+ "isNot",
+ "region"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "region without name"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for region without name.</p>
+ <div role="region" id="test" tabindex="-1">
+ <article>This is article 1</article>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/row_colindex_4-manual.html b/testing/web-platform/tests/wai-aria/manual/row_colindex_4-manual.html
new file mode 100644
index 0000000000..82ee257d9e
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/row_colindex_4-manual.html
@@ -0,0 +1,149 @@
+<!doctype html>
+<html>
+ <head>
+ <title>row colindex 4</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_ROW"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colindex:4"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXRow"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROW"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colindex:4"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROW"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "Column",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ },
+ {
+ "element" : "cell",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_position()",
+ "contains",
+ "column=3"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXARIAColumnIndex",
+ "is",
+ "4"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "Column",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ }
+ ],
+ "title" : "row colindex 4"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for row colindex 4.</p>
+ <div role="table">
+ <div id="test" role="row" aria-colindex="4">
+ <div id="cell" role="cell">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/row_rowindex_4-manual.html b/testing/web-platform/tests/wai-aria/manual/row_rowindex_4-manual.html
new file mode 100644
index 0000000000..1333219e04
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/row_rowindex_4-manual.html
@@ -0,0 +1,149 @@
+<!doctype html>
+<html>
+ <head>
+ <title>row rowindex 4</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_ROW"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowindex:4"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXRow"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROW"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowindex:4"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROW"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "DataItem.Row",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ },
+ {
+ "element" : "cell",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_position()",
+ "contains",
+ "row=3"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXARIARowIndex",
+ "is",
+ "4"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "Row",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ }
+ ],
+ "title" : "row rowindex 4"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for row rowindex 4.</p>
+ <div role="table">
+ <div id="test" role="row" aria-rowindex="4">
+ <div id="cell" role="cell">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/rowheader_aria-colspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/manual/rowheader_aria-colspan_2_on_div-manual.html
new file mode 100644
index 0000000000..3d82888959
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/rowheader_aria-colspan_2_on_div-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>rowheader aria-colspan 2 on div</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ROW_HEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colspan:2"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "contains",
+ "column_span=2"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXColumnIndexRange.length",
+ "is",
+ "2"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROWHEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colspan:2"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROWHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "HeaderItem.ColumnSpan",
+ "is",
+ "2"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "rowheader aria-colspan 2 on div"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for rowheader aria-colspan 2 on div.</p>
+ <div role="table">
+ <div role="row">
+ <div id="test" role="rowheader" aria-colspan="2">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/rowheader_aria-rowspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/manual/rowheader_aria-rowspan_2_on_div-manual.html
new file mode 100644
index 0000000000..4ddf4f5c9a
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/rowheader_aria-rowspan_2_on_div-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>rowheader aria-rowspan 2 on div</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ROW_HEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowspan:2"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_row_column_span()",
+ "contains",
+ "row_span=2"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXRowIndexRange.length",
+ "is",
+ "2"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROWHEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowspan:2"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROWHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "HeaderItem.RowSpan",
+ "is",
+ "2"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "rowheader aria-rowspan 2 on div"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for rowheader aria-rowspan 2 on div.</p>
+ <div role="table">
+ <div role="row">
+ <div id="test" role="rowheader" aria-rowspan="2">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/rowheader_colindex_4-manual.html b/testing/web-platform/tests/wai-aria/manual/rowheader_colindex_4-manual.html
new file mode 100644
index 0000000000..8b1eb477e4
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/rowheader_colindex_4-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>rowheader colindex 4</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ROW_HEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colindex:4"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_position()",
+ "contains",
+ "column=3"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXARIAColumnIndex",
+ "is",
+ "4"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROWHEADER"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTableCell"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colindex:4"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROWHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "Column",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "rowheader colindex 4"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for rowheader colindex 4.</p>
+ <div role="table">
+ <div role="row">
+ <div id="test" role="rowheader" aria-colindex="4" aria-colcount="8">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/rowheader_rowindex_4-manual.html b/testing/web-platform/tests/wai-aria/manual/rowheader_rowindex_4-manual.html
new file mode 100644
index 0000000000..716403cfeb
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/rowheader_rowindex_4-manual.html
@@ -0,0 +1,112 @@
+<!doctype html>
+<html>
+ <head>
+ <title>rowheader rowindex 4</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ROW_HEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowindex:4"
+ ],
+ [
+ "result",
+ "atk_table_cell_get_position()",
+ "contains",
+ "row=3"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXARIARowIndex",
+ "is",
+ "4"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROWHEADER"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowindex:4"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_ROWHEADER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "HeaderItem"
+ ],
+ [
+ "property",
+ "HeaderItem.Row",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "rowheader rowindex 4"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for rowheader rowindex 4.</p>
+ <div role="table">
+ <div role="row">
+ <div id="test" role="rowheader" aria-rowindex="4">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/rowheader_selected_false_not_automatically_propagated-manual.html b/testing/web-platform/tests/wai-aria/manual/rowheader_selected_false_not_automatically_propagated-manual.html
new file mode 100644
index 0000000000..7cd9a55990
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/rowheader_selected_false_not_automatically_propagated-manual.html
@@ -0,0 +1,133 @@
+<!doctype html>
+<html>
+ <head>
+ <title>rowheader selected false not automatically propagated</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SELECTABLE"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "cell"
+ ],
+ [
+ "property",
+ "AXSelected",
+ "is",
+ "true"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_SELECTABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "SelectionItem.IsSelected",
+ "is",
+ "true"
+ ],
+ [
+ "property",
+ "SelectionItem.selectionContainer",
+ "is",
+ "test1"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "rowheader selected false not automatically propagated"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for rowheader selected false not automatically propagated.</p>
+ <div id="test1" role="grid">
+ <div role="row">
+ <div role="columnheader">C1</div>
+ <div role="columnheader">C2</div>
+ </div>
+ <div role="row">
+ <div aria-selected="false" role="rowheader">A1</div>
+ <div id="test" aria-selected="true" role="gridcell">A2</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/rowheader_selected_true_not_automatically_propagated-manual.html b/testing/web-platform/tests/wai-aria/manual/rowheader_selected_true_not_automatically_propagated-manual.html
new file mode 100644
index 0000000000..51b2b68fee
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/rowheader_selected_true_not_automatically_propagated-manual.html
@@ -0,0 +1,133 @@
+<!doctype html>
+<html>
+ <head>
+ <title>rowheader selected true not automatically propagated</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE_CELL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SELECTABLE"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCell"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "cell"
+ ],
+ [
+ "property",
+ "AXSelected",
+ "is",
+ "false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_CELL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_SELECTABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataItem"
+ ],
+ [
+ "property",
+ "SelectionItem.IsSelected",
+ "is",
+ "false"
+ ],
+ [
+ "property",
+ "SelectionItem.selectionContainer",
+ "is",
+ "test1"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "rowheader selected true not automatically propagated"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for rowheader selected true not automatically propagated.</p>
+ <div id="test1" role="grid">
+ <div role="row">
+ <div role="columnheader">C1</div>
+ <div role="columnheader">C2</div>
+ </div>
+ <div role="row">
+ <div role="rowheader" aria-selected="true">A1</div>
+ <div id="test" role="gridcell">A2</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/scrollbar_all_values_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/scrollbar_all_values_unspecified-manual.html
new file mode 100644
index 0000000000..910fe2b118
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/scrollbar_all_values_unspecified-manual.html
@@ -0,0 +1,182 @@
+<!doctype html>
+<html>
+ <head>
+ <title>scrollbar all values unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SCROLL_BAR"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Value"
+ ],
+ [
+ "result",
+ "atk_value_get_minimum_value()",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "atk_value_get_current_value()",
+ "is",
+ "50"
+ ],
+ [
+ "result",
+ "atk_value_get_maximum_value()",
+ "is",
+ "100"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXScrollBar"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "scroll bar"
+ ],
+ [
+ "property",
+ "AXMinValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "AXValue",
+ "is",
+ "50"
+ ],
+ [
+ "property",
+ "AXMaxValue",
+ "is",
+ "100"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SCROLLBAR"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "AccessibleValue"
+ ],
+ [
+ "property",
+ "minimumValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "currentValue",
+ "is",
+ "50"
+ ],
+ [
+ "property",
+ "maximumValue",
+ "is",
+ "100"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SCROLLBAR"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "scrollbar"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "RangeValue"
+ ],
+ [
+ "result",
+ "RangeValue.Minimum",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "RangeValue.Value",
+ "is",
+ "50"
+ ],
+ [
+ "result",
+ "RangeValue.Maximum",
+ "is",
+ "100"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "scrollbar all values unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for scrollbar all values unspecified.</p>
+ <div role="scrollbar" id="test">
+ Go Fish
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/scrollbar_only_valuenow_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/scrollbar_only_valuenow_unspecified-manual.html
new file mode 100644
index 0000000000..73e3158176
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/scrollbar_only_valuenow_unspecified-manual.html
@@ -0,0 +1,182 @@
+<!doctype html>
+<html>
+ <head>
+ <title>scrollbar only valuenow unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SCROLL_BAR"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Value"
+ ],
+ [
+ "result",
+ "atk_value_get_minimum_value()",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "atk_value_get_current_value()",
+ "is",
+ "20"
+ ],
+ [
+ "result",
+ "atk_value_get_maximum_value()",
+ "is",
+ "40"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXScrollBar"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "scroll bar"
+ ],
+ [
+ "property",
+ "AXMinValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "AXValue",
+ "is",
+ "20"
+ ],
+ [
+ "property",
+ "AXMaxValue",
+ "is",
+ "40"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SCROLLBAR"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "AccessibleValue"
+ ],
+ [
+ "property",
+ "minimumValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "currentValue",
+ "is",
+ "20"
+ ],
+ [
+ "property",
+ "maximumValue",
+ "is",
+ "40"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SCROLLBAR"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "ScrollBar"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "RangeValue"
+ ],
+ [
+ "result",
+ "RangeValue.Minimum",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "RangeValue.Value",
+ "is",
+ "20"
+ ],
+ [
+ "result",
+ "RangeValue.Maximum",
+ "is",
+ "40"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "scrollbar only valuenow unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for scrollbar only valuenow unspecified.</p>
+ <div role="scrollbar" aria-valuemin="0" aria-valuemax="40" id="test">
+ Go Fish
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/scrollbar_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/scrollbar_orientation_unspecified-manual.html
new file mode 100644
index 0000000000..32791ae1d8
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/scrollbar_orientation_unspecified-manual.html
@@ -0,0 +1,132 @@
+<!doctype html>
+<html>
+ <head>
+ <title>scrollbar orientation unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SCROLL_BAR"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Value"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_VERTICAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXScrollBar"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "scroll bar"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXVerticalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SCROLLBAR"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_HORIZONTAL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_VERTICAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SCROLLBAR"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "ScrollBar"
+ ],
+ [
+ "property",
+ "Orientation",
+ "is",
+ "vertical"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "RangeValue"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "scrollbar orientation unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for scrollbar orientation unspecified.</p>
+ <div role="scrollbar" id="test"></div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/searchbox-manual.html b/testing/web-platform/tests/wai-aria/manual/searchbox-manual.html
new file mode 100644
index 0000000000..979bd0fad4
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/searchbox-manual.html
@@ -0,0 +1,120 @@
+<!doctype html>
+<html>
+ <head>
+ <title>searchbox</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ENTRY"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SINGLE_LINE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "EditableText"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:searchbox"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTextField"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSearchField"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "search text field"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "text-input-type:search"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:searchbox"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Edit"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "search box"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "searchbox"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for searchbox.</p>
+ <div id='test' role='searchbox' contenteditable='true'></div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/searchbox_activedescendant-manual.html b/testing/web-platform/tests/wai-aria/manual/searchbox_activedescendant-manual.html
new file mode 100644
index 0000000000..a72cf93263
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/searchbox_activedescendant-manual.html
@@ -0,0 +1,222 @@
+<!doctype html>
+<html>
+ <head>
+ <title>searchbox activedescendant</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "event" : "focus",
+ "title" : "step 1",
+ "type" : "event"
+ },
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ENTRY"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SINGLE_LINE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "EditableText"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_FOCUSED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_FOCUSABLE"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTextField"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSearchField"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "search text field"
+ ],
+ [
+ "property",
+ "AXFocused",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "text-input-type:search"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_FOCUSED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_FOCUSABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Edit"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "search box"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.UIA_IsKeyboardFocusablePropertyId",
+ "is",
+ "true"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.UIA_HasKeyboardFocusPropertyId",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ },
+ {
+ "element" : "bob",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_FOCUSED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_FOCUSABLE"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXFocused",
+ "is",
+ "true"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXFocused)",
+ "is",
+ "true"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_FOCUSED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_FOCUSABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "IUIAutomationElement.UIA_IsKeyboardFocusablePropertyId",
+ "is",
+ "true"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.UIA_HasKeyboardFocusPropertyId",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 3",
+ "type" : "test"
+ }
+ ],
+ "title" : "searchbox activedescendant"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for searchbox activedescendant.</p>
+ <div id='test' tabindex="0" aria-activedescendant="bob" role='searchbox'>
+ <div id='bob' role='group'>Hello world</div>
+ </div>
+ then role:searchbox, aria-activedescendant: bob
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/searchbox_activedescendant_value_changes-manual.html b/testing/web-platform/tests/wai-aria/manual/searchbox_activedescendant_value_changes-manual.html
new file mode 100644
index 0000000000..956f931ae8
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/searchbox_activedescendant_value_changes-manual.html
@@ -0,0 +1,271 @@
+<!doctype html>
+<html>
+ <head>
+ <title>searchbox activedescendant value changes</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "event" : "focus",
+ "title" : "step 1",
+ "type" : "event"
+ },
+ {
+ "attribute" : "aria-activedescendant",
+ "element" : "test",
+ "title" : "step 2",
+ "type" : "attribute",
+ "value" : "\"bob\""
+ },
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ENTRY"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SINGLE_LINE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "EditableText"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_FOCUSED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_FOCUSABLE"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTextField"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSearchField"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "search text field"
+ ],
+ [
+ "property",
+ "AXFocused",
+ "is",
+ "false"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXFocused)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "text-input-type:search"
+ ],
+ [
+ "event",
+ "type",
+ "is",
+ "EVENT_OBJECT_FOCUS"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_FOCUSED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_FOCUSABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Edit"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "search box"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.UIA_IsKeyboardFocusablePropertyId",
+ "is",
+ "true"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.UIA_HasKeyboardFocusPropertyId",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 3",
+ "type" : "test"
+ },
+ {
+ "element" : "bob",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_FOCUSED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_FOCUSABLE"
+ ],
+ [
+ "event",
+ "type",
+ "is",
+ "object:state-changed:focused"
+ ],
+ [
+ "event",
+ "detail1",
+ "is",
+ "1"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXFocused",
+ "is",
+ "true"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXFocused)",
+ "is",
+ "true"
+ ],
+ [
+ "event",
+ "type",
+ "is",
+ "AXFocusedUIElementChanged"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_FOCUSED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_FOCUSABLE"
+ ],
+ [
+ "event",
+ "type",
+ "is",
+ "EVENT_OBJECT_FOCUS"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "IUIAutomationElement.UIA_IsKeyboardFocusablePropertyId",
+ "is",
+ "true"
+ ],
+ [
+ "property",
+ "IUIAutomationElement.UIA_HasKeyboardFocusPropertyId",
+ "is",
+ "true"
+ ],
+ [
+ "event",
+ "type",
+ "is",
+ "UIA_AutomationFocusChangedEventId"
+ ]
+ ]
+ },
+ "title" : "step 4",
+ "type" : "test"
+ }
+ ],
+ "title" : "searchbox activedescendant value changes"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for searchbox activedescendant value changes.</p>
+ <div id='test' tabindex="0" role='searchbox'>
+ <div id='bob' role='group'>Hello world</div>
+ </div>
+ then role:searchbox, aria-activedescendant: bob
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_both-manual.html b/testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_both-manual.html
new file mode 100644
index 0000000000..ea8b698679
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_both-manual.html
@@ -0,0 +1,133 @@
+<!doctype html>
+<html>
+ <head>
+ <title>searchbox autocomplete both</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ENTRY"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "autocomplete:both"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SUPPORTS_AUTOCOMPLETION"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTextField"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSearchField"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "search text field"
+ ],
+ [
+ "property",
+ "autocomplete",
+ "is",
+ "<nil>"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "text-input-type:search"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "autocomplete:both"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Edit"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "search box"
+ ],
+ [
+ "property",
+ "autocomplete",
+ "is",
+ "both"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "searchbox autocomplete both"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for searchbox autocomplete both.</p>
+ <div id="test" role="searchbox" aria-autocomplete="both"></div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_inline-manual.html b/testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_inline-manual.html
new file mode 100644
index 0000000000..77e707666c
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_inline-manual.html
@@ -0,0 +1,133 @@
+<!doctype html>
+<html>
+ <head>
+ <title>searchbox autocomplete inline</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ENTRY"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "autocomplete:inline"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SUPPORTS_AUTOCOMPLETION"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTextField"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSearchField"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "search text field"
+ ],
+ [
+ "property",
+ "autocomplete",
+ "is",
+ "<nil>"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "text-input-type:search"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "autocomplete:inline"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Edit"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "search box"
+ ],
+ [
+ "property",
+ "autocomplete",
+ "is",
+ "inline"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "searchbox autocomplete inline"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for searchbox autocomplete inline.</p>
+ <div id="test" role="searchbox" aria-autocomplete="inline"></div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_list-manual.html b/testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_list-manual.html
new file mode 100644
index 0000000000..0ce8068ea9
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_list-manual.html
@@ -0,0 +1,133 @@
+<!doctype html>
+<html>
+ <head>
+ <title>searchbox autocomplete list</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ENTRY"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "autocomplete:list"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SUPPORTS_AUTOCOMPLETION"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTextField"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSearchField"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "search text field"
+ ],
+ [
+ "property",
+ "autocomplete",
+ "is",
+ "<nil>"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "text-input-type:search"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "autocomplete:list"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Edit"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "search box"
+ ],
+ [
+ "property",
+ "autocomplete",
+ "is",
+ "list"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "searchbox autocomplete list"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for searchbox autocomplete list.</p>
+ <div id="test" role="searchbox" aria-autocomplete="list"></div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_none-manual.html b/testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_none-manual.html
new file mode 100644
index 0000000000..341d75c532
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_none-manual.html
@@ -0,0 +1,133 @@
+<!doctype html>
+<html>
+ <head>
+ <title>searchbox autocomplete none</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ENTRY"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "autocomplete:none"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SUPPORTS_AUTOCOMPLETION"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTextField"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSearchField"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "search text field"
+ ],
+ [
+ "property",
+ "autocomplete",
+ "is",
+ "<nil>"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "text-input-type:search"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "autocomplete:none"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Edit"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "search box"
+ ],
+ [
+ "property",
+ "autocomplete",
+ "is",
+ "none"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "searchbox autocomplete none"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for searchbox autocomplete none.</p>
+ <div id="test" role="searchbox" aria-autocomplete="none"></div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_unspecified-manual.html
new file mode 100644
index 0000000000..59becae655
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/searchbox_autocomplete_unspecified-manual.html
@@ -0,0 +1,127 @@
+<!doctype html>
+<html>
+ <head>
+ <title>searchbox autocomplete unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ENTRY"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SUPPORTS_AUTOCOMPLETION"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTextField"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSearchField"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "search text field"
+ ],
+ [
+ "property",
+ "autocomplete",
+ "is",
+ "<nil>"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "text-input-type:search"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "autocomplete:none"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Edit"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "search box"
+ ],
+ [
+ "property",
+ "autocomplete",
+ "is",
+ ""
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "searchbox autocomplete unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for searchbox autocomplete unspecified.</p>
+ <div id="test" role="searchbox"></div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/searchbox_multiline_false-manual.html b/testing/web-platform/tests/wai-aria/manual/searchbox_multiline_false-manual.html
new file mode 100644
index 0000000000..8f49eb61e9
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/searchbox_multiline_false-manual.html
@@ -0,0 +1,126 @@
+<!doctype html>
+<html>
+ <head>
+ <title>searchbox multiline false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ENTRY"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SINGLE_LINE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "EditableText"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTextField"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSearchField"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "search text field"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_MULTI_LINE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_SINGLE_LINE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "text-input-type:search"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Edit"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "search box"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "searchbox multiline false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for searchbox multiline false.</p>
+ <div id='test' role='searchbox' contenteditable='true' aria-multiline='false'></div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/searchbox_multiline_true-manual.html b/testing/web-platform/tests/wai-aria/manual/searchbox_multiline_true-manual.html
new file mode 100644
index 0000000000..47e6c3aaa9
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/searchbox_multiline_true-manual.html
@@ -0,0 +1,138 @@
+<!doctype html>
+<html>
+ <head>
+ <title>searchbox multiline true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ENTRY"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SINGLE_LINE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_MULTI_LINE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "EditableText"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTextField"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSearchField"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "search text field"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_MULTI_LINE"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_SINGLE_LINE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "text-input-type:search"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Edit"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "search box"
+ ],
+ [
+ "property",
+ "AriaProperties.multiline",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "searchbox multiline true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for searchbox multiline true.</p>
+ <div id='test' role='searchbox' contenteditable='true' aria-multiline='true'></div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/searchbox_multiline_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/searchbox_multiline_unspecified-manual.html
new file mode 100644
index 0000000000..5c1d7f5185
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/searchbox_multiline_unspecified-manual.html
@@ -0,0 +1,108 @@
+<!doctype html>
+<html>
+ <head>
+ <title>searchbox multiline unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ENTRY"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SINGLE_LINE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "EditableText"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTextField"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSearchField"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "search text field"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:search"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Edit"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "search box"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "searchbox multiline unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for searchbox multiline unspecified.</p>
+ <div id='test' role='searchbox' contenteditable='true'></div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/searchbox_placeholder-manual.html b/testing/web-platform/tests/wai-aria/manual/searchbox_placeholder-manual.html
new file mode 100644
index 0000000000..da513456d2
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/searchbox_placeholder-manual.html
@@ -0,0 +1,140 @@
+<!doctype html>
+<html>
+ <head>
+ <title>searchbox placeholder</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ENTRY"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "EditableText"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "placeholder-text:DD/MM/YYYY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTextField"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSearchField"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "search text field"
+ ],
+ [
+ "property",
+ "AXPlaceholderValue",
+ "is",
+ "DD/MM/YYYY"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_SINGLE_LINE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "placeholder-text:DD/MM/YYYY"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "text-input-type:search"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Edit"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "search box"
+ ],
+ [
+ "result",
+ "AriaProperties.placeholder",
+ "is",
+ "DD/MM/YYYY"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "searchbox placeholder"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for searchbox placeholder.</p>
+ <div contenteditable="true" role="searchbox" aria-placeholder="DD/MM/YYYY" id="test">
+ "DD/MM/YYYY"
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/searchbox_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/manual/searchbox_readonly_false-manual.html
new file mode 100644
index 0000000000..574666a017
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/searchbox_readonly_false-manual.html
@@ -0,0 +1,139 @@
+<!doctype html>
+<html>
+ <head>
+ <title>searchbox readonly false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ENTRY"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SINGLE_LINE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "EditableText"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTextField"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSearchField"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "search text field"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "text-input-type:search"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Edit"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "search box"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "searchbox readonly false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for searchbox readonly false.</p>
+ <div id="test" role="searchbox" aria-readonly="false">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/searchbox_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/manual/searchbox_readonly_true-manual.html
new file mode 100644
index 0000000000..833f1bc428
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/searchbox_readonly_true-manual.html
@@ -0,0 +1,139 @@
+<!doctype html>
+<html>
+ <head>
+ <title>searchbox readonly true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ENTRY"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SINGLE_LINE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "doesNotContain",
+ "EditableText"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTextField"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSearchField"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "search text field"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "text-input-type:search"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Edit"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "search box"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "searchbox readonly true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for searchbox readonly true.</p>
+ <div id="test" role="searchbox" aria-readonly="true">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/searchbox_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/searchbox_readonly_unspecified-manual.html
new file mode 100644
index 0000000000..51b9893595
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/searchbox_readonly_unspecified-manual.html
@@ -0,0 +1,139 @@
+<!doctype html>
+<html>
+ <head>
+ <title>searchbox readonly unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ENTRY"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SINGLE_LINE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "EditableText"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTextField"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSearchField"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "search text field"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "text-input-type:search"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Edit"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "search box"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "searchbox readonly unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for searchbox readonly unspecified.</p>
+ <div id="test" role="searchbox">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/searchbox_required_false-manual.html b/testing/web-platform/tests/wai-aria/manual/searchbox_required_false-manual.html
new file mode 100644
index 0000000000..1bfc895356
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/searchbox_required_false-manual.html
@@ -0,0 +1,127 @@
+<!doctype html>
+<html>
+ <head>
+ <title>searchbox required false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ENTRY"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SINGLE_LINE"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_REQUIRED"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTextField"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSearchField"
+ ],
+ [
+ "property",
+ "AXRequired",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "text-input-type:search"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_REQUIRED"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Edit"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "search box"
+ ],
+ [
+ "property",
+ "IsrequiredForForm",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "searchbox required false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for searchbox required false.</p>
+ <div id="test" role="searchbox" aria-required="false">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/searchbox_required_true-manual.html b/testing/web-platform/tests/wai-aria/manual/searchbox_required_true-manual.html
new file mode 100644
index 0000000000..7e26e5ab03
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/searchbox_required_true-manual.html
@@ -0,0 +1,127 @@
+<!doctype html>
+<html>
+ <head>
+ <title>searchbox required true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ENTRY"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SINGLE_LINE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_REQUIRED"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTextField"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSearchField"
+ ],
+ [
+ "property",
+ "AXRequired",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "text-input-type:search"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_REQUIRED"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Edit"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "search box"
+ ],
+ [
+ "property",
+ "IsrequiredForForm",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "searchbox required true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for searchbox required true.</p>
+ <div id="test" role="searchbox" aria-required="true">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/searchbox_required_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/searchbox_required_unspecified-manual.html
new file mode 100644
index 0000000000..13489ad13a
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/searchbox_required_unspecified-manual.html
@@ -0,0 +1,127 @@
+<!doctype html>
+<html>
+ <head>
+ <title>searchbox required unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ENTRY"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SINGLE_LINE"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_REQUIRED"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTextField"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSearchField"
+ ],
+ [
+ "property",
+ "AXRequired",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "text-input-type:search"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_REQUIRED"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Edit"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "search box"
+ ],
+ [
+ "property",
+ "IsrequiredForForm",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "searchbox required unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for searchbox required unspecified.</p>
+ <div id="test" role="searchbox">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/separator_focusable_all_values_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/separator_focusable_all_values_unspecified-manual.html
new file mode 100644
index 0000000000..fb8e852bb1
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/separator_focusable_all_values_unspecified-manual.html
@@ -0,0 +1,182 @@
+<!doctype html>
+<html>
+ <head>
+ <title>separator focusable all values unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SEPARATOR"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Value"
+ ],
+ [
+ "result",
+ "atk_value_get_minimum_value()",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "atk_value_get_current_value()",
+ "is",
+ "50"
+ ],
+ [
+ "result",
+ "atk_value_get_maximum_value()",
+ "is",
+ "100"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXSplitter"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "splitter"
+ ],
+ [
+ "property",
+ "AXMinValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "AXValue",
+ "is",
+ "50"
+ ],
+ [
+ "property",
+ "AXMaxValue",
+ "is",
+ "100"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SEPARATOR"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "AccessibleValue"
+ ],
+ [
+ "property",
+ "minimumValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "currentValue",
+ "is",
+ "50"
+ ],
+ [
+ "property",
+ "maximumValue",
+ "is",
+ "100"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SEPARATOR"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Thumb"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "RangeValue"
+ ],
+ [
+ "result",
+ "RangeValue.Minimum",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "RangeValue.Value",
+ "is",
+ "50"
+ ],
+ [
+ "result",
+ "RangeValue.Maximum",
+ "is",
+ "100"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "separator focusable all values unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for separator focusable all values unspecified.</p>
+ <div tabindex="0" role="separator" id="test">
+ Go Fish
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/separator_focusable_only_valuenow_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/separator_focusable_only_valuenow_unspecified-manual.html
new file mode 100644
index 0000000000..680c2a3605
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/separator_focusable_only_valuenow_unspecified-manual.html
@@ -0,0 +1,182 @@
+<!doctype html>
+<html>
+ <head>
+ <title>separator focusable only valuenow unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SEPARATOR"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Value"
+ ],
+ [
+ "result",
+ "atk_value_get_minimum_value()",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "atk_value_get_current_value()",
+ "is",
+ "50"
+ ],
+ [
+ "result",
+ "atk_value_get_maximum_value()",
+ "is",
+ "100"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXSplitter"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "splitter"
+ ],
+ [
+ "property",
+ "AXMinValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "AXValue",
+ "is",
+ "50"
+ ],
+ [
+ "property",
+ "AXMaxValue",
+ "is",
+ "100"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SEPARATOR"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "AccessibleValue"
+ ],
+ [
+ "property",
+ "minimumValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "currentValue",
+ "is",
+ "50"
+ ],
+ [
+ "property",
+ "maximumValue",
+ "is",
+ "100"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SEPARATOR"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Thumb"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "RangeValue"
+ ],
+ [
+ "result",
+ "RangeValue.Minimum",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "RangeValue.Value",
+ "is",
+ "50"
+ ],
+ [
+ "result",
+ "RangeValue.Maximum",
+ "is",
+ "100"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "separator focusable only valuenow unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for separator focusable only valuenow unspecified.</p>
+ <div tabindex="0" role="separator" aria-valuemin="0", aria-valuemax="100" id="test">
+ Go Fish
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/separator_focusable_valuetext-manual.html b/testing/web-platform/tests/wai-aria/manual/separator_focusable_valuetext-manual.html
new file mode 100644
index 0000000000..5992f15aeb
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/separator_focusable_valuetext-manual.html
@@ -0,0 +1,206 @@
+<!doctype html>
+<html>
+ <head>
+ <title>separator focusable valuetext</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SEPARATOR"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "valuetext:Bonaire"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Value"
+ ],
+ [
+ "result",
+ "atk_value_get_minimum_value()",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "atk_value_get_current_value()",
+ "is",
+ "50"
+ ],
+ [
+ "result",
+ "atk_value_get_maximum_value()",
+ "is",
+ "100"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXSplitter"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "splitter"
+ ],
+ [
+ "property",
+ "AXMinValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "AXValue",
+ "is",
+ "50"
+ ],
+ [
+ "property",
+ "AXMaxValue",
+ "is",
+ "100"
+ ],
+ [
+ "property",
+ "AXValueDescription",
+ "is",
+ "Bonaire"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SEPARATOR"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "AccessibleValue"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "valuetext:Bonaire"
+ ],
+ [
+ "property",
+ "minimumValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "currentValue",
+ "is",
+ "50"
+ ],
+ [
+ "property",
+ "maximumValue",
+ "is",
+ "100"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SEPARATOR"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Thumb"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "RangeValue"
+ ],
+ [
+ "result",
+ "RangeValue.Minimum",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "RangeValue.Value",
+ "is",
+ "50"
+ ],
+ [
+ "result",
+ "RangeValue.Maximum",
+ "is",
+ "100"
+ ],
+ [
+ "property",
+ "Value.Value",
+ "is",
+ "Bonaire"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "separator focusable valuetext"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for separator focusable valuetext.</p>
+ <div tabindex="0" role="separator" aria-valuetext="Bonaire" id="test">
+ Go Fish
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/separator_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/separator_orientation_unspecified-manual.html
new file mode 100644
index 0000000000..3a3901b424
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/separator_orientation_unspecified-manual.html
@@ -0,0 +1,120 @@
+<!doctype html>
+<html>
+ <head>
+ <title>separator orientation unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SEPARATOR"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXSplitter"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "splitter"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXHorizontalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SEPARATOR"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SEPARATOR"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Separator"
+ ],
+ [
+ "property",
+ "Orientation",
+ "is",
+ "horizontal"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "separator orientation unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for separator orientation unspecified.</p>
+ <div role="separator" id="test"></div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/separator_unfocusable_all_values_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/separator_unfocusable_all_values_unspecified-manual.html
new file mode 100644
index 0000000000..171370f422
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/separator_unfocusable_all_values_unspecified-manual.html
@@ -0,0 +1,90 @@
+<!doctype html>
+<html>
+ <head>
+ <title>separator unfocusable all values unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SEPARATOR"
+ ],
+ [
+ "property",
+ "interfaces",
+ "doesNotContain",
+ "Value"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXSplitter"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "splitter"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SEPARATOR"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Separator"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "separator unfocusable all values unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for separator unfocusable all values unspecified.</p>
+ <div role="separator" id="test">
+ Go Fish
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/separator_unfocusable_valuetext-manual.html b/testing/web-platform/tests/wai-aria/manual/separator_unfocusable_valuetext-manual.html
new file mode 100644
index 0000000000..db8ee6322d
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/separator_unfocusable_valuetext-manual.html
@@ -0,0 +1,116 @@
+<!doctype html>
+<html>
+ <head>
+ <title>separator unfocusable valuetext</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SEPARATOR"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "valuetext:Bonaire"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXSplitter"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "splitter"
+ ],
+ [
+ "property",
+ "AXValueDescription",
+ "isNot",
+ "Bonaire"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "objectAttributes",
+ "doesNotContain",
+ "valuetext:Bonaire"
+ ],
+ [
+ "property",
+ "value",
+ "isNot",
+ "Bonaire"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SEPARATOR"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Separator"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "doesNotContain",
+ "RangeValue"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "separator unfocusable valuetext"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for separator unfocusable valuetext.</p>
+ <div role="separator" aria-valuetext="Bonaire" id="test">
+ Go Fish
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/slider_all_values_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/slider_all_values_unspecified-manual.html
new file mode 100644
index 0000000000..0dea62e620
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/slider_all_values_unspecified-manual.html
@@ -0,0 +1,182 @@
+<!doctype html>
+<html>
+ <head>
+ <title>slider all values unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SLIDER"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Value"
+ ],
+ [
+ "result",
+ "atk_value_get_minimum_value()",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "atk_value_get_current_value()",
+ "is",
+ "50"
+ ],
+ [
+ "result",
+ "atk_value_get_maximum_value()",
+ "is",
+ "100"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXSlider"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "slider"
+ ],
+ [
+ "property",
+ "AXMinValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "AXValue",
+ "is",
+ "50"
+ ],
+ [
+ "property",
+ "AXMaxValue",
+ "is",
+ "100"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SLIDER"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "AccessibleValue"
+ ],
+ [
+ "property",
+ "minimumValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "currentValue",
+ "is",
+ "50"
+ ],
+ [
+ "property",
+ "maximumValue",
+ "is",
+ "100"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SLIDER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Slider"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "RangeValue"
+ ],
+ [
+ "result",
+ "RangeValue.Minimum",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "RangeValue.Value",
+ "is",
+ "50"
+ ],
+ [
+ "result",
+ "RangeValue.Maximum",
+ "is",
+ "100"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "slider all values unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for slider all values unspecified.</p>
+ <div role="slider" id="test">
+ Go Fish
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/slider_only_valuenow_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/slider_only_valuenow_unspecified-manual.html
new file mode 100644
index 0000000000..ffcbc78373
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/slider_only_valuenow_unspecified-manual.html
@@ -0,0 +1,182 @@
+<!doctype html>
+<html>
+ <head>
+ <title>slider only valuenow unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SLIDER"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Value"
+ ],
+ [
+ "result",
+ "atk_value_get_minimum_value()",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "atk_value_get_current_value()",
+ "is",
+ "20"
+ ],
+ [
+ "result",
+ "atk_value_get_maximum_value()",
+ "is",
+ "40"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXSlider"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "slider"
+ ],
+ [
+ "property",
+ "AXMinValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "AXValue",
+ "is",
+ "20"
+ ],
+ [
+ "property",
+ "AXMaxValue",
+ "is",
+ "40"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SLIDER"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "AccessibleValue"
+ ],
+ [
+ "property",
+ "minimumValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "currentValue",
+ "is",
+ "20"
+ ],
+ [
+ "property",
+ "maximumValue",
+ "is",
+ "40"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SLIDER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Slider"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "RangeValue"
+ ],
+ [
+ "result",
+ "RangeValue.Minimum",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "RangeValue.Value",
+ "is",
+ "20"
+ ],
+ [
+ "result",
+ "RangeValue.Maximum",
+ "is",
+ "40"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "slider only valuenow unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for slider only valuenow unspecified.</p>
+ <div role="slider" aria-valuemin="0" aria-valuemax="40" id="test">
+ Go Fish
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/slider_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/slider_orientation_unspecified-manual.html
new file mode 100644
index 0000000000..295b0a6196
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/slider_orientation_unspecified-manual.html
@@ -0,0 +1,132 @@
+<!doctype html>
+<html>
+ <head>
+ <title>slider orientation unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SLIDER"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Value"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXSlider"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "slider"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXHorizontalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SLIDER"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SLIDER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Slider"
+ ],
+ [
+ "property",
+ "Orientation",
+ "is",
+ "horizontal"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "RangeValue"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "slider orientation unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for slider orientation unspecified.</p>
+ <div role="slider" id="test"></div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/slider_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/manual/slider_readonly_false-manual.html
new file mode 100644
index 0000000000..f5a70984d5
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/slider_readonly_false-manual.html
@@ -0,0 +1,127 @@
+<!doctype html>
+<html>
+ <head>
+ <title>slider readonly false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SLIDER"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Value"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXSlider"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "slider"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SLIDER"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAcesssibleValue"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SLIDER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Slider"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "slider readonly false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for slider readonly false.</p>
+ <div id="test" role="slider" aria-readonly="false">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/slider_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/manual/slider_readonly_true-manual.html
new file mode 100644
index 0000000000..2588079d78
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/slider_readonly_true-manual.html
@@ -0,0 +1,127 @@
+<!doctype html>
+<html>
+ <head>
+ <title>slider readonly true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SLIDER"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Value"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXSlider"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "slider"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SLIDER"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAcesssibleValue"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SLIDER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Slider"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "slider readonly true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for slider readonly true.</p>
+ <div id="test" role="slider" aria-readonly="true">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/slider_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/slider_readonly_unspecified-manual.html
new file mode 100644
index 0000000000..271325a47d
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/slider_readonly_unspecified-manual.html
@@ -0,0 +1,127 @@
+<!doctype html>
+<html>
+ <head>
+ <title>slider readonly unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SLIDER"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Value"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXSlider"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "slider"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SLIDER"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAcesssibleValue"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SLIDER"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Slider"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "slider readonly unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for slider readonly unspecified.</p>
+ <div id="test" role="slider">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/spinbutton_all_values_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/spinbutton_all_values_unspecified-manual.html
new file mode 100644
index 0000000000..8da69af36d
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/spinbutton_all_values_unspecified-manual.html
@@ -0,0 +1,183 @@
+<!doctype html>
+<html>
+ <head>
+ <title>spinbutton all values unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SPIN_BUTTON"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Value"
+ ],
+ [
+ "result",
+ "atk_value_get_minimum_value()",
+ "isLTE",
+ "-9007199254740992"
+ ],
+ [
+ "result",
+ "atk_value_get_current_value()",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "atk_value_get_maximum_value()",
+ "isGTE",
+ "9007199254740992"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXIncrementor"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "stepper"
+ ],
+ [
+ "property",
+ "AXMinValue",
+ "isLTE",
+ "-9007199254740992"
+ ],
+ [
+ "property",
+ "AXValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "AXMaxValue",
+ "isGTE",
+ "9007199254740992"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SPINBUTTON"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "AccessibleValue"
+ ],
+ [
+ "property",
+ "minimumValue",
+ "isLTE",
+ "-9007199254740992"
+ ],
+ [
+ "property",
+ "currentValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "maximumValue",
+ "isGTE",
+ "9007199254740992"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SPINBUTTON"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Spinner"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "RangeValue"
+ ],
+ [
+ "result",
+ "RangeValue.Minimum",
+ "isLTE",
+ "-9007199254740992"
+ ],
+ [
+ "result",
+ "RangeValue.Value",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "RangeValue.Maximum",
+ "isGTE",
+ "9007199254740992"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "spinbutton all values unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for spinbutton all values unspecified.</p>
+ <div role="spinbutton" id="test">
+ Go Fish
+ </div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/spinbutton_only_aria-valuenow_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/spinbutton_only_aria-valuenow_unspecified-manual.html
new file mode 100644
index 0000000000..bbb94702fe
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/spinbutton_only_aria-valuenow_unspecified-manual.html
@@ -0,0 +1,183 @@
+<!doctype html>
+<html>
+ <head>
+ <title>spinbutton only aria-valuenow unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SPIN_BUTTON"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Value"
+ ],
+ [
+ "result",
+ "atk_value_get_minimum_value()",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "atk_value_get_current_value()",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "atk_value_get_maximum_value()",
+ "is",
+ "100"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXIncrementor"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "stepper"
+ ],
+ [
+ "property",
+ "AXMinValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "AXValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "AXMaxValue",
+ "is",
+ "100"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SPINBUTTON"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "AccessibleValue"
+ ],
+ [
+ "property",
+ "minimumValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "currentValue",
+ "is",
+ "0"
+ ],
+ [
+ "property",
+ "maximumValue",
+ "is",
+ "100"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SPINBUTTON"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Spinner"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "RangeValue"
+ ],
+ [
+ "result",
+ "RangeValue.Minimum",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "RangeValue.Value",
+ "is",
+ "0"
+ ],
+ [
+ "result",
+ "RangeValue.Maximum",
+ "is",
+ "100"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "spinbutton only aria-valuenow unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for spinbutton only aria-valuenow unspecified.</p>
+ <div role="spinbutton" aria-valuemin="0" aria-valuemax="100" id="test">
+ Go Fish
+ </div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/spinbutton_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/manual/spinbutton_readonly_false-manual.html
new file mode 100644
index 0000000000..5e9429ca28
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/spinbutton_readonly_false-manual.html
@@ -0,0 +1,127 @@
+<!doctype html>
+<html>
+ <head>
+ <title>spinbutton readonly false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SPIN_BUTTON"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Value"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXIncrementor"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "stepper"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SPINBUTTON"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAcesssibleValue"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SPINBUTTON"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Spinner"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "spinbutton readonly false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for spinbutton readonly false.</p>
+ <div id="test" role="spinbutton" aria-readonly="false">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/spinbutton_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/manual/spinbutton_readonly_true-manual.html
new file mode 100644
index 0000000000..a7a3abe632
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/spinbutton_readonly_true-manual.html
@@ -0,0 +1,127 @@
+<!doctype html>
+<html>
+ <head>
+ <title>spinbutton readonly true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SPIN_BUTTON"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Value"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXIncrementor"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "stepper"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SPINBUTTON"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAcesssibleValue"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SPINBUTTON"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Spinner"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "spinbutton readonly true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for spinbutton readonly true.</p>
+ <div id="test" role="spinbutton" aria-readonly="true">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/spinbutton_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/spinbutton_readonly_unspecified-manual.html
new file mode 100644
index 0000000000..0976b0737c
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/spinbutton_readonly_unspecified-manual.html
@@ -0,0 +1,127 @@
+<!doctype html>
+<html>
+ <head>
+ <title>spinbutton readonly unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SPIN_BUTTON"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Value"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXIncrementor"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "stepper"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SPINBUTTON"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAcesssibleValue"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_SPINBUTTON"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Spinner"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "spinbutton readonly unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for spinbutton readonly unspecified.</p>
+ <div id="test" role="spinbutton">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/switch_checked_false-manual.html b/testing/web-platform/tests/wai-aria/manual/switch_checked_false-manual.html
new file mode 100644
index 0000000000..ac61802bdf
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/switch_checked_false-manual.html
@@ -0,0 +1,124 @@
+<!doctype html>
+<html>
+ <head>
+ <title>switch checked false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TOGGLE_BUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_CHECKABLE"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_CHECKED"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCheckBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSwitch"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "switch"
+ ],
+ [
+ "property",
+ "AXValue",
+ "is",
+ "0"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_TOGGLE_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:switch"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "checkable:true"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "toggleswitch"
+ ],
+ [
+ "property",
+ "Toggle.ToggleState",
+ "is",
+ "Off"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "switch checked false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for switch checked false.</p>
+ <div id='test' role='switch' aria-checked='false' tabindex='0' class='switch'>power</div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/switch_checked_mixed-manual.html b/testing/web-platform/tests/wai-aria/manual/switch_checked_mixed-manual.html
new file mode 100644
index 0000000000..a674c7d7bc
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/switch_checked_mixed-manual.html
@@ -0,0 +1,130 @@
+<!doctype html>
+<html>
+ <head>
+ <title>switch checked mixed</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TOGGLE_BUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_CHECKABLE"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_INDETERMINATE"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_CHECKED"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCheckBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSwitch"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "switch"
+ ],
+ [
+ "property",
+ "AXValue",
+ "is",
+ "0"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_TOGGLE_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:switch"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "checkable:true"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "toggleswitch"
+ ],
+ [
+ "property",
+ "Toggle.ToggleState",
+ "is",
+ "Off"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "switch checked mixed"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for switch checked mixed.</p>
+ <div id='test' role='switch' aria-checked='mixed' tabindex='0' class='switch'>power</div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/switch_checked_true-manual.html b/testing/web-platform/tests/wai-aria/manual/switch_checked_true-manual.html
new file mode 100644
index 0000000000..e23e723561
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/switch_checked_true-manual.html
@@ -0,0 +1,138 @@
+<!doctype html>
+<html>
+ <head>
+ <title>switch checked true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TOGGLE_BUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_CHECKABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_CHECKED"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCheckBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSwitch"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "switch"
+ ],
+ [
+ "property",
+ "AXValue",
+ "is",
+ "1"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_TOGGLE_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:switch"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "checkable:true"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_CHECKED"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "controlPatterns",
+ "contains",
+ "Toggle"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "toggleswitch"
+ ],
+ [
+ "property",
+ "Toggle.ToggleState",
+ "is",
+ "On"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "switch checked true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for switch checked true.</p>
+ <div id='test' role='switch' aria-checked='true' tabindex='0'>power</div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/switch_checked_undefined-manual.html b/testing/web-platform/tests/wai-aria/manual/switch_checked_undefined-manual.html
new file mode 100644
index 0000000000..4f5399e88c
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/switch_checked_undefined-manual.html
@@ -0,0 +1,124 @@
+<!doctype html>
+<html>
+ <head>
+ <title>switch checked undefined</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TOGGLE_BUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_CHECKABLE"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_CHECKED"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCheckBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSwitch"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "switch"
+ ],
+ [
+ "property",
+ "AXValue",
+ "is",
+ "0"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_TOGGLE_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:switch"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "checkable:true"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "toggleswitch"
+ ],
+ [
+ "property",
+ "Toggle.ToggleState",
+ "is",
+ "Off"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "switch checked undefined"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for switch checked undefined.</p>
+ <div id='test' role='switch' tabindex='0' class='switch'>power</div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/switch_checked_value_changes-manual.html b/testing/web-platform/tests/wai-aria/manual/switch_checked_value_changes-manual.html
new file mode 100644
index 0000000000..b58e52fefb
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/switch_checked_value_changes-manual.html
@@ -0,0 +1,163 @@
+<!doctype html>
+<html>
+ <head>
+ <title>switch checked value changes</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "attribute" : "aria-checked",
+ "element" : "test",
+ "title" : "step 1",
+ "type" : "attribute",
+ "value" : "\"true\""
+ },
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TOGGLE_BUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_CHECKABLE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_CHECKED"
+ ],
+ [
+ "event",
+ "type",
+ "is",
+ "object:state-changed:checked"
+ ],
+ [
+ "event",
+ "detail1",
+ "is",
+ "1"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "event",
+ "type",
+ "is",
+ "AXValueChanged"
+ ],
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCheckBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSwitch"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "switch"
+ ],
+ [
+ "property",
+ "AXValue",
+ "is",
+ "1"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_TOGGLE_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:switch"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "checkable:true"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "event",
+ "type",
+ "is",
+ "EVENT_OBJECT_STATECHANGE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "toggleswitch"
+ ],
+ [
+ "property",
+ "Toggle.ToggleState",
+ "is",
+ "On"
+ ],
+ [
+ "event",
+ "type",
+ "is",
+ "TogglePattern.ToggleStateProperty"
+ ]
+ ]
+ },
+ "title" : "step 2",
+ "type" : "test"
+ }
+ ],
+ "title" : "switch checked value changes"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for switch checked value changes.</p>
+ <div id='test' role='switch' aria-checked='false' tabindex='0' class='switch'>power</div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/switch_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/manual/switch_readonly_false-manual.html
new file mode 100644
index 0000000000..e68b6bb0d2
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/switch_readonly_false-manual.html
@@ -0,0 +1,119 @@
+<!doctype html>
+<html>
+ <head>
+ <title>switch readonly false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TOGGLE_BUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCheckBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSwitch"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "switch"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_TOGGLE_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:switch"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "toggleswitch"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "switch readonly false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for switch readonly false.</p>
+ <div id="test" role="switch" aria-readonly="false">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/switch_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/manual/switch_readonly_true-manual.html
new file mode 100644
index 0000000000..605d2d0d9a
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/switch_readonly_true-manual.html
@@ -0,0 +1,119 @@
+<!doctype html>
+<html>
+ <head>
+ <title>switch readonly true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TOGGLE_BUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCheckBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSwitch"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "switch"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "false"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_TOGGLE_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:switch"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "toggleswitch"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "switch readonly true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for switch readonly true.</p>
+ <div id="test" role="switch" aria-readonly="true">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/switch_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/switch_readonly_unspecified-manual.html
new file mode 100644
index 0000000000..0fd582c0e9
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/switch_readonly_unspecified-manual.html
@@ -0,0 +1,119 @@
+<!doctype html>
+<html>
+ <head>
+ <title>switch readonly unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TOGGLE_BUTTON"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_READ_ONLY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXCheckBox"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXSwitch"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "switch"
+ ],
+ [
+ "result",
+ "AXUIElementIsAttributeSettable(AXValue)",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "IA2_ROLE_TOGGLE_BUTTON"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:switch"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_EDITABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Button"
+ ],
+ [
+ "property",
+ "LocalizedControlType",
+ "is",
+ "toggleswitch"
+ ],
+ [
+ "property",
+ "Value.IsReadOnly",
+ "is",
+ "false"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "switch readonly unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for switch readonly unspecified.</p>
+ <div id="test" role="switch">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/tab_posinset_and_setsize-manual.html b/testing/web-platform/tests/wai-aria/manual/tab_posinset_and_setsize-manual.html
new file mode 100644
index 0000000000..f27f485ac9
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/tab_posinset_and_setsize-manual.html
@@ -0,0 +1,189 @@
+<!doctype html>
+<html>
+ <head>
+ <title>tab posinset and setsize</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PAGE_TAB"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SELECTABLE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "posinset:3"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "setsize:7"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXRadioButton"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "tab"
+ ],
+ [
+ "property",
+ "AXARIAPosInSet",
+ "is",
+ "3"
+ ],
+ [
+ "property",
+ "AXARIASetSize",
+ "is",
+ "7"
+ ],
+ [
+ "property",
+ "AXSelected",
+ "is",
+ "true"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PAGETAB"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "posinset:3"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "setsize:7"
+ ],
+ [
+ "property",
+ "groupPosition",
+ "contains",
+ "similarItemsInGroup:7"
+ ],
+ [
+ "property",
+ "groupPosition",
+ "contains",
+ "positionInGroup:3"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PAGETAB"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_SELECTABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "TabItem"
+ ],
+ [
+ "property",
+ "AriaProperties.posinset",
+ "is",
+ "3"
+ ],
+ [
+ "property",
+ "AriaProperties.setsize",
+ "is",
+ "7"
+ ],
+ [
+ "property",
+ "SelectionItem",
+ "isNot",
+ "IsSelected"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "tab posinset and setsize"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for tab posinset and setsize.</p>
+ <div role='tabpanel'>
+ <div role='tab' aria-selected='false'>Hello Mary</div>
+ <div role='tab' id='test' aria-selected='true' aria-posinset='3' aria-setsize='7'>Hello Bob</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/table_colcount_-1-manual.html b/testing/web-platform/tests/wai-aria/manual/table_colcount_-1-manual.html
new file mode 100644
index 0000000000..2135f6ed8d
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/table_colcount_-1-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>table colcount -1</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colcount:-1"
+ ],
+ [
+ "result",
+ "atk_table_get_n_columns()",
+ "is",
+ "-1"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTable"
+ ],
+ [
+ "property",
+ "AXARIAColumnCount",
+ "is",
+ "-1"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TABLE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTable2"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colcount:-1"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Table"
+ ],
+ [
+ "property",
+ "Table.ColumnCount",
+ "is",
+ "-1"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "table colcount -1"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for table colcount -1.</p>
+ <div role="table" id="test" aria-colcount="-1">
+ <div role="row">
+ <div role="cell" aria-colindex="4" >test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/table_colcount_8-manual.html b/testing/web-platform/tests/wai-aria/manual/table_colcount_8-manual.html
new file mode 100644
index 0000000000..1b8e0affdd
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/table_colcount_8-manual.html
@@ -0,0 +1,112 @@
+<!doctype html>
+<html>
+ <head>
+ <title>table colcount 8</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colcount:8"
+ ],
+ [
+ "result",
+ "atk_table_get_n_columns()",
+ "is",
+ "8"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTable"
+ ],
+ [
+ "property",
+ "AXARIAColumnCount",
+ "is",
+ "8"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTable2"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colcount:8"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Table"
+ ],
+ [
+ "property",
+ "Table.ColumnCount",
+ "is",
+ "8"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "table colcount 8"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for table colcount 8.</p>
+ <div role="table" id="test" aria-colcount="8">
+ <div role="row">
+ <div role="cell" aria-colindex="4">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/table_rowcount_-1-manual.html b/testing/web-platform/tests/wai-aria/manual/table_rowcount_-1-manual.html
new file mode 100644
index 0000000000..5e7b5b8bf4
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/table_rowcount_-1-manual.html
@@ -0,0 +1,126 @@
+<!doctype html>
+<html>
+ <head>
+ <title>table rowcount -1</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowcount:-1"
+ ],
+ [
+ "result",
+ "atk_table_get_n_rows()",
+ "is",
+ "-1"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTable"
+ ],
+ [
+ "property",
+ "AXARIARowCount",
+ "contains",
+ "-1"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TABLE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTable2"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "xml-roles:table"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowcount:-1"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Table"
+ ],
+ [
+ "property",
+ "Table.RowCount",
+ "is",
+ "-1"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "table rowcount -1"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for table rowcount -1.</p>
+ <div role='table' id='test' aria-rowcount='-1' aria-colcount='2'>
+ <div role='row'>
+ <span role='cell'>
+ <button>hello</button>
+ </span>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/table_rowcount_3-manual.html b/testing/web-platform/tests/wai-aria/manual/table_rowcount_3-manual.html
new file mode 100644
index 0000000000..5bfad69b24
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/table_rowcount_3-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>table rowcount 3</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TABLE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowcount:3"
+ ],
+ [
+ "result",
+ "atk_table_get_n_rows()",
+ "is",
+ "3"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTable"
+ ],
+ [
+ "property",
+ "AXARIARowCount",
+ "is",
+ "3"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TABLE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTable2"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowcount:3"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Table"
+ ],
+ [
+ "property",
+ "Table.RowCount",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "table rowcount 3"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for table rowcount 3.</p>
+ <div role='table' id='test' aria-rowcount='3' aria-colcount='2'>
+ <div role='row'>
+ <span role='cell'>cheese</span>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/tablist_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/manual/tablist_orientation_horizontal-manual.html
new file mode 100644
index 0000000000..104668cbb9
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/tablist_orientation_horizontal-manual.html
@@ -0,0 +1,142 @@
+<!doctype html>
+<html>
+ <head>
+ <title>tablist orientation horizontal</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PAGE_TAB_LIST"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Selection"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HORIZONTAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_VERTICAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTabGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "tab group"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXHorizontalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PAGETABLIST"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PAGETABLIST"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Tab"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "selection pattern"
+ ],
+ [
+ "property",
+ "Orientation",
+ "is",
+ "horizontal"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "tablist orientation horizontal"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for tablist orientation horizontal.</p>
+ <div role="tablist" aria-orientation="horizontal" id="test">
+ <div role="tab" tabindex="0">Tab1</div><div role="tab" tabindex="-1">Tab2</div>
+ </div>
+ <div role="tabpanel"></div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/tablist_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/tablist_orientation_unspecified-manual.html
new file mode 100644
index 0000000000..001c2ee77b
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/tablist_orientation_unspecified-manual.html
@@ -0,0 +1,136 @@
+<!doctype html>
+<html>
+ <head>
+ <title>tablist orientation unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PAGE_TAB_LIST"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Selection"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTabGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "tab group"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXHorizontalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PAGETABLIST"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PAGETABLIST"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Tab"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "selection pattern"
+ ],
+ [
+ "property",
+ "Orientation",
+ "is",
+ "horizontal"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "tablist orientation unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for tablist orientation unspecified.</p>
+ <div role="tablist" id="test">
+ <div role="tab" tabindex="0">Tab1</div><div role="tab" tabindex="-1">Tab2</div>
+ </div>
+ <div role="tabpanel"></div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/tablist_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/manual/tablist_orientation_vertical-manual.html
new file mode 100644
index 0000000000..f6fe16e895
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/tablist_orientation_vertical-manual.html
@@ -0,0 +1,130 @@
+<!doctype html>
+<html>
+ <head>
+ <title>tablist orientation vertical</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_PAGE_TAB_LIST"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Selection"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_VERTICAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTabGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "tab group"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXVerticalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_PAGETABLIST"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Tab"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "selection pattern"
+ ],
+ [
+ "property",
+ "Orientation",
+ "is",
+ "vertical"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "tablist orientation vertical"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for tablist orientation vertical.</p>
+ <div role="tablist" aria-orientation="vertical" id="test">
+ <div role="tab" tabindex="0">Tab1</div><div role="tab" tabindex="-1">Tab2</div>
+ </div>
+ <div role="tabpanel"></div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/term_role-manual.html b/testing/web-platform/tests/wai-aria/manual/term_role-manual.html
new file mode 100644
index 0000000000..ac5030df95
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/term_role-manual.html
@@ -0,0 +1,106 @@
+<!doctype html>
+<html>
+ <head>
+ <title>term role</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_DESCRIPTION_TERM"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Text"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Hypertext"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXGroup"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXTerm"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "term"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TERM"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "ROLE_SYSTEM_READONLY"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Text"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "term role"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for term role.</p>
+ <div role="term" id='test' aria-describedby="dfn">
+ w3c
+ </div>
+ <div role="definition" id="dfn">
+ World Wide Web Consortium
+ </div>
+
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/textbox_placeholder-manual.html b/testing/web-platform/tests/wai-aria/manual/textbox_placeholder-manual.html
new file mode 100644
index 0000000000..fdf0635be6
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/textbox_placeholder-manual.html
@@ -0,0 +1,134 @@
+<!doctype html>
+<html>
+ <head>
+ <title>textbox placeholder</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_ENTRY"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "EditableText"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SINGLE_LINE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "placeholder-text:DD/MM/YYYY"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTextField"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "text field"
+ ],
+ [
+ "property",
+ "AXPlaceholderValue",
+ "is",
+ "DD/MM/YYYY"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_SINGLE_LINE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "placeholder-text:DD/MM/YYYY"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TEXT"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Edit"
+ ],
+ [
+ "result",
+ "AriaProperties.placeholder",
+ "is",
+ "DD/MM/YYYY"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "textbox placeholder"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for textbox placeholder.</p>
+ <div contenteditable="true" role="textbox" aria-placeholder="DD/MM/YYYY" id="test">
+ "DD/MM/YYYY"
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/toolbar_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/manual/toolbar_orientation_horizontal-manual.html
new file mode 100644
index 0000000000..1b8fda8dd6
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/toolbar_orientation_horizontal-manual.html
@@ -0,0 +1,122 @@
+<!doctype html>
+<html>
+ <head>
+ <title>toolbar orientation horizontal</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TOOL_BAR"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXToolbar"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "toolbar"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXHorizontalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TOOLBAR"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TOOLBAR"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "ToolBar"
+ ],
+ [
+ "property",
+ "Orientation",
+ "is",
+ "horizontal"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "toolbar orientation horizontal"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for toolbar orientation horizontal.</p>
+ <div role="toolbar" aria-orientation="horizontal" id="test">
+ <button value="b1"> <button value="b2">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/toolbar_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/toolbar_orientation_unspecified-manual.html
new file mode 100644
index 0000000000..4607511874
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/toolbar_orientation_unspecified-manual.html
@@ -0,0 +1,122 @@
+<!doctype html>
+<html>
+ <head>
+ <title>toolbar orientation unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TOOL_BAR"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXToolbar"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "toolbar"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXHorizontalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TOOLBAR"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TOOLBAR"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "ToolBar"
+ ],
+ [
+ "property",
+ "Orientation",
+ "is",
+ "horizontal"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "toolbar orientation unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for toolbar orientation unspecified.</p>
+ <div role="toolbar" id="test">
+ <button value="b1"> <button value="b2">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/toolbar_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/manual/toolbar_orientation_vertical-manual.html
new file mode 100644
index 0000000000..792952d323
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/toolbar_orientation_vertical-manual.html
@@ -0,0 +1,122 @@
+<!doctype html>
+<html>
+ <head>
+ <title>toolbar orientation vertical</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TOOL_BAR"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_VERTICAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXToolbar"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "toolbar"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXVerticalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TOOLBAR"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_TOOLBAR"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "ToolBar"
+ ],
+ [
+ "property",
+ "Orientation",
+ "is",
+ "vertical"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "toolbar orientation vertical"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for toolbar orientation vertical.</p>
+ <div role="toolbar" aria-orientation="vertical" id="test">
+ <button value="b1"> <button value="b2">
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/tree_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/manual/tree_orientation_horizontal-manual.html
new file mode 100644
index 0000000000..15813f5f03
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/tree_orientation_horizontal-manual.html
@@ -0,0 +1,129 @@
+<!doctype html>
+<html>
+ <head>
+ <title>tree orientation horizontal</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TREE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Selection"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXOutline"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "outline"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXHorizontalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_OUTLINE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_HORIZONTAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_VERTICAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_OUTLINE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Tree"
+ ],
+ [
+ "property",
+ "Orientation",
+ "is",
+ "horizontal"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "tree orientation horizontal"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for tree orientation horizontal.</p>
+ <div role="tree" tabindex="0" aria-orientation="horizontal" aria-activedescendant="foo" id="test">
+ <div id="foo" role="treeitem">foo</div>
+ <div role="treeitem">baz</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/tree_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/tree_orientation_unspecified-manual.html
new file mode 100644
index 0000000000..dfc1bdcc58
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/tree_orientation_unspecified-manual.html
@@ -0,0 +1,129 @@
+<!doctype html>
+<html>
+ <head>
+ <title>tree orientation unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TREE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Selection"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_VERTICAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXOutline"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "outline"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXVerticalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_OUTLINE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_OUTLINE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Tree"
+ ],
+ [
+ "property",
+ "Orientation",
+ "is",
+ "vertical"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "tree orientation unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for tree orientation unspecified.</p>
+ <div role="tree" tabindex="0" aria-activedescendant="foo" id="test">
+ <div id="foo" role="treeitem">foo</div>
+ <div role="treeitem">baz</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/tree_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/manual/tree_orientation_vertical-manual.html
new file mode 100644
index 0000000000..b9afa33ff4
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/tree_orientation_vertical-manual.html
@@ -0,0 +1,129 @@
+<!doctype html>
+<html>
+ <head>
+ <title>tree orientation vertical</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TREE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Selection"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_VERTICAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXOutline"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "outline"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXVerticalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_OUTLINE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_HORIZONTAL"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_OUTLINE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "Tree"
+ ],
+ [
+ "property",
+ "Orientation",
+ "is",
+ "vertical"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "tree orientation vertical"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for tree orientation vertical.</p>
+ <div role="tree" tabindex="0" aria-orientation="vertical" aria-activedescendant="foo" id="test">
+ <div id="foo" role="treeitem">foo</div>
+ <div role="treeitem">baz</div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/treegrid_colcount_8-manual.html b/testing/web-platform/tests/wai-aria/manual/treegrid_colcount_8-manual.html
new file mode 100644
index 0000000000..a3e9ea1496
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/treegrid_colcount_8-manual.html
@@ -0,0 +1,118 @@
+<!doctype html>
+<html>
+ <head>
+ <title>treegrid colcount 8</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TREE_TABLE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colcount:8"
+ ],
+ [
+ "result",
+ "atk_table_get_n_columns()",
+ "is",
+ "8"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTable"
+ ],
+ [
+ "property",
+ "AXARIAColumnCount",
+ "is",
+ "8"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_OUTLINE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTable2"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "colcount:8"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_OUTLINE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataGrid"
+ ],
+ [
+ "property",
+ "DataGrid.ColumnCount",
+ "is",
+ "8"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "treegrid colcount 8"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for treegrid colcount 8.</p>
+ <div id="test" role="treegrid" aria-colcount="8">
+ <div role="row">
+ <div role="cell" aria-colindex="4">test cell</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/treegrid_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/manual/treegrid_orientation_horizontal-manual.html
new file mode 100644
index 0000000000..756153abf3
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/treegrid_orientation_horizontal-manual.html
@@ -0,0 +1,137 @@
+<!doctype html>
+<html>
+ <head>
+ <title>treegrid orientation horizontal</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TREE_TABLE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Selection"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTable"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "table"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXHorizontalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_OUTLINE"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_HORIZONTAL"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTable2"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_OUTLINE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataGrid"
+ ],
+ [
+ "property",
+ "Orientation",
+ "is",
+ "horizontal"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "treegrid orientation horizontal"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for treegrid orientation horizontal.</p>
+ <div role="treegrid" tabindex="0" aria-orientation="horizontal" aria-activedescendant="foo" id="test">
+ <div role="row">
+ <div role="cell" id="foo">c1</div>
+ <div role="cell">c2</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/treegrid_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/manual/treegrid_orientation_unspecified-manual.html
new file mode 100644
index 0000000000..d536e9afbe
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/treegrid_orientation_unspecified-manual.html
@@ -0,0 +1,155 @@
+<!doctype html>
+<html>
+ <head>
+ <title>treegrid orientation unspecified</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TREE_TABLE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Selection"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_HORIZONTAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTable"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "table"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "isNot",
+ "AXVerticalOrientation"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "isNot",
+ "AXHorizontalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_OUTLINE"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_HORIZONTAL"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTable2"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_OUTLINE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataGrid"
+ ],
+ [
+ "property",
+ "Orientation",
+ "isNot",
+ "vertical"
+ ],
+ [
+ "property",
+ "Orientation",
+ "isNot",
+ "horizontal"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "treegrid orientation unspecified"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for treegrid orientation unspecified.</p>
+ <div role="treegrid" tabindex="0" aria-activedescendant="foo" id="test">
+ <div role="row">
+ <div role="cell" id="foo">c1</div>
+ <div role="cell">c2</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/treegrid_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/manual/treegrid_orientation_vertical-manual.html
new file mode 100644
index 0000000000..62a19d0904
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/treegrid_orientation_vertical-manual.html
@@ -0,0 +1,137 @@
+<!doctype html>
+<html>
+ <head>
+ <title>treegrid orientation vertical</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TREE_TABLE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "Selection"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_VERTICAL"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTable"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "<nil>"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "table"
+ ],
+ [
+ "property",
+ "AXOrientation",
+ "is",
+ "AXVerticalOrientation"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_OUTLINE"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "IA2_STATE_VERTICAL"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "IA2_STATE_HORIZONTAL"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTable2"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_OUTLINE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataGrid"
+ ],
+ [
+ "property",
+ "Orientation",
+ "is",
+ "vertical"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "treegrid orientation vertical"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for treegrid orientation vertical.</p>
+ <div role="treegrid" tabindex="0" aria-orientation="vertical" aria-activedescendant="foo" id="test">
+ <div role="row">
+ <div role="cell" id="foo">c1</div>
+ <div role="cell">c2</div>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/treegrid_rowcount_3-manual.html b/testing/web-platform/tests/wai-aria/manual/treegrid_rowcount_3-manual.html
new file mode 100644
index 0000000000..9d9b8acf44
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/treegrid_rowcount_3-manual.html
@@ -0,0 +1,120 @@
+<!doctype html>
+<html>
+ <head>
+ <title>treegrid rowcount 3</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TREE_TABLE"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowcount:3"
+ ],
+ [
+ "result",
+ "atk_table_get_n_rows()",
+ "is",
+ "3"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXTable"
+ ],
+ [
+ "property",
+ "AXARIARowCount",
+ "is",
+ "3"
+ ]
+ ],
+ "IAccessible2" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_OUTLINE"
+ ],
+ [
+ "property",
+ "interfaces",
+ "contains",
+ "IAccessibleTable2"
+ ],
+ [
+ "property",
+ "objectAttributes",
+ "contains",
+ "rowcount:3"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_OUTLINE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "DataGrid"
+ ],
+ [
+ "property",
+ "DataGrid.RowCount",
+ "is",
+ "3"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "treegrid rowcount 3"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for treegrid rowcount 3.</p>
+ <div role='treegrid' id='test' aria-rowcount='3' aria-colcount='2'>
+ <div role='row'>
+ <span role='gridcell'>
+ <button>hello</button>
+ </span>
+ </div>
+ </div>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/treeitem_selected_false-manual.html b/testing/web-platform/tests/wai-aria/manual/treeitem_selected_false-manual.html
new file mode 100644
index 0000000000..684fda69b6
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/treeitem_selected_false-manual.html
@@ -0,0 +1,125 @@
+<!doctype html>
+<html>
+ <head>
+ <title>treeitem selected false</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TREE_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SELECTABLE"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXRow"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXOutlineRow"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "outline row"
+ ],
+ [
+ "property",
+ "AXSelected",
+ "is",
+ "false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_OUTLINEITEM"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_SELECTABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "TreeItem"
+ ],
+ [
+ "property",
+ "ControlPatterns",
+ "doesNotContain",
+ "SelectionItem"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "treeitem selected false"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for treeitem selected false.</p>
+ <UL role="tree">
+ <li role="treeitem" aria-selected="false" id="test">
+ Fish
+ </li>
+ <li role="treeitem">
+ beef
+ </li>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/treeitem_selected_true-manual.html b/testing/web-platform/tests/wai-aria/manual/treeitem_selected_true-manual.html
new file mode 100644
index 0000000000..b951c54dec
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/treeitem_selected_true-manual.html
@@ -0,0 +1,125 @@
+<!doctype html>
+<html>
+ <head>
+ <title>treeitem selected true</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TREE_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SELECTABLE"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXRow"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXOutlineRow"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "outline row"
+ ],
+ [
+ "property",
+ "AXSelected",
+ "is",
+ "true"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_OUTLINEITEM"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_SELECTABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "TreeItem"
+ ],
+ [
+ "property",
+ "SelectionItem.IsSelected",
+ "Is",
+ "true"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "treeitem selected true"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for treeitem selected true.</p>
+ <UL role="tree">
+ <li role="treeitem" aria-selected="true" id="test">
+ Fish
+ </li>
+ <li role="treeitem">
+ beef
+ </li>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/treeitem_selected_undefined-manual.html b/testing/web-platform/tests/wai-aria/manual/treeitem_selected_undefined-manual.html
new file mode 100644
index 0000000000..dddfd3826f
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/treeitem_selected_undefined-manual.html
@@ -0,0 +1,125 @@
+<!doctype html>
+<html>
+ <head>
+ <title>treeitem selected undefined</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_TREE_ITEM"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SELECTABLE"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "property",
+ "AXRole",
+ "is",
+ "AXRow"
+ ],
+ [
+ "property",
+ "AXSubrole",
+ "is",
+ "AXOutlineRow"
+ ],
+ [
+ "property",
+ "AXRoleDescription",
+ "is",
+ "outline row"
+ ],
+ [
+ "property",
+ "AXSelected",
+ "is",
+ "false"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "property",
+ "role",
+ "is",
+ "ROLE_SYSTEM_OUTLINEITEM"
+ ],
+ [
+ "property",
+ "states",
+ "doesNotContain",
+ "STATE_SYSTEM_SELECTED"
+ ],
+ [
+ "property",
+ "states",
+ "contains",
+ "STATE_SYSTEM_SELECTABLE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "property",
+ "ControlType",
+ "is",
+ "TreeItem"
+ ],
+ [
+ "property",
+ "ControlPatterns",
+ "doesNotContain",
+ "SelectionItem"
+ ]
+ ]
+ },
+ "title" : "step 1",
+ "type" : "test"
+ }
+ ],
+ "title" : "treeitem selected undefined"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for treeitem selected undefined.</p>
+ <UL role="tree">
+ <li role="treeitem" id="test">
+ Fish
+ </li>
+ <li role="treeitem">
+ beef
+ </li>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/wai-aria/manual/treeitem_selected_value_changes-manual.html b/testing/web-platform/tests/wai-aria/manual/treeitem_selected_value_changes-manual.html
new file mode 100644
index 0000000000..69734c82dd
--- /dev/null
+++ b/testing/web-platform/tests/wai-aria/manual/treeitem_selected_value_changes-manual.html
@@ -0,0 +1,146 @@
+<!doctype html>
+<html>
+ <head>
+ <title>treeitem selected value changes</title>
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+ <link rel="stylesheet" href="/wai-aria/scripts/manual.css">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/wai-aria/scripts/ATTAcomm.js"></script>
+ <script>
+ setup({explicit_timeout: true, explicit_done: true });
+
+ var theTest = new ATTAcomm(
+ {
+ "steps" : [
+ {
+ "attribute" : "aria-activedescendant",
+ "element" : "test1",
+ "title" : "step 1",
+ "type" : "attribute",
+ "value" : "\"test\" "
+ },
+ {
+ "attribute" : "aria-selected",
+ "element" : "test",
+ "title" : "step 2",
+ "type" : "attribute",
+ "value" : "\"true\""
+ },
+ {
+ "attribute" : "aria-selected",
+ "element" : "test2",
+ "title" : "step 3",
+ "type" : "attribute",
+ "value" : "\"false\""
+ },
+ {
+ "element" : "test",
+ "test" : {
+ "ATK" : [
+ [
+ "event",
+ "type",
+ "is",
+ "object:state-changed:selected"
+ ],
+ [
+ "event",
+ "detail1",
+ "is",
+ "1"
+ ]
+ ],
+ "MSAA" : [
+ [
+ "event",
+ "type",
+ "is",
+ "EVENT_OBJECT_SELECTION"
+ ],
+ [
+ "event",
+ "type",
+ "is",
+ "EVENT_OBJECT_STATECHANGE"
+ ]
+ ],
+ "UIA" : [
+ [
+ "event",
+ "type",
+ "is",
+ "UIA_SelectionItem_ElementSelectedEventId"
+ ]
+ ]
+ },
+ "title" : "step 4",
+ "type" : "test"
+ },
+ {
+ "element" : "test1",
+ "test" : {
+ "ATK" : [
+ [
+ "event",
+ "type",
+ "is",
+ "object:selection-changed"
+ ]
+ ],
+ "AXAPI" : [
+ [
+ "event",
+ "type",
+ "is",
+ "AXSelectedChildrenChanged"
+ ]
+ ]
+ },
+ "title" : "step 5",
+ "type" : "test"
+ },
+ {
+ "element" : "test2",
+ "test" : {
+ "ATK" : [
+ [
+ "event",
+ "type",
+ "is",
+ "object:state-changed:selected"
+ ],
+ [
+ "event",
+ "detail1",
+ "is",
+ "0"
+ ]
+ ]
+ },
+ "title" : "step 6",
+ "type" : "test"
+ }
+ ],
+ "title" : "treeitem selected value changes"
+}
+
+ ) ;
+ </script>
+ </head>
+ <body>
+ <p>This test examines the ARIA properties for treeitem selected value changes.</p>
+ <ul id="test1" aria-activedescendant="test2" role="tree">
+ <li role="treeitem" aria-selected="false" id="test">
+ Fish
+ </li>
+ <li id="test2" aria-selected="true" role="treeitem">
+ beef
+ </li>
+ </ul>
+
+ <div id="manualMode"></div>
+ <div id="log"></div>
+ <div id="ATTAmessages"></div>
+ </body>
+</html>