Here's an updated proposal for IAccessibleTable2: 1) Remove childIndex
2) Rename nSelectedChildren to nSelectedCells 3) Rename/redefinition of selectedChildren to use a reference to an accessible instead of a cell index and to remove the unused max [in] parameter. See notes c, d, and e below. HRESULT selectedCells ( [out, size_is( , *nSelectedCells , )] IUnknown ***pppAccessible, [out, retval] long *nSelectedCells ) 4) Redefinition of columnIndex to use a reference to an accessible instead of a cell index: HRESULT columnIndex ( [in] IUnknown *pAccessible, [out, retval] long *columnIndex ) 5) Redefinition of rowIndex to use a reference to an accessible instead of a cell index: HRESULT rowIndex ( [in] IUnknown *pAccessible, [out, retval] long *rowIndex ) 6) Redefinition of rowColumnExtentsAtIndex to use a reference to an accessible instead of a cell index. HRESULT rowColumnExtentsAtIndex ( [in] IUnknown *pAccessible, [out] long *row, [out] long *column, [out] long *rowExtents, [out] long *columnExtents, [out, retval] boolean *isSelected ) 7) Redefinition of columnExtentAt to use a reference to an accessible instead of row and column. Also see note b below. HRESULT columnExtentAt ( [in] IUnknown *pAccessible, [out, retval] long *nColumnsSpanned ) 8) Redefinition of rowExtentAt to use a reference to an accessible instead of row and column. Also see note b below. HRESULT rowExtentAt ( [in] IUnknown *pAccessible, [out, retval] long *nRowsSpanned ) 9) Redefinition of isSelected to use a reference to an accessible instead of row and column. Also see note b below. HRESULT isSelected ( [in] IUnknown *pAccessible, [out, retval] boolean *isSelected) 10) Add new means of getting row headers. Also see notes b, d, and e below. HRESULT rowHeaderCells( [in] IUnknown *pAccessible, [out, size_is( , *nRowHeaderCells , )] IUnknown ***pppAccessible, [out, retval] long * nRowHeaderCells ) 11) Add new means of getting column headers. Also see notes b, d, and e below. HRESULT columnHeaderCells( [in] IUnknown *pAccessible, [out, size_is( , *nColumnHeaderCells , )] IUnknown ***pppAccessible, [out, retval] long * nColumnHeaderCells ) 12) Fix the array definition of selectedColumns to remove the unused max [in] parameter. See notes c and e below. HRESULT selectedColumns ( [out, size_is( , *nColumns)] long **ppColumnIndex, [out, retval] long *nColumns ) 13) Fix the array definition of selectedRows to remove the unused max [in] parameter. See notes c and e below. HRESULT selectedRows ( [out, size_is( , *nRows)] long **ppRowIndex, [out, retval] long *nRows ) 14) Add the following note regarding the behavior of selectRow, unselectRow, selectColumn, and unselectColumn. Also see note g. a) For selectRow: When selecting a row and one of the cells in the row spans multiple rows, all the rows that are spanned by the spanning cell will be included in the selection. All other rows will be unselected. b) A similar note will be added to unselectRow, selectColumn, and unselectColumn. Notes: a) accessibleAt was not renamed. b) accessibleAt can be used to provide an accessible if the AT's GUI only provides row and column indexes. c) Removed the unused max [in] parameter from selectedCells, selectedColumns, and selectedRows. I'll have to update the comment at: http://accessibility.freestandards.org/a11yspecs/ia2/docs/html/_generalinfo.html#_arrayConsideration d) The prior notation was **long and is now IUnknown ***pppAccessible, i.e. the pointer to an array of longs has been replaced by a pointer to an array of *IUnknowns. e) This size_is notation specifies a pointer to an array of pointers. The second pointer in the series of pointers can be incremented a finite number of times, as specified by the second value in the list, to access the pointers held in the array. For more information see the fifth and seventh examples at: http://msdn.microsoft.com/en-us/library/aa367164%28VS.85%29.aspx or this Microsoft System Journal article by Don Box: http://www.microsoft.com/msj/1196/activex1196.aspx f) Pending discussion of whether the old rowHeader and columnHeader should be removed. These are the methods that return a table instead of an array of cells. g) Pending the following discussion: This behavior is modeled on that of Excel. The behavior needs to be specified for the case, such as Firefox, where there is no GUI. In the case where there is GUI behavior and the GUI behavior is different than Excel (and the IA2 spec), e.g. MS Word, OOo, and Symphony, should the behavior be allow to divert from the specification to match that of the GUI? -- *Pete Brunet* a11ysoft - Accessibility Architecture and Development (512) 238-6967 pete @ a11ysoft.com http://www.a11ysoft.com/about/ http://www.linkedin.com/in/petebrunet Ionosphere: WS4G
_______________________________________________ Accessibility-ia2 mailing list [email protected] https://lists.linux-foundation.org/mailman/listinfo/accessibility-ia2
