accessible/src/base/Role.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* vim: set ts=2 et sw=2 tw=80: */
     3 /* This Source Code Form is subject to the terms of the Mozilla Public
     4  * License, v. 2.0. If a copy of the MPL was not distributed with this
     5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     7 #ifndef _role_h_
     8 #define _role_h_
    10 /**
    11  * @note Make sure to update the localized role names when changing the list.
    12  * @note When adding a new role, be sure to also add it to base/RoleMap.h and
    13  *       update nsIAccessibleRole.
    14  */
    16 namespace mozilla {
    17 namespace a11y {
    18 namespace roles {
    20 enum Role {
    21   /**
    22    * Used when accessible hans't strong defined role.
    23    */
    24   NOTHING = 0,
    26   /**
    27    * Represents a title or caption bar for a window. It is used by MSAA only,
    28    * supported automatically by MS Windows.
    29    */
    30   TITLEBAR = 1,
    32   /**
    33    * Represents the menu bar (positioned beneath the title bar of a window)
    34    * from which menus are selected by the user. The role is used by
    35    * xul:menubar or role="menubar".
    36    */
    37   MENUBAR = 2,
    39   /**
    40    * Represents a vertical or horizontal scroll bar, which is part of the client
    41    * area or used in a control.
    42    */
    43   SCROLLBAR = 3,
    45   /**
    46    * Represents a special mouse pointer, which allows a user to manipulate user
    47    * interface elements such as windows. For example, a user clicks and drags
    48    * a sizing grip in the lower-right corner of a window to resize it.
    49    */
    50   GRIP = 4,
    52   /**
    53    * Represents a system sound, which is associated with various system events.
    54    */
    55   SOUND = 5,
    57   /**
    58    * Represents the system mouse pointer.
    59    */
    60   CURSOR = 6,
    62   /**
    63    * Represents the system caret. The role is supported for caret.
    64    */
    65   CARET = 7,
    67   /**
    68    * Represents an alert or a condition that a user should be notified about.
    69    * Assistive Technologies typically respond to the role by reading the entire
    70    * onscreen contents of containers advertising this role. Should be used for
    71    * warning dialogs, etc. The role is used by xul:browsermessage,
    72    * role="alert".
    73    */
    74   ALERT = 8,
    76   /**
    77    * Represents the window frame, which contains child objects such as
    78    * a title bar, client, and other objects contained in a window. The role
    79    * is supported automatically by MS Windows.
    80    */
    81   WINDOW = 9,
    83   /**
    84    * A sub-document (<frame> or <iframe>)
    85    */
    86   INTERNAL_FRAME = 10,
    88   /**
    89    * Represents a menu, which presents a list of options from which the user can
    90    * make a selection to perform an action. It is used for role="menu".
    91    */
    92   MENUPOPUP = 11,
    94   /**
    95    * Represents a menu item, which is an entry in a menu that a user can choose
    96    * to carry out a command, select an option. It is used for xul:menuitem,
    97    * role="menuitem".
    98    */
    99   MENUITEM = 12,
   101   /**
   102    * Represents a ToolTip that provides helpful hints.
   103    */
   104   TOOLTIP = 13,
   106   /**
   107    * Represents a main window for an application. It is used for
   108    * role="application". Also refer to APP_ROOT
   109    */
   110   APPLICATION = 14,
   112   /**
   113    * Represents a document window. A document window is always contained within
   114    * an application window. It is used for role="document".
   115    */
   116   DOCUMENT = 15,
   118   /**
   119    * Represents a pane within a frame or document window. Users can navigate
   120    * between panes and within the contents of the current pane, but cannot
   121    * navigate between items in different panes. Thus, panes represent a level
   122    * of grouping lower than frame windows or documents, but above individual
   123    * controls. It is used for the first child of a <frame> or <iframe>.
   124    */
   125   PANE = 16,
   127   /**
   128    * Represents a graphical image used to represent data.
   129    */
   130   CHART = 17,
   132   /**
   133    * Represents a dialog box or message box. It is used for xul:dialog, 
   134    * role="dialog".
   135    */
   136   DIALOG = 18,
   138   /**
   139    * Represents a window border.
   140    */
   141   BORDER = 19,
   143   /**
   144    * Logically groups other objects. There is not always a parent-child
   145    * relationship between the grouping object and the objects it contains. It
   146    * is used for html:textfield, xul:groupbox, role="group".
   147    */
   148   GROUPING = 20,
   150   /**
   151    * Used to visually divide a space into two regions, such as a separator menu
   152    * item or a bar that divides split panes within a window. It is used for
   153    * xul:separator, html:hr, role="separator".
   154    */
   155   SEPARATOR = 21,
   157   /**
   158    * Represents a toolbar, which is a grouping of controls (push buttons or
   159    * toggle buttons) that provides easy access to frequently used features. It
   160    * is used for xul:toolbar, role="toolbar".
   161    */
   162   TOOLBAR = 22,
   164   /**
   165    * Represents a status bar, which is an area at the bottom of a window that
   166    * displays information about the current operation, state of the application,
   167    * or selected object. The status bar has multiple fields, which display
   168    * different kinds of information. It is used for xul:statusbar.
   169    */
   170   STATUSBAR = 23,
   172   /**
   173    * Represents a table that contains rows and columns of cells, and optionally,
   174    * row headers and column headers. It is used for html:table,
   175    * role="grid". Also refer to the following role: COLUMNHEADER,
   176    * ROWHEADER, COLUMN, ROW, CELL.
   177    */
   178   TABLE = 24,
   180   /**
   181    * Represents a column header, providing a visual label for a column in
   182    * a table. It is used for XUL tree column headers, html:th,
   183    * role="colheader". Also refer to TABLE.
   184    */
   185   COLUMNHEADER = 25,
   187   /**
   188    * Represents a row header, which provides a visual label for a table row.
   189    * It is used for role="rowheader". Also, see TABLE.
   190    */
   191   ROWHEADER = 26,
   193   /**
   194    * Represents a column of cells within a table. Also, see TABLE.
   195    */
   196   COLUMN = 27,
   198   /**
   199    * Represents a row of cells within a table. Also, see TABLE.
   200    */
   201   ROW = 28,
   203   /**
   204    * Represents a cell within a table. It is used for html:td,
   205    * xul:tree cell and xul:listcell. Also, see TABLE.
   206    */
   207   CELL = 29,
   209   /**
   210    * Represents a link to something else. This object might look like text or
   211    * a graphic, but it acts like a button. It is used for
   212    * xul:label@class="text-link", html:a, html:area.
   213    */
   214   LINK = 30,
   216   /**
   217    * Displays a Help topic in the form of a ToolTip or Help balloon.
   218    */
   219   HELPBALLOON = 31,
   221   /**
   222    * Represents a cartoon-like graphic object, such as Microsoft Office
   223    * Assistant, which is displayed to provide help to users of an application.
   224    */
   225   CHARACTER = 32,
   227   /**
   228    * Represents a list box, allowing the user to select one or more items. It
   229    * is used for xul:listbox, html:select@size, role="list". See also
   230    * LIST_ITEM.
   231    */
   232   LIST = 33,
   234   /**
   235    * Represents an item in a list. See also LIST.
   236    */
   237   LISTITEM = 34,
   239   /**
   240    * Represents an outline or tree structure, such as a tree view control,
   241    * that displays a hierarchical list and allows the user to expand and
   242    * collapse branches. Is is used for role="tree".
   243    */
   244   OUTLINE = 35,
   246   /**
   247    * Represents an item in an outline or tree structure. It is used for
   248    * role="treeitem".
   249    */
   250   OUTLINEITEM = 36,
   252   /**
   253    * Represents a page tab, it is a child of a page tab list. It is used for
   254    * xul:tab, role="treeitem". Also refer to PAGETABLIST.
   255    */
   256   PAGETAB = 37,
   258   /**
   259    * Represents a property sheet. It is used for xul:tabpanel,
   260    * role="tabpanel".
   261    */
   262   PROPERTYPAGE = 38,
   264   /**
   265    * Represents an indicator, such as a pointer graphic, that points to the
   266    * current item.
   267    */
   268   INDICATOR = 39,
   270   /**
   271    * Represents a picture. Is is used for xul:image, html:img.
   272    */
   273   GRAPHIC = 40,
   275   /**
   276    * Represents read-only text, such as labels for other controls or
   277    * instructions in a dialog box. Static text cannot be modified or selected.
   278    * Is is used for xul:label, xul:description, html:label, role="label".
   279    */
   280   STATICTEXT = 41,
   282   /**
   283    * Represents selectable text that allows edits or is designated read-only.
   284    */
   285   TEXT_LEAF = 42,
   287   /**
   288    * Represents a push button control. It is used for xul:button, html:button,
   289    * role="button".
   290    */
   291   PUSHBUTTON = 43,
   293   /**
   294    * Represents a check box control. It is used for xul:checkbox,
   295    * html:input@type="checkbox", role="checkbox".
   296    */
   297   CHECKBUTTON = 44,
   299   /**
   300    * Represents an option button, also called a radio button. It is one of a
   301    * group of mutually exclusive options. All objects sharing a single parent
   302    * that have this attribute are assumed to be part of single mutually
   303    * exclusive group. It is used for xul:radio, html:input@type="radio",
   304    * role="radio".
   305    */
   306   RADIOBUTTON = 45,
   308   /**
   309    * Represents a combo box; an edit control with an associated list box that
   310    * provides a set of predefined choices. It is used for html:select,
   311    * xul:menulist, role="combobox".
   312    */
   313   COMBOBOX = 46,
   315   /**
   316    * Represents the calendar control.
   317    */
   318   DROPLIST = 47,
   320   /**
   321    * Represents a progress bar, dynamically showing the user the percent
   322    * complete of an operation in progress. It is used for xul:progressmeter,
   323    * role="progressbar".
   324    */
   325   PROGRESSBAR = 48,
   327   /**
   328    * Represents a dial or knob whose purpose is to allow a user to set a value.
   329    */
   330   DIAL = 49,
   332   /**
   333    * Represents a hot-key field that allows the user to enter a combination or
   334    * sequence of keystrokes.
   335    */
   336   HOTKEYFIELD = 50,
   338   /**
   339    * Represents a slider, which allows the user to adjust a setting in given
   340    * increments between minimum and maximum values. It is used by xul:scale,
   341    * role="slider".
   342    */
   343   SLIDER = 51,
   345   /**
   346    * Represents a spin box, which is a control that allows the user to increment
   347    * or decrement the value displayed in a separate "buddy" control associated
   348    * with the spin box. It is used for xul:spinbuttons.
   349    */
   350   SPINBUTTON = 52,
   352   /**
   353    * Represents a graphical image used to diagram data. It is used for svg:svg.
   354    */
   355   DIAGRAM = 53,
   357   /**
   358    * Represents an animation control, which contains content that changes over
   359    * time, such as a control that displays a series of bitmap frames.
   360    */
   361   ANIMATION = 54,
   363   /**
   364    * Represents a mathematical equation. It is used by MATHML, where there is a
   365    * rich DOM subtree for an equation. Use FLAT_EQUATION for <img role="math" alt="[TeX]"/>
   366    */
   367   EQUATION = 55,
   369   /**
   370    * Represents a button that drops down a list of items.
   371    */
   372   BUTTONDROPDOWN = 56,
   374   /**
   375    * Represents a button that drops down a menu.
   376    */
   377   BUTTONMENU = 57,
   379   /**
   380    * Represents a button that drops down a grid. It is used for xul:colorpicker.
   381    */
   382   BUTTONDROPDOWNGRID = 58,
   384   /**
   385    * Represents blank space between other objects.
   386    */
   387   WHITESPACE = 59,
   389   /**
   390    * Represents a container of page tab controls. Is it used for xul:tabs,
   391    * DHTML: role="tabs". Also refer to PAGETAB.
   392    */
   393   PAGETABLIST = 60,
   395   /**
   396    * Represents a control that displays time.
   397    */
   398   CLOCK = 61,
   400   /**
   401    * Represents a button on a toolbar that has a drop-down list icon directly
   402    * adjacent to the button.
   403    */
   404   SPLITBUTTON = 62,
   406   /**
   407    * Represents an edit control designed for an Internet Protocol (IP) address.
   408    * The edit control is divided into sections for the different parts of the
   409    * IP address.
   410    */
   411   IPADDRESS = 63,
   413   /**
   414    * Represents a label control that has an accelerator.
   415    */
   416   ACCEL_LABEL = 64,
   418   /**
   419    * Represents an arrow in one of the four cardinal directions.
   420    */
   421   ARROW  = 65,
   423   /**
   424    * Represents a control that can be drawn into and is used to trap events.
   425    * It is used for html:canvas.
   426    */
   427   CANVAS = 66,
   429   /**
   430    * Represents a menu item with a check box.
   431    */
   432   CHECK_MENU_ITEM = 67,
   434   /**
   435    * Represents a specialized dialog that lets the user choose a color.
   436    */
   437   COLOR_CHOOSER  = 68,
   439   /**
   440    * Represents control whose purpose is to allow a user to edit a date.
   441    */
   442   DATE_EDITOR = 69,
   444   /**
   445    * An iconified internal frame in an DESKTOP_PANE. Also refer to
   446    * INTERNAL_FRAME.
   447    */
   448   DESKTOP_ICON = 70,
   450   /**
   451    * A desktop pane. A pane that supports internal frames and iconified
   452    * versions of those internal frames.
   453    */
   454   DESKTOP_FRAME = 71,
   456   /**
   457    * A directory pane. A pane that allows the user to navigate through
   458    * and select the contents of a directory. May be used by a file chooser.
   459    * Also refer to FILE_CHOOSER.
   460    */
   461   DIRECTORY_PANE = 72,
   463   /**
   464    * A file chooser. A specialized dialog that displays the files in the
   465    * directory and lets the user select a file, browse a different directory,
   466    * or specify a filename. May use the directory pane to show the contents of
   467    * a directory. Also refer to DIRECTORY_PANE.
   468    */
   469   FILE_CHOOSER = 73,
   471   /**
   472    * A font chooser. A font chooser is a component that lets the user pick
   473    * various attributes for fonts.
   474    */
   475   FONT_CHOOSER = 74,
   477   /**
   478    * Frame role. A top level window with a title bar, border, menu bar, etc.
   479    * It is often used as the primary window for an application.
   480    */
   481   CHROME_WINDOW = 75,
   483   /**
   484    *  A glass pane. A pane that is guaranteed to be painted on top of all
   485    * panes beneath it. Also refer to ROOT_PANE.
   486    */
   487   GLASS_PANE = 76,
   489   /**
   490    * A document container for HTML, whose children represent the document
   491    * content.
   492    */
   493   HTML_CONTAINER = 77,
   495   /**
   496    * A small fixed size picture, typically used to decorate components.
   497    */
   498   ICON = 78,
   500   /**
   501    * Presents an icon or short string in an interface.
   502    */
   503   LABEL = 79,
   505   /**
   506    * A layered pane. A specialized pane that allows its children to be drawn
   507    * in layers, providing a form of stacking order. This is usually the pane
   508    * that holds the menu bar as  well as the pane that contains most of the
   509    * visual components in a window. Also refer to GLASS_PANE and
   510    * ROOT_PANE.
   511    */
   512   LAYERED_PANE = 80,
   514   /**
   515    * A specialized pane whose primary use is inside a dialog.
   516    */
   517   OPTION_PANE = 81,
   519   /**
   520    * A text object uses for passwords, or other places where the text content
   521    * is not shown visibly to the user.
   522    */
   523   PASSWORD_TEXT = 82,
   525   /**
   526    * A temporary window that is usually used to offer the user a list of
   527    * choices, and then hides when the user selects one of those choices.
   528    */
   529   POPUP_MENU = 83,
   531   /**
   532    * A radio button that is a menu item.
   533    */
   534   RADIO_MENU_ITEM = 84,
   536   /**
   537    * A root pane. A specialized pane that has a glass pane and a layered pane
   538    * as its children. Also refer to GLASS_PANE and LAYERED_PANE.
   539    */
   540   ROOT_PANE = 85,
   542   /**
   543    * A scroll pane. An object that allows a user to incrementally view a large
   544    * amount of information.  Its children can include scroll bars and a
   545    * viewport. Also refer to VIEW_PORT.
   546    */
   547   SCROLL_PANE = 86,
   549   /**
   550    * A split pane. A specialized panel that presents two other panels at the
   551    * same time. Between the two panels is a divider the user can manipulate to
   552    * make one panel larger and the other panel smaller.
   553    */
   554   SPLIT_PANE = 87,
   556   /**
   557    * The header for a column of a table.
   558    * XXX: it looks this role is dupe of COLUMNHEADER.
   559    */
   560   TABLE_COLUMN_HEADER = 88,
   562   /**
   563    * The header for a row of a table.
   564    * XXX: it looks this role is dupe of ROWHEADER
   565    */
   566   TABLE_ROW_HEADER = 89,
   568   /**
   569    * A menu item used to tear off and reattach its menu.
   570    */
   571   TEAR_OFF_MENU_ITEM = 90,
   573   /**
   574    * Represents an accessible terminal.
   575    */
   576   TERMINAL = 91,
   578   /**
   579    * Collection of objects that constitute a logical text entity.
   580    */
   581   TEXT_CONTAINER = 92,
   583   /**
   584    * A toggle button. A specialized push button that can be checked or
   585    * unchecked, but does not provide a separate indicator for the current state.
   586    */
   587   TOGGLE_BUTTON = 93,
   589   /**
   590    * Represent a control that is capable of expanding and collapsing rows as
   591    * well as showing multiple columns of data.
   592    */
   593   TREE_TABLE = 94,
   595   /**
   596    * A viewport. An object usually used in a scroll pane. It represents the
   597    * portion of the entire data that the user can see. As the user manipulates
   598    * the scroll bars, the contents of the viewport can change. Also refer to
   599    * SCROLL_PANE.
   600    */
   601   VIEWPORT = 95,
   603   /**
   604    * Header of a document page. Also refer to FOOTER.
   605    */
   606   HEADER = 96,
   608   /**
   609    * Footer of a document page. Also refer to HEADER.
   610    */
   611   FOOTER = 97,
   613   /**
   614    * A paragraph of text.
   615    */
   616   PARAGRAPH = 98,
   618   /**
   619    * A ruler such as those used in word processors.
   620    */
   621   RULER = 99,
   623   /**
   624    * A text entry having dialog or list containing items for insertion into
   625    * an entry widget, for instance a list of words for completion of a
   626    * text entry. It is used for xul:textbox@autocomplete
   627    */
   628   AUTOCOMPLETE = 100,
   630   /**
   631    *  An editable text object in a toolbar.
   632    */
   633   EDITBAR = 101,
   635   /**
   636    * An control whose textual content may be entered or modified by the user.
   637    */
   638   ENTRY = 102,
   640   /**
   641    * A caption describing another object.
   642    */
   643   CAPTION = 103,
   645   /**
   646    * A visual frame or container which contains a view of document content.
   647    * Document frames may occur within another Document instance, in which case
   648    * the second document may be said to be embedded in the containing instance.
   649    * HTML frames are often DOCUMENT_FRAME. Either this object, or a
   650    * singleton descendant, should implement the Document interface.
   651    */
   652   DOCUMENT_FRAME = 104,
   654   /**
   655    * Heading.
   656    */
   657   HEADING = 105,
   659   /**
   660    * An object representing a page of document content.  It is used in documents
   661    * which are accessed by the user on a page by page basis.
   662    */
   663   PAGE = 106,
   665   /**
   666    * A container of document content.  An example of the use of this role is to
   667    * represent an html:div.
   668    */
   669   SECTION = 107,
   671   /**
   672    * An object which is redundant with another object in the accessible
   673    * hierarchy. ATs typically ignore objects with this role.
   674    */
   675   REDUNDANT_OBJECT = 108,
   677   /**
   678    * A container of form controls. An example of the use of this role is to
   679    * represent an html:form.
   680    */
   681   FORM = 109,
   683   /**
   684    * An object which is used to allow input of characters not found on a
   685    * keyboard, such as the input of Chinese characters on a Western keyboard.
   686    */
   687   IME = 110,
   689   /**
   690    * XXX: document this.
   691    */
   692   APP_ROOT = 111,
   694   /**
   695    * Represents a menu item, which is an entry in a menu that a user can choose
   696    * to display another menu.
   697    */
   698   PARENT_MENUITEM = 112,
   700   /**
   701    * A calendar that allows the user to select a date.
   702    */
   703   CALENDAR = 113,
   705   /**
   706    * A list of items that is shown by combobox.
   707    */
   708   COMBOBOX_LIST = 114,
   710   /**
   711    * A item of list that is shown by combobox.
   712    */
   713   COMBOBOX_OPTION = 115,
   715   /**
   716    * An image map -- has child links representing the areas
   717    */
   718   IMAGE_MAP = 116,
   720   /**
   721    * An option in a listbox
   722    */
   723   OPTION = 117,
   725   /**
   726    * A rich option in a listbox, it can have other widgets as children
   727    */
   728   RICH_OPTION = 118,
   730   /**
   731    * A list of options
   732    */
   733   LISTBOX = 119,
   735   /**
   736    * Represents a mathematical equation in the accessible name
   737    */
   738   FLAT_EQUATION = 120,
   740   /**
   741    * Represents a cell within a grid. It is used for role="gridcell". Unlike
   742    * CELL, it allows the calculation of the accessible name from subtree.
   743    * Also, see TABLE.
   744    */
   745   GRID_CELL = 121,
   747   /**
   748    * Represents an embedded object. It is used for html:object or html:embed.
   749    */
   750   EMBEDDED_OBJECT = 122,
   752   /**
   753    * A note. Originally intended to be hidden until activated, but now also used
   754    * for things like html 'aside'.
   755    */
   756   NOTE = 123,
   758   /**
   759    * A figure. Used for things like HTML5 figure element.
   760    */
   761   FIGURE = 124,
   763   /**
   764    * Represents a rich item with a check box.
   765    */
   766   CHECK_RICH_OPTION = 125,
   768   /**
   769    * Represent a definition list (dl in HTML).
   770    */
   771   DEFINITION_LIST = 126,
   773   /**
   774    * Represent a term in a definition list (dt in HTML).
   775    */
   776   TERM = 127,
   778   /**
   779    * Represent a definition in a definition list (dd in HTML)
   780    */
   781   DEFINITION = 128,
   783   /**
   784    * Represent a keyboard or keypad key (ARIA role "key").
   785    */
   786   KEY = 129
   787 };
   789 } // namespace role
   791 typedef enum mozilla::a11y::roles::Role role;
   793 } // namespace a11y
   794 } // namespace mozilla
   796 #endif

mercurial