ladybird/Userland/Libraries/LibWeb/ARIA/Roles.h
Jonah fc3ee471ed LibWeb: Add ARIA::allows_name_from_content
This is required to implement accessible name and description
calculation.
2023-02-19 15:58:20 +01:00

130 lines
4.9 KiB
C++

/*
* Copyright (c) 2022, Jonah Shafran <jonahshafran@gmail.com>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/Forward.h>
#include <AK/StringView.h>
namespace Web::ARIA {
#define ENUMERATE_ARIA_ROLES \
__ENUMERATE_ARIA_ROLE(alert) \
__ENUMERATE_ARIA_ROLE(alertdialog) \
__ENUMERATE_ARIA_ROLE(application) \
__ENUMERATE_ARIA_ROLE(article) \
__ENUMERATE_ARIA_ROLE(banner) \
__ENUMERATE_ARIA_ROLE(blockquote) \
__ENUMERATE_ARIA_ROLE(button) \
__ENUMERATE_ARIA_ROLE(caption) \
__ENUMERATE_ARIA_ROLE(cell) \
__ENUMERATE_ARIA_ROLE(checkbox) \
__ENUMERATE_ARIA_ROLE(code) \
__ENUMERATE_ARIA_ROLE(columnheader) \
__ENUMERATE_ARIA_ROLE(combobox) \
__ENUMERATE_ARIA_ROLE(command) \
__ENUMERATE_ARIA_ROLE(complementary) \
__ENUMERATE_ARIA_ROLE(composite) \
__ENUMERATE_ARIA_ROLE(contentinfo) \
__ENUMERATE_ARIA_ROLE(definition) \
__ENUMERATE_ARIA_ROLE(deletion) \
__ENUMERATE_ARIA_ROLE(dialog) \
__ENUMERATE_ARIA_ROLE(directory) \
__ENUMERATE_ARIA_ROLE(document) \
__ENUMERATE_ARIA_ROLE(emphasis) \
__ENUMERATE_ARIA_ROLE(feed) \
__ENUMERATE_ARIA_ROLE(figure) \
__ENUMERATE_ARIA_ROLE(form) \
__ENUMERATE_ARIA_ROLE(generic) \
__ENUMERATE_ARIA_ROLE(grid) \
__ENUMERATE_ARIA_ROLE(gridcell) \
__ENUMERATE_ARIA_ROLE(group) \
__ENUMERATE_ARIA_ROLE(heading) \
__ENUMERATE_ARIA_ROLE(img) \
__ENUMERATE_ARIA_ROLE(input) \
__ENUMERATE_ARIA_ROLE(insertion) \
__ENUMERATE_ARIA_ROLE(landmark) \
__ENUMERATE_ARIA_ROLE(link) \
__ENUMERATE_ARIA_ROLE(list) \
__ENUMERATE_ARIA_ROLE(listbox) \
__ENUMERATE_ARIA_ROLE(listitem) \
__ENUMERATE_ARIA_ROLE(log) \
__ENUMERATE_ARIA_ROLE(main) \
__ENUMERATE_ARIA_ROLE(marquee) \
__ENUMERATE_ARIA_ROLE(math) \
__ENUMERATE_ARIA_ROLE(meter) \
__ENUMERATE_ARIA_ROLE(menu) \
__ENUMERATE_ARIA_ROLE(menubar) \
__ENUMERATE_ARIA_ROLE(menuitem) \
__ENUMERATE_ARIA_ROLE(menuitemcheckbox) \
__ENUMERATE_ARIA_ROLE(menuitemradio) \
__ENUMERATE_ARIA_ROLE(navigation) \
__ENUMERATE_ARIA_ROLE(none) \
__ENUMERATE_ARIA_ROLE(note) \
__ENUMERATE_ARIA_ROLE(option) \
__ENUMERATE_ARIA_ROLE(paragraph) \
__ENUMERATE_ARIA_ROLE(presentation) \
__ENUMERATE_ARIA_ROLE(progressbar) \
__ENUMERATE_ARIA_ROLE(radio) \
__ENUMERATE_ARIA_ROLE(radiogroup) \
__ENUMERATE_ARIA_ROLE(range) \
__ENUMERATE_ARIA_ROLE(region) \
__ENUMERATE_ARIA_ROLE(roletype) \
__ENUMERATE_ARIA_ROLE(row) \
__ENUMERATE_ARIA_ROLE(rowgroup) \
__ENUMERATE_ARIA_ROLE(rowheader) \
__ENUMERATE_ARIA_ROLE(scrollbar) \
__ENUMERATE_ARIA_ROLE(search) \
__ENUMERATE_ARIA_ROLE(searchbox) \
__ENUMERATE_ARIA_ROLE(section) \
__ENUMERATE_ARIA_ROLE(sectionhead) \
__ENUMERATE_ARIA_ROLE(select) \
__ENUMERATE_ARIA_ROLE(separator) \
__ENUMERATE_ARIA_ROLE(slider) \
__ENUMERATE_ARIA_ROLE(spinbutton) \
__ENUMERATE_ARIA_ROLE(status) \
__ENUMERATE_ARIA_ROLE(strong) \
__ENUMERATE_ARIA_ROLE(structure) \
__ENUMERATE_ARIA_ROLE(subscript) \
__ENUMERATE_ARIA_ROLE(superscript) \
__ENUMERATE_ARIA_ROLE(switch_) \
__ENUMERATE_ARIA_ROLE(tab) \
__ENUMERATE_ARIA_ROLE(table) \
__ENUMERATE_ARIA_ROLE(tablist) \
__ENUMERATE_ARIA_ROLE(tabpanel) \
__ENUMERATE_ARIA_ROLE(term) \
__ENUMERATE_ARIA_ROLE(textbox) \
__ENUMERATE_ARIA_ROLE(time) \
__ENUMERATE_ARIA_ROLE(timer) \
__ENUMERATE_ARIA_ROLE(toolbar) \
__ENUMERATE_ARIA_ROLE(tooltip) \
__ENUMERATE_ARIA_ROLE(tree) \
__ENUMERATE_ARIA_ROLE(treegrid) \
__ENUMERATE_ARIA_ROLE(treeitem) \
__ENUMERATE_ARIA_ROLE(widget) \
__ENUMERATE_ARIA_ROLE(window)
enum class Role {
#define __ENUMERATE_ARIA_ROLE(name) name,
ENUMERATE_ARIA_ROLES
#undef __ENUMERATE_ARIA_ROLE
};
StringView role_name(Role);
Optional<Role> role_from_string(StringView role_name);
bool is_abstract_role(Role);
bool is_widget_role(Role);
bool is_document_structure_role(Role);
bool is_landmark_role(Role);
bool is_live_region_role(Role);
bool is_windows_role(Role);
bool is_non_abstract_role(Role);
bool allows_name_from_content(Role);
}