The Linux Foundation

 
Accessibility/IAccessible2/Agenda/20080219

From The Linux Foundation

Revision as of 04:09, 19 February 2008 by Ptbrunet (Talk | contribs)

(diff) ←Older revision | view current revision (diff) | Newer revision→ (diff)

Agenda for 2008/02/19

  1. Introductions if needed
  2. Prior minutes
    • Corrections? Approval?
  3. LF: Open A11y news - Janina
  4. CSUN 2008
    • Is a F2F needed? If so, what day/time?
  5. Inspect tool - Mike Squillace
  6. Firefox - Aaron Leventhal
  7. Calvin Gaisford from Novell opened several bugs into the LF bugzilla. Please review them and add comments.
  8. Based on discussions with Mick Curran I added the following issues to bugzilla for consideration when IA2 is enhanced. Please review and add comments.
  9. IA2 version 2 text attributes specification
    • There was some discussion with Aaron last November about converging this spec and the FF3 implementation. No progress; I will try to document the current status for the next meeting.
  10. IA2 object attributes
    • In December I gathered up all the usages of IA2::atributes. No progress; I will try to document the current status for the next meeting.
  11. IA2 IDL documentation
    • I've been working through a backlog of about 80 issues and have finished about 30 of them. One of them that I'd like the IA2 community to review defines exception conditions on a method by method basis and is documented in bug 418025 in the FF3 bugzilla.
  12. Problems with methods that return arrays of interfaces
    • There are two interfaces which return arrays of interfaces.
      • IAccessible2::relations ([in] long maxRelations,[out, size_is(maxRelations), length_is(*nRelations)] IAccessibleRelation **relation,[out, retval] long *nRelations)
      • IARelation ::targets ([in] long maxTargets,[out, size_is(maxTargets), length_is(*nTargets)] IUnknown **target,[out, retval] long *nTargets)
    • Alexander Surkov informed me that the relations should have been coded with *** instead of **, i.e.
      • IAccessible2::relations ([in] long maxRelations,[out, size_is(maxRelations), length_is(*nRelations)] IAccessibleRelation ***relation,[out, retval] long *nRelations)
      • IARelation::targets ([in] long maxTargets,[out, size_is(maxTargets), length_is(*nTargets)] IUnknown ***target,[out, retval] long *nTargets)
    • There are two solutions
    1. Specify that the caller has to allocate the array (and that the [in] max parameter would be used.
    2. Change the IDL from ** to ***
    • Option 1 is not consistent with the other six methods that return arrays, i.e. in those six cases the client allocates the array.
    • Option 2 might not be possible if the change would cause Lotus Symphony to no longer be accessible.
    • I'd like your input on this issue.
  13. Access to document revisions - from the ODF AccSC
    • I have been discussing this with OpenOffice engineers (Malte Timmerman, Oliver Braun, Oliver-Rainer Wittmann), Willie Walker (the engineer for Orca, the Linux screen reader), Rob Gallo (the JAWS engineer). Please let me know if you are interested in joining in this discussion.
    • The design is based on IAHyperlink and IAHypertext. Similar interfaces would be used for misspelling and grammar errors and those will be addressed after consensus is reached on the revision interface.
    • This is the current state of the specification:
typedef struct {
    BSTR time;  ///< ISO 8601 format:  YYYY-MM-DDThh:mm:ss (eg 1997-07-16T19:20:21)
    BSTR author;
    BSTR comments;
} IA2RevisionAttributes;

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

No progress on the following

  1. Eclipse
  2. Move latest frozen 3/16/2007 1.0 IDL to BZR
  3. Documentation of memory management issues for [out] parameters - the following need to be understood and documented.
    • Here is a rough first draft:
      • BSTRs need to be SysFreeString'd at end of life; ditto for when they are in structs or arrays.
      • COM interfaces need to be AddRef'd when used and Release'd at end of life.
      • Single longs, HWNDs, booleans, and structs are allocated by the caller and passed by reference. The marshaller does all the memory management. (I don't believe there are any structs with BSTRs or interface pointers.)
      • Arrays of longs - the server allocates the top level array and anything it points to; nothing needs to be free'd by the client. The marshalling code handles freeing anything on the client side.
      • TBD: How are VARIANTs handled? Like interfaces? These methods return VARIANTs: IAHyperlink::anchor/anchorTarget, IAValue::current/maximum/minimumValue
      • TBD: Are arrays of IUnknowns, e.g. IARelation::targets, correctly specified as **IUnknown?
      • This Don Box article can be used for understanding: http://www.microsoft.com/msj/1196/activex1196.aspx
  4. Wikipedia
  5. Developer Guide
  6. Oleacc.idl
    • No new status on when it will be back in the SDK.
  7. BZR patch submission process
  8. Enter defects into Bugzilla

Other Topics

  1. What else needs to be discussed?
  2. What IA2 information do you need?
  3. What IA2 issues need resolution soon? Target date?
  4. What would you like to see done?
    • FAQ
    • Others?

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