ZVON > References > UAAG 1.0
   Previous | Next | Guidelines | Priorities

Guideline 6:
Implement interoperable application programming interfaces

Implement interoperable interfaces to communicate with other software (e.g., assistive technologies, the operating environment, and plug-ins).

[checkpoints]

This guideline addresses interoperability between a conforming user agent and other software, in particular assistive technologies. The checkpoints of this guideline require implementation of application programming interfaces (APIs) for communication. There are three types of requirements in this guideline:

  1. Requirements for what information must be communicated through an API
  2. Requirements for which APIs or types of APIs must be used to communicate this information
  3. Requirements for additional characteristics of these APIs

Checkpoints

6.1
[P1]
  • Provide programmatic read access to XML content by making available all of the information items defined by the W3C XML Infoset.
  • Provide programmatic read access to HTML content by making available all of the following information items defined by the W3C XML Infoset:
    • Document Information item: children, document element, base URI, charset
    • Element Information items: element-type name, children, attributes, parent
    • Attribute Information items: attribute-type name, normalized value, specified, attribute type, references, owner element
    • Character Information items: character code, parent element
    • Comment Information items: content, parent
  • If the user can modify the state or value of a piece of HTML or XML content through the user interface (e.g., by checking a box or editing a text area), allow programmatic read access to the current state or value, and allow the same degree of write access programmatically as is available through the user interface.
6.2
[P1]
  • Provide access to the content required in checkpoint 6.1 by conforming to the following modules of the W3C Document Object Model (DOM) Level 2 Core Specification and exporting bindings for the interfaces they define:
    • for HTML: the Core module
    • for XML: the Core and XML modules
  • As part of satisfying provision one of this checkpoint:
    • In the Java and ECMAScript operating environments, export the normative bindings specified in the DOM Level 2 Core Specification, or
    • In other operating environments, the exported bindings (e.g., C++) must be publicly documented.
6.3
[P1]
  • For content other than HTML and XML, provide structured programmatic read access to content.
  • If the user can modify the state or value of a piece of non-HTML/XML content through the user interface (e.g., by checking a box or editing a text area), allow programmatic read access to the current state or value, and allow the same degree of write access programmatically as is available through the user interface.
  • As part of satisfying provision one of this checkpoint, implement at least one API according to this API cascade:
    • The API is defined by a W3C Recommendation, or the API is publicly documented and designed to enable interoperability with assistive technologies.
    • If no such API is available, or if available APIs do not enable the user agent to satisfy the requirements,
      • implement at least one publicly documented API to satisfy the requirements, and
      • follow operating environment conventions for the use of input and output APIs.
6.4
[P1]
  • For graphical user agents, make available bounding dimensions and coordinates of rendered graphical objects. Coordinates must be relative to the point of origin in the graphical environment (e.g., with respect to the desktop), not the viewport.
  • For graphical user agents, provide access to the following information about each piece of rendered text: font family, font size, and foreground and background colors.
  • As part of satisfying provisions one and two of this checkpoint, implement at least one API according to the API cascade described in provision two of checkpoint 6.3.
6.5
[P1]
  • Provide programmatic read access to user agent user interface controls, selection, content focus, and user interface focus.
  • If the user can modify the state or value of a user agent user interface control (e.g., by checking a box or editing a text area), allow programmatic read access to the current state or value, and allow the same degree of write access programmatically as is available through the user interface.
  • As part of satisfying provisions one and two of this checkpoint, implement at least one API according to the API cascade described in provision two of checkpoint 6.3.
6.6
[P1]
  • Provide programmatic notification of changes to content, states and values of content, user agent user interface controls, selection, content focus, and user interface focus.
  • As part of satisfying provision one of this checkpoint, implement at least one API according to the API cascade of provision two of checkpoint 6.3.
6.7
[P1]
  • Implement APIs for the keyboard as follows:
    • Follow operating environment conventions.
    • If no conventions exist, implement publicly documented APIs.
6.8
[P1]
  • For an API implemented to satisfy requirements of this document, support the character encodings required for that API.
6.9
[P2]
  • For user agents that implement Cascading Style Sheets (CSS), provide programmatic access to style sheets by conforming to the CSS module of the W3C Document Object Model (DOM) Level 2 Style Specification and exporting bindings for the interfaces it defines.
  • As part of satisfying provision one of this checkpoint:
    • In the Java and ECMAScript operating environments, export the normative bindings specified in the CSS module of the DOM Level 2 Style Specification, or
    • In other operating environments, the exported bindings (e.g., C++) must be publicly documented.
6.10
[P2]
  • For APIs implemented to satisfy the requirements of this document, ensure that programmatic exchanges proceed in a timely manner.
[ top ]