accessible/src/base/Role.h

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:18ba0ea72ef0
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/. */
6
7 #ifndef _role_h_
8 #define _role_h_
9
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 */
15
16 namespace mozilla {
17 namespace a11y {
18 namespace roles {
19
20 enum Role {
21 /**
22 * Used when accessible hans't strong defined role.
23 */
24 NOTHING = 0,
25
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,
31
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,
38
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,
44
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,
51
52 /**
53 * Represents a system sound, which is associated with various system events.
54 */
55 SOUND = 5,
56
57 /**
58 * Represents the system mouse pointer.
59 */
60 CURSOR = 6,
61
62 /**
63 * Represents the system caret. The role is supported for caret.
64 */
65 CARET = 7,
66
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,
75
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,
82
83 /**
84 * A sub-document (<frame> or <iframe>)
85 */
86 INTERNAL_FRAME = 10,
87
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,
93
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,
100
101 /**
102 * Represents a ToolTip that provides helpful hints.
103 */
104 TOOLTIP = 13,
105
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,
111
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,
117
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,
126
127 /**
128 * Represents a graphical image used to represent data.
129 */
130 CHART = 17,
131
132 /**
133 * Represents a dialog box or message box. It is used for xul:dialog,
134 * role="dialog".
135 */
136 DIALOG = 18,
137
138 /**
139 * Represents a window border.
140 */
141 BORDER = 19,
142
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,
149
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,
156
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,
163
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,
171
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,
179
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,
186
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,
192
193 /**
194 * Represents a column of cells within a table. Also, see TABLE.
195 */
196 COLUMN = 27,
197
198 /**
199 * Represents a row of cells within a table. Also, see TABLE.
200 */
201 ROW = 28,
202
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,
208
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,
215
216 /**
217 * Displays a Help topic in the form of a ToolTip or Help balloon.
218 */
219 HELPBALLOON = 31,
220
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,
226
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,
233
234 /**
235 * Represents an item in a list. See also LIST.
236 */
237 LISTITEM = 34,
238
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,
245
246 /**
247 * Represents an item in an outline or tree structure. It is used for
248 * role="treeitem".
249 */
250 OUTLINEITEM = 36,
251
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,
257
258 /**
259 * Represents a property sheet. It is used for xul:tabpanel,
260 * role="tabpanel".
261 */
262 PROPERTYPAGE = 38,
263
264 /**
265 * Represents an indicator, such as a pointer graphic, that points to the
266 * current item.
267 */
268 INDICATOR = 39,
269
270 /**
271 * Represents a picture. Is is used for xul:image, html:img.
272 */
273 GRAPHIC = 40,
274
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,
281
282 /**
283 * Represents selectable text that allows edits or is designated read-only.
284 */
285 TEXT_LEAF = 42,
286
287 /**
288 * Represents a push button control. It is used for xul:button, html:button,
289 * role="button".
290 */
291 PUSHBUTTON = 43,
292
293 /**
294 * Represents a check box control. It is used for xul:checkbox,
295 * html:input@type="checkbox", role="checkbox".
296 */
297 CHECKBUTTON = 44,
298
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,
307
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,
314
315 /**
316 * Represents the calendar control.
317 */
318 DROPLIST = 47,
319
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,
326
327 /**
328 * Represents a dial or knob whose purpose is to allow a user to set a value.
329 */
330 DIAL = 49,
331
332 /**
333 * Represents a hot-key field that allows the user to enter a combination or
334 * sequence of keystrokes.
335 */
336 HOTKEYFIELD = 50,
337
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,
344
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,
351
352 /**
353 * Represents a graphical image used to diagram data. It is used for svg:svg.
354 */
355 DIAGRAM = 53,
356
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,
362
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,
368
369 /**
370 * Represents a button that drops down a list of items.
371 */
372 BUTTONDROPDOWN = 56,
373
374 /**
375 * Represents a button that drops down a menu.
376 */
377 BUTTONMENU = 57,
378
379 /**
380 * Represents a button that drops down a grid. It is used for xul:colorpicker.
381 */
382 BUTTONDROPDOWNGRID = 58,
383
384 /**
385 * Represents blank space between other objects.
386 */
387 WHITESPACE = 59,
388
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,
394
395 /**
396 * Represents a control that displays time.
397 */
398 CLOCK = 61,
399
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,
405
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,
412
413 /**
414 * Represents a label control that has an accelerator.
415 */
416 ACCEL_LABEL = 64,
417
418 /**
419 * Represents an arrow in one of the four cardinal directions.
420 */
421 ARROW = 65,
422
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,
428
429 /**
430 * Represents a menu item with a check box.
431 */
432 CHECK_MENU_ITEM = 67,
433
434 /**
435 * Represents a specialized dialog that lets the user choose a color.
436 */
437 COLOR_CHOOSER = 68,
438
439 /**
440 * Represents control whose purpose is to allow a user to edit a date.
441 */
442 DATE_EDITOR = 69,
443
444 /**
445 * An iconified internal frame in an DESKTOP_PANE. Also refer to
446 * INTERNAL_FRAME.
447 */
448 DESKTOP_ICON = 70,
449
450 /**
451 * A desktop pane. A pane that supports internal frames and iconified
452 * versions of those internal frames.
453 */
454 DESKTOP_FRAME = 71,
455
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,
462
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,
470
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,
476
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,
482
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,
488
489 /**
490 * A document container for HTML, whose children represent the document
491 * content.
492 */
493 HTML_CONTAINER = 77,
494
495 /**
496 * A small fixed size picture, typically used to decorate components.
497 */
498 ICON = 78,
499
500 /**
501 * Presents an icon or short string in an interface.
502 */
503 LABEL = 79,
504
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,
513
514 /**
515 * A specialized pane whose primary use is inside a dialog.
516 */
517 OPTION_PANE = 81,
518
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,
524
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,
530
531 /**
532 * A radio button that is a menu item.
533 */
534 RADIO_MENU_ITEM = 84,
535
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,
541
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,
548
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,
555
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,
561
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,
567
568 /**
569 * A menu item used to tear off and reattach its menu.
570 */
571 TEAR_OFF_MENU_ITEM = 90,
572
573 /**
574 * Represents an accessible terminal.
575 */
576 TERMINAL = 91,
577
578 /**
579 * Collection of objects that constitute a logical text entity.
580 */
581 TEXT_CONTAINER = 92,
582
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,
588
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,
594
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,
602
603 /**
604 * Header of a document page. Also refer to FOOTER.
605 */
606 HEADER = 96,
607
608 /**
609 * Footer of a document page. Also refer to HEADER.
610 */
611 FOOTER = 97,
612
613 /**
614 * A paragraph of text.
615 */
616 PARAGRAPH = 98,
617
618 /**
619 * A ruler such as those used in word processors.
620 */
621 RULER = 99,
622
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,
629
630 /**
631 * An editable text object in a toolbar.
632 */
633 EDITBAR = 101,
634
635 /**
636 * An control whose textual content may be entered or modified by the user.
637 */
638 ENTRY = 102,
639
640 /**
641 * A caption describing another object.
642 */
643 CAPTION = 103,
644
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,
653
654 /**
655 * Heading.
656 */
657 HEADING = 105,
658
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,
664
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,
670
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,
676
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,
682
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,
688
689 /**
690 * XXX: document this.
691 */
692 APP_ROOT = 111,
693
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,
699
700 /**
701 * A calendar that allows the user to select a date.
702 */
703 CALENDAR = 113,
704
705 /**
706 * A list of items that is shown by combobox.
707 */
708 COMBOBOX_LIST = 114,
709
710 /**
711 * A item of list that is shown by combobox.
712 */
713 COMBOBOX_OPTION = 115,
714
715 /**
716 * An image map -- has child links representing the areas
717 */
718 IMAGE_MAP = 116,
719
720 /**
721 * An option in a listbox
722 */
723 OPTION = 117,
724
725 /**
726 * A rich option in a listbox, it can have other widgets as children
727 */
728 RICH_OPTION = 118,
729
730 /**
731 * A list of options
732 */
733 LISTBOX = 119,
734
735 /**
736 * Represents a mathematical equation in the accessible name
737 */
738 FLAT_EQUATION = 120,
739
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,
746
747 /**
748 * Represents an embedded object. It is used for html:object or html:embed.
749 */
750 EMBEDDED_OBJECT = 122,
751
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,
757
758 /**
759 * A figure. Used for things like HTML5 figure element.
760 */
761 FIGURE = 124,
762
763 /**
764 * Represents a rich item with a check box.
765 */
766 CHECK_RICH_OPTION = 125,
767
768 /**
769 * Represent a definition list (dl in HTML).
770 */
771 DEFINITION_LIST = 126,
772
773 /**
774 * Represent a term in a definition list (dt in HTML).
775 */
776 TERM = 127,
777
778 /**
779 * Represent a definition in a definition list (dd in HTML)
780 */
781 DEFINITION = 128,
782
783 /**
784 * Represent a keyboard or keypad key (ARIA role "key").
785 */
786 KEY = 129
787 };
788
789 } // namespace role
790
791 typedef enum mozilla::a11y::roles::Role role;
792
793 } // namespace a11y
794 } // namespace mozilla
795
796 #endif

mercurial