| /* |
| * Copyright 2012 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except |
| * in compliance with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software distributed under the License |
| * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express |
| * or implied. See the License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| |
| package com.google.gwt.aria.client; |
| ///////////////////////////////////////////////////////// |
| // This is auto-generated code. Do not manually edit! // |
| ///////////////////////////////////////////////////////// |
| |
| import com.google.gwt.dom.client.Element; |
| |
| import java.util.HashMap; |
| import java.util.Map; |
| |
| /** |
| * <p>A factory providing each concrete role in the ARIA specification. Each role implements |
| * methods that a GWT application can use to modify the appropriate DOM attributes for that |
| * role.</p> |
| * |
| * <p>For example, suppose our GWT app has a image button and we want to make it visible in screen |
| * readers as a button with some help text. To do this, we add a <i>button</i> role to the image and |
| * set the ARIA <i>label</i> property to the help text that the screen reader can use:</p> |
| * |
| * <pre> |
| * Roles.getButtonRole().set(img.getElement()); |
| * Roles.getButtonRole().setAriaLabelProperty(img.getElement(), "some help text"); |
| * </pre> |
| * |
| * <p>Most ARIA properties have a prefix of "aria-" and only affect screen readers, but there is |
| * one exception: the "tabindex" property is the same one used for tab order in regular widgets. |
| * For example, to set tabindex to 0 for the button: |
| * </p> |
| * |
| * <pre> |
| * Roles.getButtonRole().setTabindexExtraAttribute(img.getElement(), 0); |
| * </pre> |
| * |
| * <p>When the button changes state (it's enabled or disabled), we can change the ARIA enabled |
| * state to match, like this:</p> |
| * |
| * <pre> |
| * Roles.getButtonRole().setAriaEnabledState(img.getElement(), isEnabled); |
| * </pre> |
| * |
| * <p>ARIA distinguishes between properties (which change rarely and could be set in static HTML) |
| * and states (which need to be updated in response to user input). This distinction can get a bit |
| * blurry when a GWT app updates the DOM dynamically. Generally you should update ARIA |
| * attributes at the same time that you change the CSS styles on a DOM node, so that a screen |
| * reader will see the same state as someone viewing the page visually.</p> |
| * |
| * <p>The role interfaces form a hierarchy whose root is the {@link Role} interface, which contains |
| * generic methods that aren't specific to a role. Some abstract roles include:</p> |
| * <ol> |
| * <li>{@link WidgetRole}, for DOM elements that represent either standalone or composite widgets. |
| * <li>{@link CompositeRole}, for widgets that contain other widgets.</li> |
| * <li>{@link StructureRole}, for DOM elements that are part of the page layout.</li> |
| * <li>{@link LandmarkRole}, for DOM elements defining common regions of a page.</li> |
| * <li>{@link WindowRole}, for DOM elements that define windows and dialogs.</li> |
| * </ol> |
| * </p> |
| * |
| * @see <a href="http://www.w3.org/TR/wai-aria/roles">the W3C specification</a> |
| */ |
| public final class Roles { |
| private static final AlertdialogRole ALERTDIALOG = new AlertdialogRoleImpl("alertdialog"); |
| private static final AlertRole ALERT = new AlertRoleImpl("alert"); |
| private static final ApplicationRole APPLICATION = new ApplicationRoleImpl("application"); |
| private static final ArticleRole ARTICLE = new ArticleRoleImpl("article"); |
| private static final BannerRole BANNER = new BannerRoleImpl("banner"); |
| private static final ButtonRole BUTTON = new ButtonRoleImpl("button"); |
| private static final CheckboxRole CHECKBOX = new CheckboxRoleImpl("checkbox"); |
| private static final ColumnheaderRole COLUMNHEADER = new ColumnheaderRoleImpl("columnheader"); |
| private static final ComboboxRole COMBOBOX = new ComboboxRoleImpl("combobox"); |
| private static final ComplementaryRole COMPLEMENTARY = new ComplementaryRoleImpl("complementary"); |
| private static final ContentinfoRole CONTENTINFO = new ContentinfoRoleImpl("contentinfo"); |
| private static final DefinitionRole DEFINITION = new DefinitionRoleImpl("definition"); |
| private static final DialogRole DIALOG = new DialogRoleImpl("dialog"); |
| private static final DirectoryRole DIRECTORY = new DirectoryRoleImpl("directory"); |
| private static final DocumentRole DOCUMENT = new DocumentRoleImpl("document"); |
| private static final FormRole FORM = new FormRoleImpl("form"); |
| private static final GridcellRole GRIDCELL = new GridcellRoleImpl("gridcell"); |
| private static final GridRole GRID = new GridRoleImpl("grid"); |
| private static final GroupRole GROUP = new GroupRoleImpl("group"); |
| private static final HeadingRole HEADING = new HeadingRoleImpl("heading"); |
| private static final ImgRole IMG = new ImgRoleImpl("img"); |
| private static final LinkRole LINK = new LinkRoleImpl("link"); |
| private static final ListboxRole LISTBOX = new ListboxRoleImpl("listbox"); |
| private static final ListitemRole LISTITEM = new ListitemRoleImpl("listitem"); |
| private static final ListRole LIST = new ListRoleImpl("list"); |
| private static final LogRole LOG = new LogRoleImpl("log"); |
| private static final MainRole MAIN = new MainRoleImpl("main"); |
| private static final MarqueeRole MARQUEE = new MarqueeRoleImpl("marquee"); |
| private static final MathRole MATH = new MathRoleImpl("math"); |
| private static final MenubarRole MENUBAR = new MenubarRoleImpl("menubar"); |
| private static final MenuitemcheckboxRole MENUITEMCHECKBOX = new MenuitemcheckboxRoleImpl("menuitemcheckbox"); |
| private static final MenuitemradioRole MENUITEMRADIO = new MenuitemradioRoleImpl("menuitemradio"); |
| private static final MenuitemRole MENUITEM = new MenuitemRoleImpl("menuitem"); |
| private static final MenuRole MENU = new MenuRoleImpl("menu"); |
| private static final NavigationRole NAVIGATION = new NavigationRoleImpl("navigation"); |
| private static final NoteRole NOTE = new NoteRoleImpl("note"); |
| private static final OptionRole OPTION = new OptionRoleImpl("option"); |
| private static final PresentationRole PRESENTATION = new PresentationRoleImpl("presentation"); |
| private static final ProgressbarRole PROGRESSBAR = new ProgressbarRoleImpl("progressbar"); |
| private static final RadiogroupRole RADIOGROUP = new RadiogroupRoleImpl("radiogroup"); |
| private static final RadioRole RADIO = new RadioRoleImpl("radio"); |
| private static final RegionRole REGION = new RegionRoleImpl("region"); |
| private static final RowgroupRole ROWGROUP = new RowgroupRoleImpl("rowgroup"); |
| private static final RowheaderRole ROWHEADER = new RowheaderRoleImpl("rowheader"); |
| private static final RowRole ROW = new RowRoleImpl("row"); |
| private static final ScrollbarRole SCROLLBAR = new ScrollbarRoleImpl("scrollbar"); |
| private static final SearchRole SEARCH = new SearchRoleImpl("search"); |
| private static final SeparatorRole SEPARATOR = new SeparatorRoleImpl("separator"); |
| private static final SliderRole SLIDER = new SliderRoleImpl("slider"); |
| private static final SpinbuttonRole SPINBUTTON = new SpinbuttonRoleImpl("spinbutton"); |
| private static final StatusRole STATUS = new StatusRoleImpl("status"); |
| private static final TablistRole TABLIST = new TablistRoleImpl("tablist"); |
| private static final TabpanelRole TABPANEL = new TabpanelRoleImpl("tabpanel"); |
| private static final TabRole TAB = new TabRoleImpl("tab"); |
| private static final TextboxRole TEXTBOX = new TextboxRoleImpl("textbox"); |
| private static final TimerRole TIMER = new TimerRoleImpl("timer"); |
| private static final ToolbarRole TOOLBAR = new ToolbarRoleImpl("toolbar"); |
| private static final TooltipRole TOOLTIP = new TooltipRoleImpl("tooltip"); |
| private static final TreegridRole TREEGRID = new TreegridRoleImpl("treegrid"); |
| private static final TreeitemRole TREEITEM = new TreeitemRoleImpl("treeitem"); |
| private static final TreeRole TREE = new TreeRoleImpl("tree"); |
| |
| private static final Map<String, Role> ROLES_MAP = new HashMap<String, Role>(); |
| |
| static { |
| ROLES_MAP.put("region", REGION); |
| ROLES_MAP.put("alert", ALERT); |
| ROLES_MAP.put("dialog", DIALOG); |
| ROLES_MAP.put("alertdialog", ALERTDIALOG); |
| ROLES_MAP.put("application", APPLICATION); |
| ROLES_MAP.put("document", DOCUMENT); |
| ROLES_MAP.put("article", ARTICLE); |
| ROLES_MAP.put("banner", BANNER); |
| ROLES_MAP.put("button", BUTTON); |
| ROLES_MAP.put("checkbox", CHECKBOX); |
| ROLES_MAP.put("gridcell", GRIDCELL); |
| ROLES_MAP.put("columnheader", COLUMNHEADER); |
| ROLES_MAP.put("group", GROUP); |
| ROLES_MAP.put("combobox", COMBOBOX); |
| ROLES_MAP.put("complementary", COMPLEMENTARY); |
| ROLES_MAP.put("contentinfo", CONTENTINFO); |
| ROLES_MAP.put("definition", DEFINITION); |
| ROLES_MAP.put("list", LIST); |
| ROLES_MAP.put("directory", DIRECTORY); |
| ROLES_MAP.put("form", FORM); |
| ROLES_MAP.put("grid", GRID); |
| ROLES_MAP.put("heading", HEADING); |
| ROLES_MAP.put("img", IMG); |
| ROLES_MAP.put("link", LINK); |
| ROLES_MAP.put("listbox", LISTBOX); |
| ROLES_MAP.put("listitem", LISTITEM); |
| ROLES_MAP.put("log", LOG); |
| ROLES_MAP.put("main", MAIN); |
| ROLES_MAP.put("marquee", MARQUEE); |
| ROLES_MAP.put("math", MATH); |
| ROLES_MAP.put("menu", MENU); |
| ROLES_MAP.put("menubar", MENUBAR); |
| ROLES_MAP.put("menuitem", MENUITEM); |
| ROLES_MAP.put("menuitemcheckbox", MENUITEMCHECKBOX); |
| ROLES_MAP.put("option", OPTION); |
| ROLES_MAP.put("radio", RADIO); |
| ROLES_MAP.put("menuitemradio", MENUITEMRADIO); |
| ROLES_MAP.put("navigation", NAVIGATION); |
| ROLES_MAP.put("note", NOTE); |
| ROLES_MAP.put("presentation", PRESENTATION); |
| ROLES_MAP.put("progressbar", PROGRESSBAR); |
| ROLES_MAP.put("radiogroup", RADIOGROUP); |
| ROLES_MAP.put("row", ROW); |
| ROLES_MAP.put("rowgroup", ROWGROUP); |
| ROLES_MAP.put("rowheader", ROWHEADER); |
| ROLES_MAP.put("search", SEARCH); |
| ROLES_MAP.put("separator", SEPARATOR); |
| ROLES_MAP.put("scrollbar", SCROLLBAR); |
| ROLES_MAP.put("slider", SLIDER); |
| ROLES_MAP.put("spinbutton", SPINBUTTON); |
| ROLES_MAP.put("status", STATUS); |
| ROLES_MAP.put("tab", TAB); |
| ROLES_MAP.put("tablist", TABLIST); |
| ROLES_MAP.put("tabpanel", TABPANEL); |
| ROLES_MAP.put("textbox", TEXTBOX); |
| ROLES_MAP.put("timer", TIMER); |
| ROLES_MAP.put("toolbar", TOOLBAR); |
| ROLES_MAP.put("tooltip", TOOLTIP); |
| ROLES_MAP.put("tree", TREE); |
| ROLES_MAP.put("treegrid", TREEGRID); |
| ROLES_MAP.put("treeitem", TREEITEM); |
| } |
| |
| public static AlertdialogRole getAlertdialogRole() { |
| return ALERTDIALOG; |
| } |
| |
| public static AlertRole getAlertRole() { |
| return ALERT; |
| } |
| |
| public static ApplicationRole getApplicationRole() { |
| return APPLICATION; |
| } |
| |
| public static ArticleRole getArticleRole() { |
| return ARTICLE; |
| } |
| |
| public static BannerRole getBannerRole() { |
| return BANNER; |
| } |
| |
| public static ButtonRole getButtonRole() { |
| return BUTTON; |
| } |
| |
| public static CheckboxRole getCheckboxRole() { |
| return CHECKBOX; |
| } |
| |
| public static ColumnheaderRole getColumnheaderRole() { |
| return COLUMNHEADER; |
| } |
| |
| public static ComboboxRole getComboboxRole() { |
| return COMBOBOX; |
| } |
| |
| public static ComplementaryRole getComplementaryRole() { |
| return COMPLEMENTARY; |
| } |
| |
| public static ContentinfoRole getContentinfoRole() { |
| return CONTENTINFO; |
| } |
| |
| public static DefinitionRole getDefinitionRole() { |
| return DEFINITION; |
| } |
| |
| public static DialogRole getDialogRole() { |
| return DIALOG; |
| } |
| |
| public static DirectoryRole getDirectoryRole() { |
| return DIRECTORY; |
| } |
| |
| public static DocumentRole getDocumentRole() { |
| return DOCUMENT; |
| } |
| |
| public static FormRole getFormRole() { |
| return FORM; |
| } |
| |
| public static GridcellRole getGridcellRole() { |
| return GRIDCELL; |
| } |
| |
| public static GridRole getGridRole() { |
| return GRID; |
| } |
| |
| public static GroupRole getGroupRole() { |
| return GROUP; |
| } |
| |
| public static HeadingRole getHeadingRole() { |
| return HEADING; |
| } |
| |
| public static ImgRole getImgRole() { |
| return IMG; |
| } |
| |
| public static LinkRole getLinkRole() { |
| return LINK; |
| } |
| |
| public static ListboxRole getListboxRole() { |
| return LISTBOX; |
| } |
| |
| public static ListitemRole getListitemRole() { |
| return LISTITEM; |
| } |
| |
| public static ListRole getListRole() { |
| return LIST; |
| } |
| |
| public static LogRole getLogRole() { |
| return LOG; |
| } |
| |
| public static MainRole getMainRole() { |
| return MAIN; |
| } |
| |
| public static MarqueeRole getMarqueeRole() { |
| return MARQUEE; |
| } |
| |
| public static MathRole getMathRole() { |
| return MATH; |
| } |
| |
| public static MenubarRole getMenubarRole() { |
| return MENUBAR; |
| } |
| |
| public static MenuitemcheckboxRole getMenuitemcheckboxRole() { |
| return MENUITEMCHECKBOX; |
| } |
| |
| public static MenuitemradioRole getMenuitemradioRole() { |
| return MENUITEMRADIO; |
| } |
| |
| public static MenuitemRole getMenuitemRole() { |
| return MENUITEM; |
| } |
| |
| public static MenuRole getMenuRole() { |
| return MENU; |
| } |
| |
| public static NavigationRole getNavigationRole() { |
| return NAVIGATION; |
| } |
| |
| public static NoteRole getNoteRole() { |
| return NOTE; |
| } |
| |
| public static OptionRole getOptionRole() { |
| return OPTION; |
| } |
| |
| public static PresentationRole getPresentationRole() { |
| return PRESENTATION; |
| } |
| |
| public static ProgressbarRole getProgressbarRole() { |
| return PROGRESSBAR; |
| } |
| |
| public static RadiogroupRole getRadiogroupRole() { |
| return RADIOGROUP; |
| } |
| |
| public static RadioRole getRadioRole() { |
| return RADIO; |
| } |
| |
| public static RegionRole getRegionRole() { |
| return REGION; |
| } |
| |
| public static RowgroupRole getRowgroupRole() { |
| return ROWGROUP; |
| } |
| |
| public static RowheaderRole getRowheaderRole() { |
| return ROWHEADER; |
| } |
| |
| public static RowRole getRowRole() { |
| return ROW; |
| } |
| |
| public static ScrollbarRole getScrollbarRole() { |
| return SCROLLBAR; |
| } |
| |
| public static SearchRole getSearchRole() { |
| return SEARCH; |
| } |
| |
| public static SeparatorRole getSeparatorRole() { |
| return SEPARATOR; |
| } |
| |
| public static SliderRole getSliderRole() { |
| return SLIDER; |
| } |
| |
| public static SpinbuttonRole getSpinbuttonRole() { |
| return SPINBUTTON; |
| } |
| |
| public static StatusRole getStatusRole() { |
| return STATUS; |
| } |
| |
| public static TablistRole getTablistRole() { |
| return TABLIST; |
| } |
| |
| public static TabpanelRole getTabpanelRole() { |
| return TABPANEL; |
| } |
| |
| public static TabRole getTabRole() { |
| return TAB; |
| } |
| |
| public static TextboxRole getTextboxRole() { |
| return TEXTBOX; |
| } |
| |
| public static TimerRole getTimerRole() { |
| return TIMER; |
| } |
| |
| public static ToolbarRole getToolbarRole() { |
| return TOOLBAR; |
| } |
| |
| public static TooltipRole getTooltipRole() { |
| return TOOLTIP; |
| } |
| |
| public static TreegridRole getTreegridRole() { |
| return TREEGRID; |
| } |
| |
| public static TreeitemRole getTreeitemRole() { |
| return TREEITEM; |
| } |
| |
| public static TreeRole getTreeRole() { |
| return TREE; |
| } |
| |
| /** |
| * Returns the WAI-ARIA role for the {@code element}. If no 'role' attribute is set to the |
| * {@code element} or if the set role tokens do not include a WAI-ARIA role, |
| * null is returned. Otherwise, if a WAI_ARIA role is among the role tokens in the 'role' |
| * attribute token list, a {@link Role} corresponding the WAI-ARIA role is returned. |
| */ |
| public static Role roleOf(Element element) { |
| assert element != null : "Element cannot be null."; |
| String roleAttributeValue = element.getAttribute("role"); |
| for (String testRoleName : roleAttributeValue.split("\\s+")) { |
| Role role = ROLES_MAP.get(testRoleName); |
| if (role != null) { |
| return role; |
| } |
| } |
| return null; |
| } |
| } |