Roles.h 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. /*
  2. * Copyright (c) 2022, Jonah Shafran <jonahshafran@gmail.com>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/Forward.h>
  8. #include <AK/StringView.h>
  9. namespace Web::ARIA {
  10. #define ENUMERATE_ARIA_ROLES \
  11. __ENUMERATE_ARIA_ROLE(alert) \
  12. __ENUMERATE_ARIA_ROLE(alertdialog) \
  13. __ENUMERATE_ARIA_ROLE(application) \
  14. __ENUMERATE_ARIA_ROLE(article) \
  15. __ENUMERATE_ARIA_ROLE(banner) \
  16. __ENUMERATE_ARIA_ROLE(blockquote) \
  17. __ENUMERATE_ARIA_ROLE(button) \
  18. __ENUMERATE_ARIA_ROLE(caption) \
  19. __ENUMERATE_ARIA_ROLE(cell) \
  20. __ENUMERATE_ARIA_ROLE(checkbox) \
  21. __ENUMERATE_ARIA_ROLE(code) \
  22. __ENUMERATE_ARIA_ROLE(columnheader) \
  23. __ENUMERATE_ARIA_ROLE(combobox) \
  24. __ENUMERATE_ARIA_ROLE(command) \
  25. __ENUMERATE_ARIA_ROLE(complementary) \
  26. __ENUMERATE_ARIA_ROLE(composite) \
  27. __ENUMERATE_ARIA_ROLE(contentinfo) \
  28. __ENUMERATE_ARIA_ROLE(definition) \
  29. __ENUMERATE_ARIA_ROLE(deletion) \
  30. __ENUMERATE_ARIA_ROLE(dialog) \
  31. __ENUMERATE_ARIA_ROLE(directory) \
  32. __ENUMERATE_ARIA_ROLE(document) \
  33. __ENUMERATE_ARIA_ROLE(emphasis) \
  34. __ENUMERATE_ARIA_ROLE(feed) \
  35. __ENUMERATE_ARIA_ROLE(figure) \
  36. __ENUMERATE_ARIA_ROLE(form) \
  37. __ENUMERATE_ARIA_ROLE(generic) \
  38. __ENUMERATE_ARIA_ROLE(grid) \
  39. __ENUMERATE_ARIA_ROLE(gridcell) \
  40. __ENUMERATE_ARIA_ROLE(group) \
  41. __ENUMERATE_ARIA_ROLE(heading) \
  42. __ENUMERATE_ARIA_ROLE(img) \
  43. __ENUMERATE_ARIA_ROLE(input) \
  44. __ENUMERATE_ARIA_ROLE(insertion) \
  45. __ENUMERATE_ARIA_ROLE(landmark) \
  46. __ENUMERATE_ARIA_ROLE(link) \
  47. __ENUMERATE_ARIA_ROLE(list) \
  48. __ENUMERATE_ARIA_ROLE(listbox) \
  49. __ENUMERATE_ARIA_ROLE(listitem) \
  50. __ENUMERATE_ARIA_ROLE(log) \
  51. __ENUMERATE_ARIA_ROLE(main) \
  52. __ENUMERATE_ARIA_ROLE(marquee) \
  53. __ENUMERATE_ARIA_ROLE(math) \
  54. __ENUMERATE_ARIA_ROLE(meter) \
  55. __ENUMERATE_ARIA_ROLE(menu) \
  56. __ENUMERATE_ARIA_ROLE(menubar) \
  57. __ENUMERATE_ARIA_ROLE(menuitem) \
  58. __ENUMERATE_ARIA_ROLE(menuitemcheckbox) \
  59. __ENUMERATE_ARIA_ROLE(menuitemradio) \
  60. __ENUMERATE_ARIA_ROLE(navigation) \
  61. __ENUMERATE_ARIA_ROLE(none) \
  62. __ENUMERATE_ARIA_ROLE(note) \
  63. __ENUMERATE_ARIA_ROLE(option) \
  64. __ENUMERATE_ARIA_ROLE(paragraph) \
  65. __ENUMERATE_ARIA_ROLE(presentation) \
  66. __ENUMERATE_ARIA_ROLE(progressbar) \
  67. __ENUMERATE_ARIA_ROLE(radio) \
  68. __ENUMERATE_ARIA_ROLE(radiogroup) \
  69. __ENUMERATE_ARIA_ROLE(range) \
  70. __ENUMERATE_ARIA_ROLE(region) \
  71. __ENUMERATE_ARIA_ROLE(roletype) \
  72. __ENUMERATE_ARIA_ROLE(row) \
  73. __ENUMERATE_ARIA_ROLE(rowgroup) \
  74. __ENUMERATE_ARIA_ROLE(rowheader) \
  75. __ENUMERATE_ARIA_ROLE(scrollbar) \
  76. __ENUMERATE_ARIA_ROLE(search) \
  77. __ENUMERATE_ARIA_ROLE(searchbox) \
  78. __ENUMERATE_ARIA_ROLE(section) \
  79. __ENUMERATE_ARIA_ROLE(sectionhead) \
  80. __ENUMERATE_ARIA_ROLE(select) \
  81. __ENUMERATE_ARIA_ROLE(separator) \
  82. __ENUMERATE_ARIA_ROLE(slider) \
  83. __ENUMERATE_ARIA_ROLE(spinbutton) \
  84. __ENUMERATE_ARIA_ROLE(status) \
  85. __ENUMERATE_ARIA_ROLE(strong) \
  86. __ENUMERATE_ARIA_ROLE(structure) \
  87. __ENUMERATE_ARIA_ROLE(subscript) \
  88. __ENUMERATE_ARIA_ROLE(superscript) \
  89. __ENUMERATE_ARIA_ROLE(switch_) \
  90. __ENUMERATE_ARIA_ROLE(tab) \
  91. __ENUMERATE_ARIA_ROLE(table) \
  92. __ENUMERATE_ARIA_ROLE(tablist) \
  93. __ENUMERATE_ARIA_ROLE(tabpanel) \
  94. __ENUMERATE_ARIA_ROLE(term) \
  95. __ENUMERATE_ARIA_ROLE(textbox) \
  96. __ENUMERATE_ARIA_ROLE(time) \
  97. __ENUMERATE_ARIA_ROLE(timer) \
  98. __ENUMERATE_ARIA_ROLE(toolbar) \
  99. __ENUMERATE_ARIA_ROLE(tooltip) \
  100. __ENUMERATE_ARIA_ROLE(tree) \
  101. __ENUMERATE_ARIA_ROLE(treegrid) \
  102. __ENUMERATE_ARIA_ROLE(treeitem) \
  103. __ENUMERATE_ARIA_ROLE(widget) \
  104. __ENUMERATE_ARIA_ROLE(window)
  105. enum class Role {
  106. #define __ENUMERATE_ARIA_ROLE(name) name,
  107. ENUMERATE_ARIA_ROLES
  108. #undef __ENUMERATE_ARIA_ROLE
  109. };
  110. StringView role_name(Role);
  111. Optional<Role> role_from_string(StringView role_name);
  112. bool is_abstract_role(Role);
  113. bool is_widget_role(Role);
  114. bool is_document_structure_role(Role);
  115. bool is_landmark_role(Role);
  116. bool is_live_region_role(Role);
  117. bool is_windows_role(Role);
  118. bool is_non_abstract_role(Role);
  119. bool allows_name_from_content(Role);
  120. }