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.

ARIA is a standard developed as part of the Web Accessibility Initiative, which uses markup syntax quite familiar to users of HTML, XML, SGML and others. The roles it specifies have already informed the 'semantic elements' of HTML5 (such as main and footer), but there is not a one-to-one mapping between the ARIA roles and the semantics of HTML5. ARIA can be used to 'fill out' the missing semantics of HTML, but may also be used in other markup languages (such as SVG) and expresses semantics using attributes, compared with HTML, which tends to have distinct named elements for its roles. For all these reasons, ARIA and HTML are given separate columns. ARIA abstract roles should not be used by content authors.

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.

To do

  • Fill out Mac API column.(Mac OS X - Carbon Accessibility API and Accessibility Constants)
  • Finish ARIA column - add explanation of the term 'Abstract role'
  • Fill out HTML column
  • Create AOM column
  • Fill out XUL column.
  • Fill out Tagged PDF column (Relevant documents from PDF association)
  • Add missing ARIA properties
  • Fill out 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

Description & NotesMSAA Role (ROLE_SYSTEM_*)Java Accessibility RoleGnome Accessibility Role (ATK_ROLE_*)Mac OS X Accessibility RoleARIA (role=*)HTMLTagged PDFRelevant XUL
For alerts, in Java/Gnome for any alert, in MSAA if no other role applies. ARIA live region.ALERTALERTALERTalert, alertdialog
Content changes over time, such as animated gifANIMATIONn/ano specn/a
A section that forms an independent part of a document, page, or site.article<article><Part> or <Art>
Object representing entire app. ARIA role denotes interactive (not browsable) content operable in ways that differ from any of the other interactive ARIA roles, and may be only a part of the main document.APPLICATIONFRAMEn/aapplicationSee <Div> and <NonStruct>
A region that contains mostly site-oriented content, rather than page-specific content.banner
A portion of quoted content which is 'too long' to appear 'inline'n/ablockquote<BlockQuote>
Entire window border as 1 objectBORDERn/an/an/a
Specific kind of button that drops down a list of items, MSAA onlyBUTTONDROPDOWNn/an/aExpressed with aria-haspopup on an element with a button role
Specific kind of button that drops down a grid, MSAA onlyBUTTONDROPDOWNGRIDn/an/a
Specific kind of button that drops down a menu, MSAA onlyBUTTONMENUn/an/aExpressed with aria-haspopup on an element with a button role
Represents the system's caretCARETn/an/an/a
A brief portion of text describing a table or figure. In Tagged PDFn/an/aExpressed with aria-labelledby if visible on screen or aria-label otherwise<caption> (for tables), <figcaption> (for figures), and <label> with a for attribute (for input elements)a <TOC> or <L> may contain a <caption> as its first item

<Caption> or <Lbl>
A cell in a tableCELLn/aTABLE_CELLcell<td>TD
Not what you think - this is for the damn paperclipCHARACTERn/an/an/a
For graphics representing dataCHARTn/afigure ?
A checkbox; ARIA has two kinds: Use checkbox if you need to express 'mixed' state (some of the descendents are true, some are false), otherwise use switch or (preferred in HTML) <input type=checkbox>, which are true/false only.CHECKBUTTONCHECK_BOXCHECK_BOXcheckbox or switch<input type=checkbox>
Pretty obvious what this is forCLOCKn/an/atimer<time>
Column of cells in a table - how would the user specifically point to this, as opposed to the column header or cells?COLUMNn/an/an/a
The heading of a table's columnCOLUMNHEADERCOLUMN_HEADERCOLUMN_HEADER, TABLE_COLUMN_HEADERcolumnheader<th scope=col>
Edit control with drop down list box, different from DROPLISTCOMBOBOXCOMBO_BOXCOMBO_BOXcombobox
Abstract role - A form of widget that performs an action but does not receive input data.command
A supporting section of the document, designed to be complementary to the main content at a similar level in the DOM hierarchy, but remains meaningful when separated from the main content.complementary<aside>n/a but <Div> or even <p> have been suggested for this purpose
A widget that may contain navigable descendants or owned children.composite (abstract role)
A large perceivable region that contains information about the parent document such as copyright, authors' names etc.contentinfo<footer>Page footers are often tagged as an Artifact (not "real" content) with the 'contentinfo' provided as document level XMP metadata instead
The mouse pointer - when and how is this used?CURSORn/an/an/a
A definition of a term or concept.definition<dd>, <dfn><LBody>
Iconified version of an app(n/a - use either PUSHBUTTON or LISTITEM)DESKTOP_ICONDESKTOP_ICONn/a
A specific kind of a graphic - a diagram.DIAGRAMn/an/afigure<figure>
A dial or a knob. MSAA only.DIALn/an/an/a
A dialog or message box.DIALOGDIALOGDIALOGdialog<dialog>
A list of references to members of a group, such as a static table of contents.directorySee <nav>If it really is a table of contents, use <TOC> containing <TOCI> elements (which are wrappers for internal hyperlinks in such a table). For an index, use <Index> with a <L>(List) inside.
No default semantics in HTML, but semantics and other accessibility features may be provided with ARIA. See also Spann/an/an/a<div><Div> but if you need custom semantic structure, use <NonStruct> instead
Window that corresponds to an MDI document. In ARIA, used to nest browsable rich text content inside interactive contentDOCUMENTn/an/adocumentDocument
A drop down list, different from COMBOBOXDROPLISTn/an/alistbox
For math & chemistryEQUATIONn/an/amath
A scrollable list of articles where scrolling may cause articles to be added to or removed from either end of the list.feed
A landmark region that contains a collection of items and objects that, as a whole, combine to create a form.form<form>
Presumably MSAA's GRAPHIC is ARIA's and HTML's img?GRAPHICn/an/aimg<img>
A cell in a grid or treegrid.grid
A composite widget containing a collection of one or more rows with one or more cells where some or all cells in the grid are focusable by using methods of two-dimensional navigation, such as directional arrow keys, e.g. a spreadsheet.gridcell
A type of mouse pointer used for resizing windowsGRIPn/an/an/a
Probably a group box (titledbox in mozilla)GROUPINGPANELPANELgroup<fieldset>, <div>
A heading for a section of the page. In ARIA, the heading level is expressed with the aria-level attribute.heading<h1> ... <h6><H1> ... <H6>. <H> is also available but its use is not recommended because of lack of suitable tools - and the heading level is undefined
Click on this thing and then click on the item for tooltip style helpHELPBALLOONn/an/an/a
Editable field that allows user to assign a key combinationHOTKEYFIELDn/an/an/a
Graphic that indicates something, such as an arrowINDICATORn/an/an/a
Abstract role - A generic type of widget that allows user input.inputn/a
Hypertext link that can be on image or textLINKn/alink<a><Link> According to the PDF 1.7 spec, a <Link> must not be a direct child of a <TOCI> (table of contents item). In such a case, they should be wrapped in a <Reference> Pragmatically however, user agents should expect to find <Link> tags as direct children of <TOCI>
Abstract role - A perceivable section containing content that is relevant to a specific, author-specified purpose and sufficiently important that users will likely want to be able to navigate to the section easily and to have it listed in a summary of the page. Such a page summary could be generated dynamically by a user agent or assistive technology.landmarkn/a
Hypertext link that can be on image or textLINKn/alink<a><Link> According to the PDF 1.7 spec, a <Link> must not be a direct child of a <TOCI> (table of contents item). In such a case, they should be wrapped in a <Reference> Pragmatically however, user agents should expect to find <Link> tags as direct children of <TOCI>
A listLISTLISTLISTlist<ol>, <ul><L>
An item in a listLISTITEMn/aLIST_ITEMlistitem<li><LI> may contain <Lbl> (bullet, numeral, term etc.) and <LBody>
A type of live region where new information is added in meaningful order and old information may disappear.log
The main content of a document, distinct from complementary info, headers, footers, navigation, asides etc.main<main>
A type of live region where non-essential information changes frequently.marquee
The main menu bar below the app's title barMENUBARMENU_BARMENU_BARmenubar
A menu itemMENUITEMMENU_ITEMMENU_ITEMmenuitem
A menuitem with a checkable state whose possible values are true, false, or mixed.menuitemcheckbox
A checkable menuitem in a set of elements with the same role, only one of which can be checked at a time.menuitemradio
Any menu other than the menu bar
Java: MENU is for pull-downs, POPUP_MENU for all others
MENUPOPUPPOPUP_MENU, MENUPOPUP_MENU, MENUmenu
A collection of navigational elements (usually links) for navigating the document or related documents.navigation<nav>If it's a table of contents, use <TOC>
An element whose implicit native role semantics (if any) will not be mapped to the accessibility API.none, presentation<Private> or perhaps <Artifact>
A section whose content is parenthetic or ancillary to the main content of the resource.note
A selectable item in a select list.option
A tree with expandable & collapseable elementsOUTLINETREETREEtree
A tree itemOUTLINEITEMn/an/atreeitem
A tab in a tab panel UI (but is this the actual 'tab' that sticks out, or the panel associated with it?)PAGETABPAGE_TABPAGE_TABtab
The container of the page tab controls.PAGETABLISTPAGE_TAB_LISTPAGE_TAB_LISTtablist
A pane or frame in the current windowPANEn/aregion or group ?
The most common content type in most documents. A paragraph generally encloses distinct portions of content that are not otherwise specified with other block level structure element types such as heading, table or list elements.<p><P>
Shows percentage completion for taskPROGRESSBARPROGRESS_BARn/aprogressbar
Page showing properties of somethingPROPERTYPAGEn/an/an/a
Your average, run-of-the-mill buttonPUSHBUTTONPUSH_BUTTONPUSH_BUTTONbutton<button>
Only one radio button in a group is selectable. ARIA requires the parent to have role radiogroupRADIOBUTTONRADIO_BUTTONRADIO_BUTTONradio<input type=radio>
A container for a a group of radio buttonsradiogroupExpressed by giving each radio button the same value name attribute
Represents the an row in a tableROWn/an/arow<tr>
A structure containing one or more row elements in a tabular container.n/an/arowgroupn/a
A table row headerROWHEADERROW_HEADERROW_HEADER, TABLE_ROW_HEADERrowheader<th scope=row>
vertical or horizontal scrollbarSCROLLBARSCROLL_BARSCROLL_BARscrollbar
A landmark region that contains a collection of items and objects that, as a whole, combine to create a search facility.search
A type of textbox intended for specifying search criteria.searchbox
A renderable structural containment unit in a document or application.section (abstract role)<section><Sect>
A structure that labels or summarizes the topic of its related section.sectionhead (abstract role)
A form widget that allows the user to make selections from a set of choices.select (abstract role)
A line that splits 2 areas from each otherSEPARATOR
(either in menu or splits panes)
SEPARATOR
(in menu only)
SEPARATORseparator<hr>
Adjust in increments from min to max valuesSLIDERSLIDERSLIDERslider<input type=range>
A system soundSOUNDn/an/an/a
No default semantics in HTML, but semantics and other accessibility features may be provided with ARIA. See also Divn/an/an/a<span>Span
Kind of like a dial, but controls the value in a related fieldSPINBUTTONn/an/aspinbutton
Uneditable textSTATICTEXTLABELLABELsee aria-readonlyThe text nodes of HTML elements are uneditable by default, apart from <input type=text>, or those with a  contentEditable attribute
Entire status bar. In ARIA, a type of live region whose content is advisory information for the user but is not important enough to justify an alert, often but not necessarily presented as a status bar.STATUSBARn/an/astatus
A document structural element.structure (abstract role)
Represents an entire tableTABLETABLETABLEtable<table>
A container for the resources associated with a tab, where each tab is contained in a tablist.tabpanel
A word or phrase with a corresponding definition.termdt<Lbl>
Text that might be editable, depending on stateTEXTTEXTTEXTtextbox (if editable)The text nodes of HTML elements are uneditable by default, apart from <input type=text>, or those with a contentEditable attribute
Title or caption of windowTITLEBARn/an/a<title>
A button that can be pushed in or out, but doesn't provide separate indicator of checked staten/aTOGGLE_BUTTONTOGGLE_BUTTONbutton with aria-pressed attribute
A toolbarTOOLBARTOOL_BARTOOL_BARtoolbar
The little piece of help text that comes up when you put your mouse over somethingTOOLTIPTOOL_TIPTOOL_TIPtooltip
A grid whose rows can be expanded and collapsed in the same manner as for a tree.n/an/atreegrid
If you're using more than one consecutive whitespace element in HTML, you're doing it wrong. (Use CSS instead). Screen readers often announce this as "blank" or similar, which is usually noise, rather than content.WHITESPACEFILLERFILLERn/a&nbsp;
<br>
An interactive component of a graphical user interface.n/an/awidget (abstract role)
A windowWINDOWWINDOWWINDOWwindow (abstract role)
I have no idea what the difference between these things aren/aINTERNAL_FRAME, OPTION_PANE, FRAME, DIRECTORY_PANE, ROOT_PANE, LAYERED_PANE, SCROLL_PANE, VIEWPORTDESKTOP_FRAME, DIRECTORY_PANE, FRAME, LAYERED_PANE, OPTION_PANE, ROOT_PANE, SCROLL_PANE, VIEWPORT
A window in an MDI applicatonINTERNAL_FRAMEINTERNAL_FRAME,n/a
Invisible layer z-indexed to the front, for temporary content. E.g., tooltips may be drawn on the glass pane layer.GLASS_PANEGLASS_PANEn/a
Multiple adjacent panes that can be sized relative to each other by dragging a grippy on their borderSPLIT_PANESPLIT_PANEn/a
An object that can be drawn into and is used to trap events.n/an/aCANVASn/a<canvas> (accessible alternative richtext content may be nested inside, but the canvas itself is presentational)
A dialog for picking a colorn/aCOLOR_CHOOSERCOLOR_CHOOSERn/a<input type=color>
A dialog for picking a filen/aFILE_CHOOSERFILE_CHOOSERn/aInvoked with <input type=file>
No explanation givenn/an/aINVALIDn/a
Contains accessible info, but its role is not knownn/an/aUNKNOWN

Accessible States and Properties

Description & NotesMSAA State (STATE_SYSTEM_*)Java Accessibility StateGnome Accessibility State (ATK_STATE_*)Mac OS X Accessibility StateARIA State or propertyHTML attributeTagged PDFRelevant XUL
Used in ARIA to denote non-conformant user inputn/an/aINVALIDaria-invalid
This window is currently the active windown/aACTIVEACTIVEn/a
Identifies the currently active element when focus is on a composite widget, textbox, group, or application.n/aACCESSIBLE_ACTIVE_DESCENDANT_PROPERTYaria-activedescendant
Critical info to convey immediatelyALERT_HIGHn/an/aaria-live=assertive
Info that's important, but does not require immediacyALERT_MEDIUMn/an/aaria-live=polite
Low-priority info such as a tip or hintALERT_LOWn/an/an/a
This object is changing or moving rapidlyANIMATEDn/an/an/a
Indicates that the user input is currently directed to that object and it is "armed for selection." Example: a highlighted menu item or a pressed push button. For receiving text input, see FOCUSEDn/aARMEDARMEDavailable to javaScript as document.activeElement
Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute.n/an/aaria-atomic
Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be presented if they are made.n/an/aaria-autocomplete
The control cannot accept input at this time. Indicates an element is being modified and that assistive technologies MAY want to wait until the modifications are complete before exposing them to the user.BUSYBUSYBUSYaria-busy
Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.CHECKEDCHECKEDCHECKEDaria-checkedchecked (boolean attribute)
Defines the total number of columns in a table, grid, or treegrid.n/an/aaria-colcount
Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.n/an/aaria-colindex
Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.n/an/aaria-colspan
Identifies the element (or elements) whose contents or presence are controlled by the current element.n/an/aaria-controls
Indicates the element that represents the current item within a container or set of related elements.n/an/aaria-current
Identifies the element (or elements) that describes the object.n/an/aaria-describedby
Identifies the element that provides a detailed, extended description for the object.n/an/aaria-details
This is for expandable items that are not expanded, such as folded tree branches or accordionsCOLLAPSEDCOLLAPSEDCOLLAPSEDaria-expanded=falseDifferent from XUL's collapsed="true" attribute which indicates something is hidden
This is the default button or menu itemDEFAULTn/an/a
Identifies the element that provides an error message for the object.n/an/aaria-errormessage
An item that has been expanded, such as a tree item or accordionEXPANDEDEXPANDEDEXPANDEDaria-expanded=true
Indicates this object allows progressive disclosure of its children.n/aEXPANDABLEEXPANDABLEImplied by the presence of the aria-expanded attribute, regardless of value
Can extend selectionEXTSELECTABLEn/an/a
Not clipped to boundary of parent, does not auto-move with parentFLOATINGn/an/a
Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order. VERY POOR SUPPORT in user agents and ATs, and no sufficient techniques availablen/an/aaria-flowto
Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element. Supported for anything that's not a menu is poorn/an/aaria-haspopup
The item can get the keyboard focusFOCUSABLEFOCUSABLEFOCUSABLEtabindex attribute with value of 0 or more
The item has focus for text input. For other kinds of keyboard operation, e.g. UI controls, see ARMEDFOCUSEDFOCUSEDFOCUSEDavailable to javaScript as document.activeElement
Appearance has changed for mouseoverHOTTRACKEDn/an/a
Especially used for sliders, scrollbars, toolbars, tablists...n/aHORIZONTALHORIZONTALaria-orientation=horizontal
Indicates whether the element is exposed to an accessibility API. Note the reversed logic in some APIsINVISIBLEVISIBLEVISIBLEaria-hiddenhidden (boolean attribute)
Indicates whether the object is in an iconified or minimized state.Minimizedn/aICONIFIEDICONIFIEDCan be expressed with aria-expanded
MARQUEEDn/an/a
3rd state in a tri-state checkboxMIXEDn/an/aaria-checked=mixedn/a
Must do something with control before leaving itn/aMODALMODALaria-modal=true
Edit control that can take multiple linesn/aMULTI_LINEMULTI_LINEaria-multiline=true
Can select more than one of the childrenMULTISELECTABLEMULTISELECTABLEMULTI_SELECTABLEaria-multiselectable=true
Currently off-screenOFFSCREENGROUPINGn/an/an/a
Indicates that every pixel is painted within the object's rectangular regionn/aOPAQUEOPAQUEn/a

bgcolor

(deprecated in favor of CSS background-color)

Object is currently pressed down. ARIA permits this only with button rolePRESSEDPRESSEDPRESSEDaria-pressed=true
For passwordsPROTECTEDn/aPASSWD_TEXTpassword role slated for ARIA 2.0
A portion of quoted content which is brief enough to appear 'inline'. (Compare with blockquote).n/a<q><Quote>
Note the reversed logic in some APIsREADONLYEDITABLEEDITABLEaria-readonly=true
This object can be selectedSELECTABLESELECTABLESELECTABLE
This object is selectedSELECTEDSELECTEDSELECTEDaria-selected=trueselected (boolean attribute)
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.n/an/aSENSITIVE
Don't speak for this item, it will take care of text-to-speech on its ownSELFVOICINGn/an/a
Object can be resizedn/aRESIZABLERESIZABLE
This object and all of its ancestors are visiblen/aSHOWINGSHOWING
This text object can only contain 1 line of textn/aSINGLE_LINESINGLE_LINE
Tells accessibility aid "Don't add event listener - this object doesn't generate any". For example, could be used with higher level containers.n/aTRANSIENTTRANSIENTThe descendents of composite roles behave rather like this.
For grayed-out (disabled) vs. available (enabled) items. HTML attribute also removes element from tab sequence and 'grays it out'. ARIA attribute keeps it 'perceivable'.UNAVAILABLEENABLEDn/aaria-disabled=truedisabled (boolean attribute)
Especially used for sliders and scrollbarsn/aVERTICALVERTICALaria-orientation=vertical

Accessible Events

MSAA Event (EVENT_OBJECT_*, EVENT_SYSTEM_*)Java Accessibility EventGnome Accessibility SignalsMac OS X Accessibility EventDescription & NotesJavaScriptRelevant XUL
FOCUSfocus, focusin
blur, focusout
SELECTIONselect
STATE_CHANGEchange (not sure if this is the same thing?)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:70 次

字数:57790

最后编辑:7年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文