mirror of
				https://github.com/LadybirdBrowser/ladybird.git
				synced 2025-10-31 13:20:59 +00:00 
			
		
		
		
	 19567d96ec
			
		
	
	
		19567d96ec
		
	
	
	
	
		
			
			If we use the correct string for "switch", the special handling is not
necessary after 8961d5d2ce.
		
	
			
		
			
				
	
	
		
			136 lines
		
	
	
	
		
			7.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
	
		
			7.3 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, "alert")                        \
 | |
|     __ENUMERATE_ARIA_ROLE(alertdialog, "alertdialog")            \
 | |
|     __ENUMERATE_ARIA_ROLE(application, "application")            \
 | |
|     __ENUMERATE_ARIA_ROLE(article, "article")                    \
 | |
|     __ENUMERATE_ARIA_ROLE(banner, "banner")                      \
 | |
|     __ENUMERATE_ARIA_ROLE(blockquote, "blockquote")              \
 | |
|     __ENUMERATE_ARIA_ROLE(button, "button")                      \
 | |
|     __ENUMERATE_ARIA_ROLE(caption, "caption")                    \
 | |
|     __ENUMERATE_ARIA_ROLE(cell, "cell")                          \
 | |
|     __ENUMERATE_ARIA_ROLE(checkbox, "checkbox")                  \
 | |
|     __ENUMERATE_ARIA_ROLE(code, "code")                          \
 | |
|     __ENUMERATE_ARIA_ROLE(columnheader, "columnheader")          \
 | |
|     __ENUMERATE_ARIA_ROLE(combobox, "combobox")                  \
 | |
|     __ENUMERATE_ARIA_ROLE(command, "command")                    \
 | |
|     __ENUMERATE_ARIA_ROLE(complementary, "complementary")        \
 | |
|     __ENUMERATE_ARIA_ROLE(composite, "composite")                \
 | |
|     __ENUMERATE_ARIA_ROLE(contentinfo, "contentinfo")            \
 | |
|     __ENUMERATE_ARIA_ROLE(definition, "definition")              \
 | |
|     __ENUMERATE_ARIA_ROLE(deletion, "deletion")                  \
 | |
|     __ENUMERATE_ARIA_ROLE(dialog, "dialog")                      \
 | |
|     __ENUMERATE_ARIA_ROLE(directory, "directory")                \
 | |
|     __ENUMERATE_ARIA_ROLE(document, "document")                  \
 | |
|     __ENUMERATE_ARIA_ROLE(emphasis, "emphasis")                  \
 | |
|     __ENUMERATE_ARIA_ROLE(feed, "feed")                          \
 | |
|     __ENUMERATE_ARIA_ROLE(figure, "figure")                      \
 | |
|     __ENUMERATE_ARIA_ROLE(form, "form")                          \
 | |
|     __ENUMERATE_ARIA_ROLE(generic, "generic")                    \
 | |
|     __ENUMERATE_ARIA_ROLE(graphicsdocument, "graphics-document") \
 | |
|     __ENUMERATE_ARIA_ROLE(graphicsobject, "graphics-object")     \
 | |
|     __ENUMERATE_ARIA_ROLE(graphicssymbol, "graphics-symbol")     \
 | |
|     __ENUMERATE_ARIA_ROLE(grid, "grid")                          \
 | |
|     __ENUMERATE_ARIA_ROLE(gridcell, "gridcell")                  \
 | |
|     __ENUMERATE_ARIA_ROLE(group, "group")                        \
 | |
|     __ENUMERATE_ARIA_ROLE(heading, "heading")                    \
 | |
|     __ENUMERATE_ARIA_ROLE(image, "image")                        \
 | |
|     __ENUMERATE_ARIA_ROLE(img, "img")                            \
 | |
|     __ENUMERATE_ARIA_ROLE(input, "input")                        \
 | |
|     __ENUMERATE_ARIA_ROLE(insertion, "insertion")                \
 | |
|     __ENUMERATE_ARIA_ROLE(landmark, "landmark")                  \
 | |
|     __ENUMERATE_ARIA_ROLE(link, "link")                          \
 | |
|     __ENUMERATE_ARIA_ROLE(list, "list")                          \
 | |
|     __ENUMERATE_ARIA_ROLE(listbox, "listbox")                    \
 | |
|     __ENUMERATE_ARIA_ROLE(listitem, "listitem")                  \
 | |
|     __ENUMERATE_ARIA_ROLE(log, "log")                            \
 | |
|     __ENUMERATE_ARIA_ROLE(main, "main")                          \
 | |
|     __ENUMERATE_ARIA_ROLE(mark, "mark")                          \
 | |
|     __ENUMERATE_ARIA_ROLE(marquee, "marquee")                    \
 | |
|     __ENUMERATE_ARIA_ROLE(math, "math")                          \
 | |
|     __ENUMERATE_ARIA_ROLE(meter, "meter")                        \
 | |
|     __ENUMERATE_ARIA_ROLE(menu, "menu")                          \
 | |
|     __ENUMERATE_ARIA_ROLE(menubar, "menubar")                    \
 | |
|     __ENUMERATE_ARIA_ROLE(menuitem, "menuitem")                  \
 | |
|     __ENUMERATE_ARIA_ROLE(menuitemcheckbox, "menuitemcheckbox")  \
 | |
|     __ENUMERATE_ARIA_ROLE(menuitemradio, "menuitemradio")        \
 | |
|     __ENUMERATE_ARIA_ROLE(navigation, "navigation")              \
 | |
|     __ENUMERATE_ARIA_ROLE(none, "none")                          \
 | |
|     __ENUMERATE_ARIA_ROLE(note, "note")                          \
 | |
|     __ENUMERATE_ARIA_ROLE(option, "option")                      \
 | |
|     __ENUMERATE_ARIA_ROLE(paragraph, "paragraph")                \
 | |
|     __ENUMERATE_ARIA_ROLE(presentation, "presentation")          \
 | |
|     __ENUMERATE_ARIA_ROLE(progressbar, "progressbar")            \
 | |
|     __ENUMERATE_ARIA_ROLE(radio, "radio")                        \
 | |
|     __ENUMERATE_ARIA_ROLE(radiogroup, "radiogroup")              \
 | |
|     __ENUMERATE_ARIA_ROLE(range, "range")                        \
 | |
|     __ENUMERATE_ARIA_ROLE(region, "region")                      \
 | |
|     __ENUMERATE_ARIA_ROLE(roletype, "roletype")                  \
 | |
|     __ENUMERATE_ARIA_ROLE(row, "row")                            \
 | |
|     __ENUMERATE_ARIA_ROLE(rowgroup, "rowgroup")                  \
 | |
|     __ENUMERATE_ARIA_ROLE(rowheader, "rowheader")                \
 | |
|     __ENUMERATE_ARIA_ROLE(scrollbar, "scrollbar")                \
 | |
|     __ENUMERATE_ARIA_ROLE(search, "search")                      \
 | |
|     __ENUMERATE_ARIA_ROLE(searchbox, "searchbox")                \
 | |
|     __ENUMERATE_ARIA_ROLE(section, "section")                    \
 | |
|     __ENUMERATE_ARIA_ROLE(sectionfooter, "sectionfooter")        \
 | |
|     __ENUMERATE_ARIA_ROLE(sectionhead, "sectionhead")            \
 | |
|     __ENUMERATE_ARIA_ROLE(sectionheader, "sectionheader")        \
 | |
|     __ENUMERATE_ARIA_ROLE(select, "select")                      \
 | |
|     __ENUMERATE_ARIA_ROLE(separator, "separator")                \
 | |
|     __ENUMERATE_ARIA_ROLE(slider, "slider")                      \
 | |
|     __ENUMERATE_ARIA_ROLE(spinbutton, "spinbutton")              \
 | |
|     __ENUMERATE_ARIA_ROLE(status, "status")                      \
 | |
|     __ENUMERATE_ARIA_ROLE(strong, "strong")                      \
 | |
|     __ENUMERATE_ARIA_ROLE(structure, "structure")                \
 | |
|     __ENUMERATE_ARIA_ROLE(subscript, "subscript")                \
 | |
|     __ENUMERATE_ARIA_ROLE(suggestion, "suggestion")              \
 | |
|     __ENUMERATE_ARIA_ROLE(superscript, "superscript")            \
 | |
|     __ENUMERATE_ARIA_ROLE(switch_, "switch")                     \
 | |
|     __ENUMERATE_ARIA_ROLE(tab, "tab")                            \
 | |
|     __ENUMERATE_ARIA_ROLE(table, "table")                        \
 | |
|     __ENUMERATE_ARIA_ROLE(tablist, "tablist")                    \
 | |
|     __ENUMERATE_ARIA_ROLE(tabpanel, "tabpanel")                  \
 | |
|     __ENUMERATE_ARIA_ROLE(term, "term")                          \
 | |
|     __ENUMERATE_ARIA_ROLE(textbox, "textbox")                    \
 | |
|     __ENUMERATE_ARIA_ROLE(time, "time")                          \
 | |
|     __ENUMERATE_ARIA_ROLE(timer, "timer")                        \
 | |
|     __ENUMERATE_ARIA_ROLE(toolbar, "toolbar")                    \
 | |
|     __ENUMERATE_ARIA_ROLE(tooltip, "tooltip")                    \
 | |
|     __ENUMERATE_ARIA_ROLE(tree, "tree")                          \
 | |
|     __ENUMERATE_ARIA_ROLE(treegrid, "treegrid")                  \
 | |
|     __ENUMERATE_ARIA_ROLE(treeitem, "treeitem")                  \
 | |
|     __ENUMERATE_ARIA_ROLE(widget, "widget")                      \
 | |
|     __ENUMERATE_ARIA_ROLE(window, "window")
 | |
| 
 | |
| enum class Role {
 | |
| #define __ENUMERATE_ARIA_ROLE(name, attribute) 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 allows_name_from_content(Role);
 | |
| 
 | |
| }
 |