The Linux Foundation


From The Linux Foundation

Agenda for 2008/04/29

  1. Introductions if needed
  2. Prior minutes
    • Corrections? Approval?
  3. LF: Open A11y news - Janina
    • Any further contact with AIA?
    • Any further contact with Andy Updegrove or Karen Copenhaver?
  4. AccProbe inspect tool - Mike Squillace
  5. Firefox - The following is from Marco Zehe:
    • This page gives a good overview of where we are at with IA2 implementation:

      Basically, we are not implementing anything for any localized names for actions etc., but let ATs handle localization of this stuff if needed. Also, text attributes such as bold, text color, or the fact that something is missspelled, are not implemented on the Gecko side. We planned to do that for Firefox 3, but it turned out to be a very big task, so we decided to push that to Gecko 2.0.

    • In addition, Aaron told me that ARIA TreeGrids need more work. This has to do with the fact that in Windows, there are no such things as TreeGrids (unlike the Gnome tree table control). We either have ListViews, which are multi-column representations, but not hierarchical, or trees in hierarchical fashion, which are single-column.
    • From Pete:

      I'd like to see better support of the list grids, i.e. multicolumn lists. I think there are some in your chrome. I'd like a keyboard UI to be able to sort by columns and to arrow from cell to cell (left right, up down). There should be a way to go up down and read the entire row or to only read the cell. I looked at several implementations a while back and they are all different and the situation could be improved. Aaron, Larry Weiss, and I talked a lot about this kind of widget in the past and I believe we came to the conclusion that the best implementation is to have a role of list and to support the table interface.

    • From Marco:

      We actually have that case where a list with multi-column list items implements the table interfaces. An example can be seen in the Thunderbird/Composition window/View/Security Info... dialog. Needless to say, it confuses the heck out of JAWS and other commercial screen readers right now. And no, we don't have key navigation from left to right implemented in that widget yet, although I agree with proper screen reader support this would be darn cool for all kinds of lists like the messages list in Thunderbird, and also some places in Firefox.

  6. IA2 1.0 readiness for review.
    • By this time next week hopefully the IA2 1.0.2 IDL with updated commentary should be published and ready for review to determine its readiness as a Linux Foundation standard. In addition to that there are two more documents that will be provided.
      • There is a little work left on the text attributes spec.
      • The object attributes spec needs to be written, collecting up all the known object attributes in Firefox 3 and Symphony.
  7. IA2 version 2 text attributes specification
    • writing-mode - Two screen magnifier vendors indicated that all three proposed direction attributes would be useful, i.e. left-to-right, right-to-left, and top-to-bottom (text flows from top to bottom, then left to right). These three are currently defined by section 7.29.7 of the XSL 1.1 spec which uses an attribute named writing-mode and has values of rl, lr, and tb. There are several other writing-mode values but the IA2 spec would mention that implementers of apps and ATs would only be expected to implement those three (rl, lr, and tb). Is this an acceptable spec to reference and an acceptable subset of values?
  8. Interop with UIA
    • This is the current status of the seven IA2 issues Calvin Gaisford opened on the behalf of AIA:
      • Issue 112: Commentary was added to the IDL.
      • Issue 113: This will probably remain as is.
      • Issue 114:
        • This is pending AIA organizational/openness issues raised by IBM/Sun last December at the AIA kickoff meeting. It is believed that the AIA is working through those issues so AIA and LF can have goals and a legal environment which are in sync with each other. After that completes then there hopefully will be an open door from a license/legal perspective for LF to use the UIA Express like methods in the IA2 spec to map back and forth between IA2 and IA/ChildID. After all that it would likely be a version 2 issue. That could move quickly or even be part of the version 1 package that will be out for review as a LF standard very soon if the IA2 workgroup decided to put those two methods in a new Interface rather than tacking them on to the IAccessible2 interface.
        • At the last IA2 meeting Andres said he doesn't see a need for supporting childIDs. He's been discussing this with Microsoft but isn't yet convinced that this support needs to be added to IA2. He will document his thoughts in the bugzilla record.
      • Issue 115: Input is needed from Microsoft. This would probably be a version 2 issue.
      • Issue 116: Commentary was added to the IDL.
      • Issue 117: Input is needed from Microsoft. This would probably either be a version 2 issue or remain as is.
      • Issue 118: Commentary was added to the IDL.
    • Inter-organizational cooperation - How would Open A11y collaborate with AIA (Accessibility Interoperability Alliance)?
      • UIA and UIA Express are now being developed within the AIA.
      • IA2 and ATK/AT-SPI are being developed within the Linux Foundation Open Accessibility workgroup.
  9. Proposal for access to misspellings, grammar errors, and "smart tags"
    • Oliver-Rainer Wittmann from Sun sent email describing an interface proposal for access to misspelling, grammar errors and "smart tags".
    • Pete is checking with Xing Li. This may have already been solved with IAHyperlink and IAAction.
  10. Tables where cells are not children of tables.

    The Firefox 3 group has encountered cases where cells can't be children of the table. Andres Gonzalez from Adobe brought up a similar issue last summer.

    See item 3 here:

    and item 3 here:

    There was a discussion during the week and the consensus is to not use the prior decision of using the uniqueID, but to use a "table-cell-index" object attribute on the table's cell objects. A pending issue is whether or not there is time to change the existing FF3 implementation from using "cell-index" to "table-cell-index".

    This is the documentation in the v1.0.2 working copy of IATable:

    Typcially all accessible objects that represent cells or cell-clusters of a table will be at the same time children of the table. In this case IAccessible2::indexInParent will return the child index which then can be used when calling IAccessibleTable::rowIndex and IAccessibleTable::columnIndex.

    However, in some cases that kind f implementation will not be possible. When the table cells are not direct children of a table, the object representing the cell can define a "table-cell-index" object attribute identifying the 0 based table cell index. This object attribute is obtained by parsing the attribute string returned by IAccessible2::attributes. The "table-cell-index" attribute can be used just like a child index of the typical case. ATs should first test for the presence of the "table-cell-index" attribute and if it is not present then IAccessible2::indexInParent can be used as in the typical case where cells are direct children of the table.

  11. IA2 proxy DLL and the USB key fob problem
    • Jamie requested that we start discussing NVDA's findings as documented in issue 125 so that cross process implementations like NVDA can run on a key fob. An agreement between IA2 clients and servers is needed.
  12. Mapping HTML tags to a11y roles
    • Andres asked if a mapping document exists between HTML tags and a11y roles (or if one could be developed). For example Firefox 3 does the following mappings:
      • unordered lists: role LIST with state READONLY
      • list items: role LISTITEM
    • Aaron provided this link, but it doesn't document that state READONLY indicates an unordered list. Pending another response from Aaron.
  13. Access to document revisions - from the ODF AccSC
    • Made two changes after discussion with the OpenOffice developers:
      • Added IA2_REVTYPE_FORMAT_CHANGE. It's defined in the ODF spec.
      • Renamed IA2RevisionAttributes to IA2RevisionInformation

enum IA2RevisionType {
  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;

// 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 );

// 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 );

No progress on the following

  1. Eclipse
  2. Move latest frozen 3/26/2007 1.0.1 IDL to BZR
  3. Documentation of memory management issues for [out] parameters - the following need to be understood and documented.
    • How are VARIANTs handled? Like interfaces? These methods return VARIANTs: IAHyperlink::anchor/anchorTarget, IAValue::current/maximum/minimumValue
    • Are arrays of IUnknowns, e.g. IARelation::targets, correctly specified as **IUnknown?
  4. Wikipedia
  5. 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.
  6. Oleacc.idl
    • No new status on when it will be back in the SDK.
  7. FAQ

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