You are currently viewing a snapshot of www.mozilla.org taken on April 21, 2008. Most of this content is highly out of date (some pages haven't been updated since the project began in 1998) and exists for historical purposes only. If there are any pages on this archive site that you think should be added back to www.mozilla.org, please file a bug.



Accessibility API cross-reference

This cross-reference helps us see the difference between today's accessibility API's. All accessibility APIs to date define a list of possible object roles, or general types, such as button, menu item, text, etc. They also define a list of possible object states, such as focused, read-only, checked, etc.

An interesting problem is that Mozilla, Safari/KHTML, Opera, StarOffice and other apps are cross-platform, but there is currently no cross-platform Accessibility API. The IPC mechanisms used by current generation API's are also not cross-platform, although communication for some cross-platform accessibility API of the future could be done through sockets.

These tables describe how various accessibility APIs define possible roles of an object, and states. All accessibility APIs to date define a list of possible object roles, or general types, such as button, menu item, text, etc. They also define a list of possible object states, such as focused, read-only, checked, etc. This table is the start of a cross-reference, so we can spot the differences and similarities in the APIs.

The Gnome accessibility architecture is implemented via ATK and AT-SPI, and was implemented by Sun Microsystems. It will be reused for KDE accessibility via AT-SPI . We find that it uses very similar naming conventions as Java accessibility, and for those purposes the two to be nearly the same. However, only about one third of the states and roles in Sun's accessibility API's are the same as in MSAA.

Contents

To do

  • Fill out Mac API column.(Mac OS X - Carbon Accessibility API and Accessibility Constants)
  • Fill out HTML column
  • Fill out XUL column.
  • Create events cross reference table
  • Use this info to expand Mozilla's accessibility API coverage to include Mac, so that we can start to freeze them
  • Talk about the fact that MSAA uses one interface (IAccessible), wherease Gnome accessibility uses a lot of different interfaces depending on the type of object
  • Go through the ATK info and make sure it's up-to-date

Accessible Roles

MSAA Role (ROLE_SYSTEM_*) Java Accessibility Role Gnome Accessibility Role (ATK_ROLE_*) Mac OS X Accessibility Role Description and Notes Relevant HTML Relevant XUL
ALERT ALERT ALERT For alerts, in Java/Gnome for any alert, in MSAA if no other role applies
ANIMATION n/a no spec Content changes over time, such as animated gif
APPLICATION FRAME n/a Object representing entire app
BORDER n/a n/a Entire window border as 1 object
BUTTONDROPDOWN n/a n/a Specific kind of button that drops down a list of items, MSAA only
BUTTONDROPDOWNGRID n/a n/a Specific kind of button that drops down a grip, MSAA only
BUTTONMENU n/a n/a Specific kind of button that drops down a menu, MSAA only
CARET n/a n/a Represents the system's caret
CELL n/a TABLE_CELL A cell in a table
CHARACTER n/a n/a Not what you think - this is for the damn paperclip
CHART n/a For graphics representing data
CHECKBUTTON CHECK_BOX CHECK_BOX A checkbox; good example of arbitrary naming difference
CLOCK n/a n/a Pretty obvious what this is for
COLUMN n/a n/a Column of cells in a table - how would the user specifically point to this, as opposed to the column header or cells?
COLUMNHEADER COLUMN_HEADER COLUMN_HEADER, TABLE_COLUMN_HEADER The heading of a table's column
COMBOBOX COMBO_BOX COMBO_BOX Edit control with drop down list box, different from DROPLIST
CURSOR n/a n/a The mouse pointer - when and how is this used?
(n/a - use either PUSHBUTTON or LISTITEM) DESKTOP_ICON DESKTOP_ICON Iconified version of an app
DIAGRAM n/a n/a A specific kind of a graphic - a diagram. Not defined anywhere on web.
DIAL n/a n/a A dial or a knob. MSAA only.
DIALOG DIALOG DIALOG A dialog or message box.
DOCUMENT n/a n/a Window that corresponds to an MDI document
DROPLIST n/a n/a A drop down list, different from COMBOBOX
EQUATION n/a n/a For math & chemistry
GRAPHIC n/a n/a How can this only exist for MSAA?
GRIP n/a n/a A type of mouse pointer used for resizing windows
GROUPING PANEL PANEL Probably a group box (titledbox in mozilla)
HELPBALLOON n/a n/a Click on this thing and then click on the item for tooltip style help
HOTKEYFIELD n/a n/a Editable field that allows user to assign a key combination
INDICATOR n/a n/a Graphic that indicates something, such as an arrow
LINK n/a Hypertext link that can be on image or text
LIST LIST LIST A list that allows more than 1 selection
LISTITEM n/a LIST_ITEM An item in a list
MENUBAR MENU_BAR MENU_BAR The main menu bar below the app's title bar
MENUITEM MENU_ITEM MENU_ITEM A menu item
MENUPOPUP POPUP_MENU, MENU POPUP_MENU, MENU Any menu other than the menu bar
Java: MENU is for pull-downs, POPUP_MENU for all others
OUTLINE TREE TREE A tree with expandable & collapseable elements
OUTLINEITEM n/a n/a A tree item
PAGETAB PAGE_TAB PAGE_TAB A tab in a tabbed tialog box
PAGETABLIST PAGE_TAB_LIST PAGE_TAB_LIST The container of the page tab controls
PANE n/a A pane or frame in the current window
PROGRESSBAR PROGRESS_BAR n/a Shows percentage completion for task
PROPERTYPAGE n/a n/a Page showing properties of something
PUSHBUTTON PUSH_BUTTON PUSH_BUTTON Your average, run-of-the-mill button
RADIOBUTTON RADIO_BUTTON RADIO_BUTTON No surprises here, only 1 in group is selectable
ROW n/a n/a Represents the an row in a table
ROWHEADER ROW_HEADER ROW_HEADER, TABLE_ROW_HEADER A table row header
SCROLLBAR SCROLL_BAR SCROLL_BAR vertical or horizontal scrollbar
SEPARATOR
(either in menu or splits panes)
SEPARATOR
(in menu only)
SEPARATOR A line that splits 2 areas from each other
SLIDER SLIDER SLIDER Adjust in increments from min to max values
SOUND n/a n/a A system sound
SPINBUTTON n/a n/a Kind of like a dial, but controls the value in a related field
STATICTEXT LABEL LABEL Uneditable text
STATUSBAR n/a n/a Entire status bar
TABLE TABLE TABLE Represents an entire table
TEXT TEXT TEXT Text that might be editable, depending on state
TITLEBAR n/a n/a Title or caption of window
n/a TOGGLE_BUTTON TOGGLE_BUTTON A button that can be pushed in or out, but doesn't provide separate indicator of checked state
TOOLBAR TOOL_BAR TOOL_BAR A toolbar
TOOLTIP TOOL_TIP TOOL_TIP The little piece of help text that comes up when you put your mouse over something
WHITESPACE FILLER FILLER Nothing to see here ... move along
WINDOW WINDOW WINDOW A window
n/a INTERNAL_FRAME, OPTION_PANE, FRAME, DIRECTORY_PANE, ROOT_PANE, LAYERED_PANE, SCROLL_PANE, VIEWPORT
DESKTOP_FRAME, DIRECTORY_PANE, FRAME,  LAYERED_PANE, OPTION_PANE, ROOT_PANE, SCROLL_PANE, VIEWPORT I have no idea what the difference between these things are
INTERNAL_FRAME
INTERNAL_FRAME, A window in an MDI applicaton
GLASS_PANE GLASS_PANE Invisible layer z-indexed to the front, for temporary content. E.g., tooltips may be drawn on the glass pane layer.
SPLIT_PANE SPLIT_PANE Multiple adjacent panes that can be sized reletive to each other by dragging a grippy on their border
n/a n/a CANVAS An object that can be drawn into and is used to trap events
n/a COLOR_CHOOSER COLOR_CHOOSER A dialog for picking a color
n/a FILE_CHOOSER FILE_CHOOSER A dialog for picking a file
n/a n/a INVALID No explanation given
n/a n/a UNKNOWN Contains accesible info, but its role is not known

Accessible States

MSAA State (STATE_SYSTEM_*) Java Accessibility State Gnome Accessibility State (ATK_STATE_*) Mac OS X Accessibility State Description & Notes Relevant HTML Relevant XUL
n/a n/a INVALID No explanation given
n/a n/a ACTIVE This window is currently the active window
ALERT_HIGH n/a n/a Critical info to convey immediately
ALERT_MEDIUM n/a n/a Info that's important, but does not required immediacy
ALERT_LOW n/a n/a Low-priority info such as a tip or hint
ANIMATED n/a n/a This object is changing or moving rapidly
n/a ARMED ARMED Not sure what this is for, similar to PRESSED?
BUSY BUSY BUSY The control cannot accept input at this time
CHECKED CHECKED CHECKED Used for any kind of toggle or radio button
COLLAPSED COLLAPSED COLLAPSED This is for expandable items that are not expanded Different from XUL's collapsed="true" attribute which indicates something is hidden
DEFAULT n/a n/a This is the default button or menu item
EXPANDED EXPANDED EXPANDED An item that has been expanded, such as a tree item with visible children
n/a EXPANDABLE EXPANDABLE An item that can be expanded, such as a tree item with children
EXTSELECTABLE n/a n/a Can extend selection
FLOATING n/a n/a Not clipped to boundary of parent, does not auto-move with parent
FOCUSABLE FOCUSABLE FOCUSABLE The item can get the keyboard focus
FOCUSED FOCUSED FOCUSED The item has the keyboard focus
HOTTRACKED n/a n/a Appearance has changed for mouseover
n/a HORIZONTAL HORIZONTAL Especially used for sliders and scrollbars
INVISIBLE VISIBLE VISIBLE MS and Sun are opposite here
n/a ICONIFIED ICONIFIED Minimized
MARQUEED n/a n/a
MIXED n/a n/a 3rd state in a tri-state checkbox
n/a MODAL MODAL Must do something with control before leaving it
n/a MULTI_LINE MULTI_LINE Edit control that can take multiple lines
MULTISELECTABLE MULTISELECTABLE MULTI_SELECTABLE Can select more than one of the children
OFFSCREENGROUPING n/a n/a Currently off-screen
n/a OPAQUE OPAQUE Indicates that every pixel is painted within the object's rectangular region
PRESSED PRESSED PRESSED Object is currently pressed down
PROTECTED n/a PASSWD_TEXT For passwords
READONLY EDITABLE EDITABLE MSAA opposite Sun here
SELECTABLE SELECTABLE SELECTABLE This object can be selected
SELECTED SELECTED SELECTED This object is selected
n/a n/a SENSITIVE For a button that is "consistent". The button is inconsistent when it will act on a group of objects (such as a list of mail messages) that are not in the same state.
SELFVOICING n/a n/a Don't speak for this item, it will take care of text-to-speech on it's own
n/a RESIZABLE RESIZABLE Object can be resized
n/a SHOWING SHOWING This object and all of it's ancestors are visible
n/a SINGLE_LINE SINGLE_LINE This text object can only contain 1 line of text
n/a TRANSIENT TRANSIENT Tells accessibility aid "Don't add event listener - this object doesn't generate any". For example, could be used with higher level containers.
UNAVAILABLE ENABLED n/a For greyed out vs. available items (I think). Are these opposites?
n/a VERTICAL VERTICAL Especially used for sliders and scrollbars

Accessible Events

MSAA Event (EVENT_OBJECT_*, EVENT_SYSTEM_*) Java Accessibility Event Gnome Accessibility Signals Mac OS X Accessibility Event Description & Notes Relevant HTML Relevant XUL
FOCUS
SELECTION
STATE_CHANGE