#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum AriaRole {
Alert,
AlertDialog,
Application,
Article,
Banner,
Button,
Cell,
Checkbox,
ColumnHeader,
Combobox,
Complementary,
ContentInfo,
Definition,
Dialog,
Directory,
Document,
Feed,
Figure,
Form,
Grid,
GridCell,
Group,
Heading,
Img,
Link,
List,
ListBox,
ListItem,
Log,
Main,
Marquee,
Math,
Menu,
MenuBar,
MenuItem,
MenuItemCheckbox,
MenuItemRadio,
Navigation,
None,
Note,
Option,
Presentation,
ProgressBar,
Radio,
RadioGroup,
Region,
Row,
RowGroup,
RowHeader,
ScrollBar,
Search,
SearchBox,
Separator,
Slider,
SpinButton,
Status,
Switch,
Tab,
Table,
TabList,
TabPanel,
Term,
TextBox,
Timer,
Toolbar,
Tooltip,
Tree,
TreeGrid,
TreeItem,
}
impl AriaRole {
pub fn as_str(&self) -> &'static str {
match self {
AriaRole::Alert => "alert",
AriaRole::AlertDialog => "alertdialog",
AriaRole::Application => "application",
AriaRole::Article => "article",
AriaRole::Banner => "banner",
AriaRole::Button => "button",
AriaRole::Cell => "cell",
AriaRole::Checkbox => "checkbox",
AriaRole::ColumnHeader => "columnheader",
AriaRole::Combobox => "combobox",
AriaRole::Complementary => "complementary",
AriaRole::ContentInfo => "contentinfo",
AriaRole::Definition => "definition",
AriaRole::Dialog => "dialog",
AriaRole::Directory => "directory",
AriaRole::Document => "document",
AriaRole::Feed => "feed",
AriaRole::Figure => "figure",
AriaRole::Form => "form",
AriaRole::Grid => "grid",
AriaRole::GridCell => "gridcell",
AriaRole::Group => "group",
AriaRole::Heading => "heading",
AriaRole::Img => "img",
AriaRole::Link => "link",
AriaRole::List => "list",
AriaRole::ListBox => "listbox",
AriaRole::ListItem => "listitem",
AriaRole::Log => "log",
AriaRole::Main => "main",
AriaRole::Marquee => "marquee",
AriaRole::Math => "math",
AriaRole::Menu => "menu",
AriaRole::MenuBar => "menubar",
AriaRole::MenuItem => "menuitem",
AriaRole::MenuItemCheckbox => "menuitemcheckbox",
AriaRole::MenuItemRadio => "menuitemradio",
AriaRole::Navigation => "navigation",
AriaRole::None => "none",
AriaRole::Note => "note",
AriaRole::Option => "option",
AriaRole::Presentation => "presentation",
AriaRole::ProgressBar => "progressbar",
AriaRole::Radio => "radio",
AriaRole::RadioGroup => "radiogroup",
AriaRole::Region => "region",
AriaRole::Row => "row",
AriaRole::RowGroup => "rowgroup",
AriaRole::RowHeader => "rowheader",
AriaRole::ScrollBar => "scrollbar",
AriaRole::Search => "search",
AriaRole::SearchBox => "searchbox",
AriaRole::Separator => "separator",
AriaRole::Slider => "slider",
AriaRole::SpinButton => "spinbutton",
AriaRole::Status => "status",
AriaRole::Switch => "switch",
AriaRole::Tab => "tab",
AriaRole::Table => "table",
AriaRole::TabList => "tablist",
AriaRole::TabPanel => "tabpanel",
AriaRole::Term => "term",
AriaRole::TextBox => "textbox",
AriaRole::Timer => "timer",
AriaRole::Toolbar => "toolbar",
AriaRole::Tooltip => "tooltip",
AriaRole::Tree => "tree",
AriaRole::TreeGrid => "treegrid",
AriaRole::TreeItem => "treeitem",
}
}
}
pub fn implicit_role_selector(role: AriaRole) -> &'static str {
match role {
AriaRole::Button => {
"button, input[type='button'], input[type='submit'], input[type='reset']"
}
AriaRole::Link => "a[href]",
AriaRole::Heading => "h1, h2, h3, h4, h5, h6",
AriaRole::ListItem => "li",
AriaRole::List => "ul, ol",
AriaRole::TextBox => "input[type='text'], input:not([type]), textarea",
AriaRole::Checkbox => "input[type='checkbox']",
AriaRole::Radio => "input[type='radio']",
AriaRole::Combobox => "select",
AriaRole::Img => "img",
AriaRole::Navigation => "nav",
AriaRole::Main => "main",
AriaRole::Banner => "header",
AriaRole::ContentInfo => "footer",
AriaRole::Form => "form",
AriaRole::Search => "[role='search']",
AriaRole::Table => "table",
AriaRole::Row => "tr",
AriaRole::Cell => "td",
AriaRole::ColumnHeader => "th",
_ => "", }
}
#[cfg(test)]
mod tests;