- From: <Becky_Gibson@notesdev.ibm.com>
- Date: Thu, 5 Aug 2004 10:58:51 -0400
- To: w3c-wai-gl@w3.org
- Message-ID: <OF8A7641DA.74927625-ON85256EE7.0051DFB2-85256EE7.00529AA5@notesdev.ibm.com>
The Agenda for the Aug 5 2004 WCAG WG telecon includes a topic on access
keys. Here is some background for the discussion.
Back in June I started the following thread in the mailing list about a
proposal for access keys:
<http://lists.w3.org/Archives/Public/w3c-wai-gl/2004AprJun/0773.html>
The idea is to have standard access keys and let each browser define the
set of keystrokes that map to these functions. This helps to eliminate
the current problem with the HTML access key attribute where the author
must find an available keystroke combination (that works in multiple
browsers) and find a way to notify the user of the set of access keys used
in the content.
The behavior when an access key is pressed must also be specified. In
some instances, pressing an access key may set focus to a certain part of
the document, such as an access key for "skip to main content". But,
other access keys may actually be used to perform an action such as a set
of keys for moving from "page" to "page" forward or backward within a web
resource. In the case of links to move forward or backward in a web site,
should executing the access key bring focus to the link for moving
forward/backward or should pressing the key actually perform the action
without first focusing the link? Menus can exhibit the same problems -
should pressing the access key execute the menu item or just focus the
menu item? Thus, the user should be able to select an option in the
browser for setting access keys to focus or activate when pressed. And,
should there be support for access keys that may have no visible
representation? In many cases, access keys are representing a particular
action or role on the web resource. Roles is something that is being
looked at by the XHTML working group for XHTML2 and is identified as part
of the WAI-PF working group Roadmap.
The XHTML group is working on a roadmap to help fix some of the issues
with dynamic web content working with assistive technologies. To that
end, the roadmap proposes a set of standard roles that can be assigned to
components in the web resource. And example is marking a particular
<div> as representing a menu item; or making a <div> as the main content
on the page; or marking a component as a navigation bar. An assistive
technology can use the role information attached to a component to provide
support for the function of that component. For example, if a screen
reader encounters a <div> that is marked with role of menu, it can speak,
"menu - reply options with 4 menu items" or, "menu item - reply with
history". In addition to components having roles, scripts can specify
action roles such as "open new window", that can give additional
information to assistive technologies about what action will occur. In
working on the definition of standard roles, the group has encountered
overlap with access key definitions.
Often it would be desirable to assign a standard access key to interact
with components that implement some of the standard role definitions. For
example: marking a section of the document as the main content and
defining an access key to navigate to the main content; or assigning a
role of "portlet" and assigning an access key to navigate from portlet to
portlet on the page. This leads to the following questions that we would
like feedback from WCAG about:
What are the standard access keys we would like to see defined and what
are the use cases?
What are the standard roles we would like to see defined and what are the
use cases?
How do we merge the areas of overlap between roles and access keys?
How to handle scoping issues? For example, if there are several portlets
defined on a page each with a main content section in what order do these
get invoked?
The following tables list the proposed standard roles.
Accessibility API Roles
The following table lists the set of standard roles which map to platform
accessibility API. These apply to elements within the body tag.
General Role
User Agent Mapping
alert
Definition: Indicates that the Window is an Alert message
ATK: ATK_ROLE_ALERT
MSAA: ROLE_SYSTEM_ALERT
animation
Definition: Contains graphic content that changes over time.
ATK: ATK_ROLE_ANIMATION
MSAA: ROLE_SYSTEM_ANIMATION
application
Definition: Indicates that the element and its descendents represent an
application. This is valuable for <object>.
ATK: ATK_ROLE_APPLICATION
MSAA: ROLE_SYSTEM_APPLICATION
buttonmenu
Definition: Button that drops down a menu
MSAA: ROLE_SYSTEM_BUTTONMENU
calendar
Definition: Displays a calendar and allows for date selection.
ATK: ATK_ROLE_CALENDAR
MSAA: ROLE_SYSTEM_TABLE
checkbox
Definition: Turned off independently of other objects. Usually rendered to
appear like a standard GUI checkbox control.
ATK: ATK_ROLE_CHECKBOX
MSAA: ROLE_SYSTEM_CHECKBUTTON
checkMenuItem
Definition: menu item with a check box
ATK: ATK_ROLE_CHECK_MENU_ITEM
MSAA: ROLE_SYSTEM_MENUITEM
combobox
Definition: Select from a list of choices. Usually rendered as an edit
field with a drop down list of choices
ATK: ATK_ROLE_COMBOBOX
MSAA: ROLE_SYSTEM_COMBOBOX
column_header
Definition: Header for a colunm of data not associated with a table.
Use table_column_header for table specific column headers.
ATK: ATK_ROLE_COLUMN_HEADER
MSAA: ROLE_SYSTEM_COLUMNHEADER (NOTE that this IS specific to tables)
dial
Definition: Allows for selection of a value within a range through the use
of a knob or dial.
ATK:ATK_ROLE_DIAL
MSAA: ROLE_SYSTEM_ DIAL
dialog
Definition: Rendered to look as a dialog box for selection of a range of
values.
ATK:ATK_ROLE_DIALOG
MSAA: ROLE_SYSTEM_DIALOG
dialog_pane
Definition: Pane used inside a dialog box.
ATK:ATK_ROLE_OPTION_PANE
MSAA: ROLE_SYSTEM_DIALOG
directory_pane
Definition: Allows navigation and selection of contents of a directory
ATK:ATK_ROLE_DIRECTORY_PANE
MSAA: ROLE_SYSTEM_PANE
frame
Definition: Rendered to look like a window frame.
ATK:ATK_ROLE_FRAME
MSAA: ROLE_SYSTEM_WINDOW
groupbox
Definition: Group of controls.
ATK: ATK_ROLE_PANEL
MSAA: ROLE_SYSTEM_GROUPING
Note: The user agent will need to define a group relationship to its for
the panel's children in ATK
icon
Definition: A fixed sized picture.
ATK:ATK_ROLE_ICON
graphic
Definition: a picture or image
ATK: ATK_ROLE_IMAGE
MSAA: ROLE_SYSTEM_GRAPHIC
label
Definition: static text describing an element or object
ATK: ATK_ROLE_LABEL
MSAA: ROLE_SYSTEM_STATICTEXT
layered_pane
Definition: pane with childran that are drawn in stacking order
ATK: ATK_ROLE_LAYERED_PANE
MSAA: ROLE_SYSTEM_PANE
link
Description: navigates to another resource but not implemented as a
traditional link
MSAA: ROLE_SYSTEM_LINK
list
Definition: represents a list box for selecting one or more items
ATK: ATK_ROLE_LIST
MSAA: ROLE_SYSTEM_LIST
listItem
Definition: represents a selectable item in a list
ATK: ATK_ROLE_LISTITEM
MSAA: ROLE_SYSTEM_LISTITEM
menu
Definition: represents a list of items from which the user can select an
action
ATK:: ATK_ROLE_MENU
MSAA: ROLE_SYSTEM_MENUPOPUP
menubar
Definition: contains more than one menu selectable by the user. Generally
at the top of a window or pane
ATK: ATK_ROLE_MENU_BAR
MSAA: ROLE_SYSTEM_MENUBAR
menuitem
Definittion: an element in a menu that represents a selectable action
ATK: ATK_ROLE_MENU_ITEM
MSAA: ROLE_SYSTEM_MENUITEM
pane
Definition: level of grouping within frame or document
ATK: ATK_ROLE_PANEL
MSAA: ROLE_SYSTEM_PANE
progressbar
Definition: dynamically displays how much of an operation has been
completed
ATK: ATK_ROLE_PROGRESS_BAR
MSAA: ROLE_SYSTEM_PROGRESSBAR
propertypage
Definition: a property sheet for changing attributes
MSAA: ROLE_SYSTEM_PROPERTYPAGE
pushbutton
Definition: push button control to perform an action
ATK: ATK_ROLE_PUSH_BUTTON
MSAA: ROLE_SYSTEM_PUSHBUTTON
radiobutton
Definition: represents a specialized button in a mutually exclusive
group - activating one in the group deactivates all others in the group.
values: true
ATK: ATK_ROLE_RADIO_BUTTON
MSAA: ROLE_SYSTEM_RADIOBUTTON
root_pane
Definition: pane that contains a top_pane and layered_pane(s)
ATK: ATK_ROOT_PANE
MSAA: ROLE_SYSTEM_PANE
row_header
Definition: Header for a row of data not associated with a table. Use
table_row_header for table specific rows.
ATK: ATK_ROOT_ROW_HEADER
MSAA: ROLE_SYSTEM_ROWHEADER (Note that this IS specific to tables).
scrollbar
Definitiion: represents a horizontal or vertical scroll bar
ATK: ATK_ROLE_SCROLL_BAR
MSAA: ROLE_SYSTEM_SCROLLBAR
scroll_pane
Definition: pane that contains a top_pane and layered_pane(s)
ATK: ATK_ROLE_SCROLL_PANE
MSAA: ROLE_SYSTEM_PANE
secret_text
Definition: text content not visibly displayed to the user
ATK: ATK_ROLE_PASSWORD_TEXT
MSAA: ROLE_SYSTEM_TEXT
selectable
Definition: This means that this element is a descendant of a container
element which manages its selection and it is selectable by the user.
applies to HTML Form element <option>
XForms: see selectable
values: true
separator
Definition: provide visual separation in a list of objects. Generally
used in a menu
ATK: ATK_ROLE_SEPARATOR
MSAA: ROLE_SYSTEM_SEPARATOR
slider
Definition: control for selecting an incremental value between some
specified minimum and maximum
ATK: ATK_ROLE_SLIDER
MSAA: ROLE_SYSTEM_SLIDER
spinbutton
Definition: Control for modifying an incremental value in an associated
control such as text field
ATK: ATK_ROLE_SPIN_BUTTON
MSAA: ROLE_SYSTEM_SPINBUTTON
split_pane
Definition: specialized panel that presents two panels at the same time
ATK: ATK_ROLE_SPLIT_PANE
MASS: ROLE_SYSTEM_PANE
static_text
Definition: read only text
ATK:ATK_ROLE_TEXT (use the editible state attributes to determine
aditiable or not)
MSAA: ROLE_SYSTEM_STATIC_TEXT
statusbar
Definition: object that provides information about the current operation
or selection
ATK: ATK_ROLE_STATUSBAR
MSAA: ROLE_SYSTEM_STATUSBAR
table
Definition: objects represents a data table of rows and columns
ATK: ATK_ROLE_TABLE
MSAA: ROLE_SYSTEM_TABLE
tablecell
Definition: represents a cell in a table
ATK: ATK_ROLE_TABLE_CELL
MSAA: ROLE_SYSTEM_CELL
table_layout
Definiton: Table used as a layout mechanism
table_column_header
Definition: header for a column in a table
ATK: ATK_ROLE_TABLE_COLUMN_HEADER
MSAA: ROLE_SYSTEM_COLUMNHEADER
table_row_header
Definition: header for a row in a table
ATK: ATK_ROLE_TABLE_ROW_HEADER
MSAA: ROLE_SYSTEM_ROWHEADER
tab_panel
Definitiion: represents a panel in a grouping of tabbed panels
ATK: ATK_ROLE_PAGE_TAB
MSAA: ROLE_SYSTEM_PAGETAB (must have ROLE_SYSTEM_GROUPING as only child)
tab_panel_list
Definition: container for tab_panels
ATK: ATK_ROLE_PAGE_TAB_LIST
MSAA: ROLE_SYSTEM_PAGETABLIST
tear_off_menuItem
Definition: a menu with a moveable state
ATK: ATK_ROLE_TEAR_OFF_MENU_ITEM
MSAA: ROLE_SYSTEM_MENUITEM
(Note: use of accessible state information would indicate that the element
is moveable in MSAA)
text
Definition: represents text
ATK: ATK_ROLE_TEXT (will need to use state information to indicate if the
text is editable)
MSAA: ROLE_SYSTEM_TEXT
toolbar
Definition: grouping of controls that represent common actions
values: true
ATK: ATK_ROLE_TOOL_BAR
MSAA: ROLE_SYSTEM_TOOLBAR
top_panel
Definition: panel that is drawn on top of all others
ATK: ATK_ROLE_GLASSPANE
MSAA: ROLE_SYSTEM_PANE
tooltip
Definition: provides information about another object
values: string
ATK: ATK_ROLE_TOOL_TIP
MSAA: ROLE_SYSTEM_TOOLTIP
XForms - see hint
tree
Definition: represents hierarchical information to the user in expandable
/collapsable sections
ATK: ATK_ROLE_TREE
MSAA_ROLE_SYSTEM_OUTLINE
tree_table
Definition: tree that also shows multiple columns of data
ATK: ATK_ROLE_TREE_TABLE
unknown
Definition: This is the indeterminate state of a tri-state widget. This is
used for progress meters or checkboxes.
ATK: ATK_ROLE_UNKNOWN
MSAA: ROLE_SYSTEM_CLIENT (represents a window's client area but also used
as the default when the role is unknown)
whitespace
Definition: object that represents empty space between objects
ATK: ATK_ROLE_FILLER
MSAA: ROLE_SYSTEM_WHITESPACE
Additional Roles
The following are additional roles that do not map directly to existing
Accessibility APIs but are common functions found in web content. These
apply to elements within the body tag. Selfvoicing is limited to object,
body, iframe, frame due to complexity imposed on assistive technologies.
Role
Definition
cell
cell in a grid of row and columns
column
column of information not associate with a table
contact_information
grouping of contact information
footer
grouping of information at the bottom of a resource
header
grouping of information at the top of a resource
horizontal_navigationbar
horizontal implementation of a navigation mechanism for the
site/application
layout_table
table element that has been used strictly for layout purposes
maincontent
indicates the main content area of the resource
row
row of information not associated with a table
portlet
A content channel or application to which a user subscribes, adds to their
personal portal page and configures to show personalized content. A likely
appearance is a box with a title bar and content (e.g. sports results,
stock quotes, urgent e-mail, weather) located somewhere on a portal page.
self_voicing
Definition: Indicates the object tag represents a self-voicing application
meaning that it will speak without an assistive technology.
sitemap
describes the structure of the site
vertical_navigationbar
vertical implementation of a navigation mechanism for the site/application
Action Roles
The following roles represent actions that are implemented via scripting.
Role
Definition
add_element
result of the script adds new element(s) to the document object model
display_message
script displays a message to the user (generally in a popup)
new_location
result of the script may load a new uri
new_window
result of the script may open a new window
submit
successful execution of the script performs a submit
update_focus
script programmatically updates the element with focus
validate
script performs validation of data
Becky Gibson
Web Accessibility Architect
IBM Emerging Internet Technologies
5 Technology Park Drive
Westford, MA 01886
Voice: 978 399-6101; t/l 333-6101
Email: gibsonb@us.ibm.com
Received on Thursday, 5 August 2004 10:59:42 UTC