- 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