Implementing Accessible Document Interfaces Using ATK

Please use this page to suggest improvements to and prose for the unpopulated and underpopulated sections of Implementing Accessible Document Interfaces Using ATK. Comments should also be posted to the publicly archived accessibility-atspi emailing list

For Reference:


Contents



Introduction

Note: This text simply needs review


Implementing ATK Interface Classes

text is needed for the following:


AtkAction

text is needed for the following:

  1. Recommendations for exposing actions for any interactive element, including elements with event handlers. Interactive elements include text and image links, image map areas, form elements, elements with access keys, DHTML widgets, and elements with event handlers. Interactive elements may be temporarily disabled programmatically (i.e. no user input allowed).
  2. Discuss how to expose access keys for interactive elements in a document.
  3. Also, discuss how to expose both default actions (click) as well as additional actions (such as a mouseOver).
  4. Also, how to expose how many controls are within a form and how many areas within a map.



AtkComponent

there is currently NO text in this sub-section



AtkDocument

Recommend how to bound document and children containers (scope), including forms, tables, and sections within a document. A document consists of one or more containers, which include grids, sections, trees, blocks (list of contiguous interactive or non-interactive elements), embedded objects or documents, and others. The document itself is a container. Examples of sections include page, frame, form, map, navigation bar, block (list of interactive or non-interactive elements), object, content between headings, group boxes, tabbed pages, division, span, document landmarks identified by a role attribute or namespace, slide, sheet, note section, header, footer, table of contents, index, and others.



AtkEditableText

the following needs text:

  1. Some document types are read-only (PDF in Adobe Reader, Web) except for form controls and dynamic content controlled by scripting, while other documents have all content as read/write (word processing). Add recommendations for exposing edit controls and dynamic content which is editable



AtkGObjectAccessible

there is currently NO text in this sub-section


AtkHyperlink and AtkHyperText

text is needed for the following:



AtkImage

text is needed for the following:

  1. Recommend how to expose images and their alternative or descriptive text and their source filename. For example, how to expose the alt and title attributes for HTML images, image links, maps and map areas, and image buttons, and the long description link (longdesc) for an image or image link (URL).
  2. Also, how to expose the number of areas in a map.
  3. And how to expose the caption for a figure.
  4. If possible, discuss how to implement empty descriptive (alt) text from no description available (no alt attribute) from a document author.
  5. Discuss how to expose the language of the descriptive image text.



AtkNoOpObject and AtkNoObjectFactory

there is currently NO text in this sub-section.



AtkObject

text is needed for the following:

  1. Recommendations on how to implement the name, role, description, relationships, states, locale, etc. for each object in a document. Consult Desirable Roles for Document Objects and Navigation for a list of document objects and container types.
  2. Discuss focus and change signals as they relate to document navigation.



AtkObjectFactory

there is currently NO text in this sub-section.



AtkRegistry

there is currently NO text in this sub-section.



AtkRelation and AtkRelationSet

text is needed for the following:

  1. Recommendations for exposing labels (label elements, title attributes, etc.) for single controls as well as compound controls (like combo boxes, select menus, etc.).
  2. Recommendations for exposing groups of objects and controls (like group boxes, groupings of objects, FIELDSET and LEGEND in HTML, OPTGROUP in HTML select menus).
  3. Recommendations using ATK_RELATION_CONTROLLER_FOR, such as describing the result of an event handler in addition to its action.
  4. Discuss how to expose embedded objects in a document, such as images, pictures, diagrams, Flash content, Java applets, graphs, spreadsheets, and other document content imported from a different source file and/or document types.
  5. Discuss how to indicate that interaction with a document object can result in a pop-up window.



AtkSelection

text is needed for the following:

  1. Recommendations related to implementing single and multiple selection within a document using the keyboard and providing the selected content to the AT. Also, address selection across text, form controls, and embedded objects including images.



AtkState and AtkStateSet

text is needed for the following:

  1. Recommendations for how to expose states for all interactive elements, whether controls are enabled or not, whether elements are visible or hidden, whether elements are in the visual area or not, and whether the state of a control is affected by other controls in a group or container



AtkStreamableContent

there is currently NO text in this sub-section.



AtkTable

text is needed for the following:

  1. Discuss how to expose row and column headers, table summary, table caption, number of rows and columns, current row and column number, type of table (data or layout). Data tables in HTML documents should be distinguished from layout tables by the presence of a CAPTION, TH cells, header attributes, a role=”presentation”, and/or a summary attribute.



AtkText

text is needed for the following:

  1. Recommendations related to how to expose a description for a text object, such as a title attribute for an abbreviation or any other text element.
  2. Discuss how to expose style and font attributes.
  3. Discuss implementing text attributes using name-value pairs to expose structure element types such as headings and their level, and lists and their indexes and nesting, versus the use of role attributes. Consult also Desirable Roles for Document Objects and Navigation for a list of document objects and container types.
  4. Also, how to expose the number of list items within a list, the start index for an ordered list, and the type of list (ordered, unordered, simple, definition).
  5. Discuss how to expose the locale for any element in a document.
  6. Discuss how to define characters, words, lines, and sentences in a document, including internationalization considerations and how document structure can impact line definitions. A line definition may be based on a specified number of characters, which may be the visual width of the application’s edit/container control or the visual width of a column within a single element.



AtkUtil

there is currently NO text in this sub-section.



AtkValue

text is needed for the following:

  1. Recommend how to expose values for controls in documents and whether the values are read-only or not



Collections of Containers and Objects

text is needed for the following:

  1. Recommendations on how to implement the Document and Collection interfaces to allow the AT to navigate objects and containers, including all items, interactive elements, hyperlinks, forms and form controls, headings, table tops and within tables, images and embedded objects, elements with access keys, frames, sections identified by a document landmark, within tree-style widgets. Consult Desirable Roles for Document Objects and Navigation for a more extensive list of document objects and containter types.
  2. Discuss how to expose document versus tab order for interactive elements within a document using the sort parameter of the Collection interface.


Performance Considerations

text is needed for the following:

  1. Discuss ATK implementations in the application which can help to improve AT performance in response to user requests, such as how to implement the bounds for documents and containers so that the AT can limit the scope of its requests. To improve AT performance during navigation and collection of objects and their attributes, discuss any kind of streaming techniques or ways to reduce the number of API calls that the application can implement.



Notification of Document Events


Mutation Events

text is needed for the following:

  1. Recommendations on how to notify an AT when part of a document changes and where it changed



New Document Events

text is needed for the following:

  1. Recommendations on notification of new documents opening, including how to handle when multiple documents like frame documents are opened almost simultaneously.
  2. Recommendations on how to send event notifications for alerts that are not top level windows and not focusable (from Aaron Leventhal regarding FireFox).



Keyboard Navigation Considerations

text is needed for the following:

  1. The application should implement keyboard access to non-default and mouse-only actions from a context menu or through some other UI.
  2. The application should provide support for access keys assigned to elements in a document.
  3. The application should provide keyboard navigation and selection of text by word, character, and line.
  4. The application should provide keyboard navigation to all interactive elements in a document. Optionally, the application could provide keyboard navigation to just hyperlinks or just form controls in addition to the set of all interactive elements.



User Preferences Related to Accessibility

text is needed for the following:

  1. Recommendations on how the application should implement and maintain its point of regard, and how it communicates with the AT about the current POR.



Point of Regard (POR) Considerations

there is currently NO text in this sub-section.



Desireable Roles for Document Objeccts and Navigation

Note: This section needs review, contextualization, and perhaps revision