Establishing minimal set of information requirements for UA/AT communication

Dear UAWG and AT vendors,

Many thanks to those who attended today's teleconference (minutes
[1]) to discuss our DOM requirements (see guideline 6 of the 12
Sep 2001 Candidate Recommendation of UAAG 1.0).

The goal of the teleconference was to confirm whether the
requirement of UAAG 1.0 to implement the DOM 2 Core for access to
XML/HTML content:

   (1) meets the needs of AT developers, and
   (2) promotes interoperability in practice.

We did not get a definitive answer to either question on the
call. However, we made good progress because we are going to look
more closely at what the communication needs are. We may not
satisfy all of them in UAAG 1.0, but we may be able to formulate
requirements that come closer to satisfying them.

The goal of this proposal is to help start discussion on what a
"minimal set" of requirements are for information that must be
communicated through an API between user agent and API. At
today's call, we asked everyone to send their functional
requirements for an API to the list. This proposal complements
those actions; it will be valuable to see whether people's "top
5" functional requirements line up with the XML Infoset (see
below). Aaron Leventhal has already contributed to the discussion
[3] by describing what information is offered by Mozilla's
"simple dom API".

This proposal is based on a conversation with Philippe Le Hegaret
after today's UAWG teleconference.

========
Proposal
========

Preface:

  * During the teleconference, we talked about identifying a
    minimal API that would meet the needs of AT developers.

  * The XML Infoset is a W3C Recommendation that carefully
    identifies pieces of XML content. A subset of the XML
    Infoset can be used to describe pieces of HTML content.

  * Our efforts to talk about what information should be
    available to ATs should be coordinated with the
    work on the Infoset.

  * Point three of the proposal is the minimal set of
    information for HTML.

<Old 6.1>

  Provide programmatic read access to HTML and XML content by
  conforming to the following modules of the W3C Document Object
  Model DOM Level 2 Core Specification [DOM2CORE] and exporting
  the interfaces they define:
     * the Core module for HTML;
     * the Core and XML modules for XML.

</Old 6.1>

Note: I'm not concerned about the exact wording in what
follows, but comments on wording are welcome.

New:

1) In a java or ecmascript operating environment, provide
    programmatic read access to XML content by conforming to the Core
    and XML modules of the W3C Document Object Model (DOM) Level 2
    Core Specification and exporting the interfaces they define.

    COMMENT: The java and ecmascript bindings in DOM Level 2 Core
    are normative, and therefore the DOM is the best way to
    provide access to the XML information items. We heard a number
    of AT developers say today they wish they had normative
    bindings in C++ as well, but DOM 2 does not define them.

2) In other operating environments, provide programmatic read
    access to XML content by making available the pieces defined by
    the W3C XML Infoset [4]. A user agent satisfies this requirement
    by providing programmatic read access to XML content by
    conforming to the Core and XML modules of the W3C Document Object
    Model (DOM) Level 2 Core Specification and exporting the
    interfaces they define.

    COMMENT: I'm not yet certain how to make references to the XML
    Infoset. I will look into whether this type of reference makes
    sense. This comment applies to the next point as well.

3) Provide access programmatic read access to HTML content
    by making available the following pieces defined by the
    W3C XML Infoset [4]:

    2.1 The Document Information item:
        children, document element, base URI, charset
    2.2 Element Information items:
        element-type name, children, attributes, parent
    2.3 Attribute Information items:
        attribute-type name, normalized value, specified,
        attribute type, references, owner element
    2.6 Character Information items:
        character code, element content whitespace (see comment),
        parent element
    2.7 Comment Information items:
        content, parent

    Optional:
    2.8 The Document Type Declaration Information item:
        system identifier, public identifier, parent

    A user agent satisfies this requirement by providing
    programmatic read access to XML content by conforming to the
    Core module of the W3C Document Object Model (DOM) Level 2
    Core Specification and exporting the interfaces it defines.

    COMMENT: I'm not sure whether element content whitespace
    should be optional or mandatory. This is useful for formatting
    markup when saving a persistent representation. It may not
    be necessary for ATs. This whitespace is only for formatting
    the source code.

4) For points 2 and 3 above, provide access to the infoset
    by implementing at least one API that is either
       * defined by a W3C Recommendation, or
       * a publicly documented API 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.

    COMMENT: I believe that point four will end up being extracted
    into its own checkpoint, and will apply to additional
    checkpoints (like 6.3) in Guideline 6.

[1]
http://lists.w3.org/Archives/Public/w3c-wai-ua/2002JanMar/0120
[2]
http://www.w3.org/TR/2001/CR-UAAG10-20010912/guidelines#gl-accessible-interface
[3] http://lists.w3.org/Archives/Public/w3c-wai-ua/2002JanMar/0117
[4] http://www.w3.org/TR/2001/REC-xml-infoset-20011024

-- 
Ian Jacobs (ij@w3.org)   http://www.w3.org/People/Jacobs
Tel:                     +1 718 260-9447

Received on Thursday, 28 March 2002 17:46:00 UTC