The Linux Foundation

 
Accessibility/IAccessible2/Agenda/20081014

From The Linux Foundation

Agenda for 2008/10/14

  1. Introductions if needed
  2. Approval of minutes - Corrections? Approval?
  3. LF: Open A11y news - Janina
  4. ISimpleDOMNode
    • This is an Open A11y issue but is being discussed on this call to allow Mick and Jamie to attend the discussion at a reasonable hour.
    • Please see the following mail discussions
    • Summary of proposal:
    • The primary pluses are:
      • ISimpleDOMNode code already exists in many ATs.
      • ISimpleDOMNode provides access to the XML/HTML and thus acess to speacialized content such as math.
    • The primary questions and comments:
      • A primary goal of IA2 has been to facilitate efficient cross platform (Win/Linux) app development. One of the primary arguments for standardizing ISimple* is, rather, to facilitate efficient cross-browser AT development. We want to expose special markup like math on Linux as well but there is no ATK/AT-SPI equivalent to ISimpleDOMNode. The OpenA11y group needs to determine if ATK/AT-SPI should include an equivalent to ISimple*.
      • There is a delta between ISimple* and the IE equivalent. While we are considering harmonizing ISimple* with ATK/AT-SPI should we also, via AIA, consider defining an interface definition that deprecates both ISimple* and the IE equivalent so app and AT implementers have only one interface to deal with?
      • Specialized markup like Math also needs to be accessible in non-browser environments. Would ISimpleDOMNode be implementable in other applications such as office apps?
      • Does ISimpleDOMText need to be included? All of its function appears to be covered by IA2's IAccessbileText.
      • The GNOME a11y team looked into DOM access in the past. They decided that instead they wanted to provide access to all types of "rich" content via a more general means.
      • Would it be sufficient to instead provide access to the specialized markup via a new IAccessible2::innerMarkup method or via exposure via object attributes, i.e. IAccessbile2::attributes?
  5. AccProbe inspect tool - Mike Squillace
  6. Firefox - Marco Zehe
  7. Deprecation of IAHyperlink::invalid
    • This is not being used by any ATs and is being deprecated via Bug 185.
  8. Review by Will Walker
    • For the history of Will Walker's review see:
    • The current status of Will's review items follows:
      1. Does IA2 need role sets?
        • The consensus is to not change the current practice of using a single role.
      2. Move toolkit name and version IAApplication to IAccessible2.
        • Bug 176 will be addressed in the next release
      3. Roles as strings rather then integers
        • There was consensus that we shouldn't change this.
      4. The format of IAAction::keyBinding should be described.
        • This has been changed via Bug 177. Note that the text for this method changed since the agenda was first submitted.
      5. There is a single L, double L mismatch in the labelledBy relation.
      6. There is no tooltipFor relation.
        • There was consensus that we shouldn't add a tooltip relation.
      7. If an object has IA2_MANAGES_DESCENDANTS how does an AT determine which child is active?
        • The MSAA event mechanism doesn't provide support for the manages descendants scheme. Apps must fire a focus event fired on the active child object.
      8. Commentary for IAccessibleValue::minimumValue says: ...If this object has no upper bound. It should be "lower bound".
      9. IAValue should include methods to fetch the user consumable current, minimum, and maximum values
        • This will be fixed in the next release via Bug 182.
    • Remaining work items:
      • Submit to the Linux Foundation Board of Directors for approval.
      • Move 3/26/2007 1.0.1 IDL to BZR.
      • When 1.0.2 is approved move the IDL to BZR.
  9. Proxy DLL
    • Jamie sent Pete his RC file so it can be compared to the one attached to bug 110.
    • When the 1.0.2 files are added to BZR, Pete to include the files needed to build the proxy DLL.
    • The process for building the DLL needs to be updated to cover the use of Visual C Express Edition.
    • That wiki page probably needs other changes.

No progress on the following

  1. Access to smart tags
    • Symphony uses IAHypertext/IAHyperlink for smart tags. This seems reasonable because smart tags are very similar to links. They represent actionable text. IAHyperlink can represent more than one action which is common for smart tags.
      • One requirement is for links and smart tags to be differentiated. This can be done with an object attribute on the accessible that represents the link object. Are there any issues with that approach?
  2. IA2 issues from Calvin Gaisford, opened on the behalf of AIA.
  3. IA2 object attributes specification.
    • The Symphony and FF3 object attributes will be reviewed. The common attributes will become part of the IA2 object attributes spec and the spec will reference the FF3 and Symphony specific specifications. (The Symphony object attributes are not documented on any Symphony web site, but they'll soon be documented on the IA2 site.)
    • Pete to add a "display" attribute with CSS2 values.
  4. Items raised by NVDA last year need to be put on the agenda for an upcoming Open A11y meeting
    • These are generic issues that need to be solved for both IA2 and ATK/AT-SPI dealing with objects contained in documents and tables
    • See items 4 and 5 in the October 2nd 2007 minutes for the history.
    • This was discussed during the January 22 Open a11y meeting.
    • These should be reopened and discussed with Willie and Li Yuan at a call convenient to the US, China, and Australia.
  5. Eclipse
  6. Wikipedia
  7. Developer Guide - Best practices document. We should start an outline for a best practices document. For starters it should define the following:
    • What events should be fired for each role and in what order.
    • What object hierarchy should be used. There are two today, a flat hierarchy as used in Symphony and a deeper hierarchy as used in Firefox. These two should be documented and in order to cut down on the proliferation of designs, future applications should attempt to use one or the other.
  8. Oleacc.idl
    • No new status on when it will be back in the SDK.
  9. FAQ
  10. Access to document revisions - from the ODF AccSC
    • This was reviewed by the AIA Interop group. The following issues were raised.
      • What is the solution for non-text attributes, e.g. tables, images, charts, cells, spreadsheets?
      • How are comment only revisions handled?
      • Probably need more kinds of format changes besides insertion, deletion, and format change.
      • Use cases are needed.
      • getSegmentAtOffset (singular) needs to be getSegmentsAtOffset (plural) because unlink links there could be overlapping insertions and deletions.
    • Once these issues are resolved Li Yuan, the committer for ATK/AT-SPI will develop a patch.

enum IA2RevisionType {
  IA2_REVTYPE_INSERTION, 
  IA2_REVTYPE_DELETION,
  IA2_REVTYPE_FORMAT_CHANGE  // The revision is due to any change in formatting attributes. 
};

typedef struct {
    enum IA2RevisionType type;  
    BSTR time;  ///< ISO 8601 format:  YYYY-MM-DDThh:mm:ss (eg 1997-07-16T19:20:21)
    BSTR author;
    BSTR comments;
} IA2RevisionInformation;

IARevisionText:
 
// Note: an object that implements IARevisionText must also implement IAText
 
// returns the number of segments available for the
// block of text represented by the IARevisionText object.
// this number is 1 based
get_segmentCount( long* count );
 
// returns a specific segment based on the index passed in
// the index is 0 based.
// no two indexes should return the same segment.
// any index >= 0, and less than the segment count should return a valid segment
// any index outside those bounds should set HRESULT to S_FALSE and return NULL
get_segment( long index,  IARevisionSegment** seg );
 
// returns a segment whose boundaries encompass the offset provided
// if there are no segments that correspond to the given offset, an error is produced
// offsets correspond identically to those used by IAText and IAHyperlink
get_segmentAtOffset( long offset, IARevisionSegment** seg );

IARevisionSegment:
 
// returns the bounding offsets of the segment within the IARevisionText/IAText object.
// the end offset is one past the last character in the revision text
get_bounds( long* start, long* end );

// returns a struct containing date/time, author, and comments
get_attributes( IA2RevisionAttributes *attributes );
 
// returns a set of name value pairs describing additional application
// specific attributes in the format "name:value;name:value"
get_extraAttributes( BSTR* extraAttributes );

[Article] [Discussion] [View source] [History]