Pete Brunet, Mike Squillace, Sueann Nichols, Larry Wiess, Barry Feigenbaum, Cathy Laws, Andres Gonzalez (Adobe), Itoh-san (Takashi Itoh), Aaron Levanthal, Janina Sajka (Open A11y), Andrew Rist (Oracle), Michael Stewart, Sina Bahram (NC State)
The server only needs to store the last old/new text block.
A scope of the full application is adequate; no further granularity is needed.
Even out of process clients can use an in process component to handle the text changed event. The MSAA event.cpp code for the MSAA event logger has sample code.
This is the proposed documentation for these attributes. The only change is the addition of the last sentence:
This data is only guaranteed to be valid while the thread notifying the event continues. Once the handler has returned, the validity of the data depends on how the server manages the life cycle of its objects. Also, note that the server may have different life cycle management strategies for controls depending on whether or not a control manages its children. Lists, trees, and tables can have a large number of children and thus it's possible that the child objects for those controls would only be created as needed. Servers should document their life cycle strategy as this will be of interest to ATs or script engines accessing data out of process or from other threads. Servers only need to save the last inserted or removed block of text and a scope of the entire application is adequate.
IAText::text - Raised by Aaron Leventhal
The AT should be able to get all text by specifying -1 on the endOffset.
Today Notes 8 returns an error. The code will be change to return all in Notes 8.0.1.
endOffset < startOffset should be an error.
Today Notes 8 does not return an error. Windows Eyes doesn't rely on this working.
Pending input from Freedom Scientific to determine if they have a dependency on being able to use endOffset < startOffset.
If endoffset > actual end, should the result be an error or the full string?
Notes 8 returns E_FAIL.
Structuring of tables - Do cells have to be immediate children of the table?
andres: I don't see any particular reason for the limitation of children being direct decendents of a table; should separate interface from data structure; would like row and col objects to be children of table, then cells would be children of rows/cols
larry: if you get active decendent changed event on a row or col object, you need to get to the table to get the cells
andres: If there was a cell interface you could get to the table/row/col
larry: we are saying table needs to be ancestor of cells?
aaron: change children to decendent
andres: why do you number the cells?
larry: ATK is that way
aaron: selection interface, in MSAA; selection is on direct parent
andres: will formulate a description of the problem
andres: non homogenous tables are common
sina: could add method to inquire about the child - no need to direct mapping - get the decendent and then ask if it is a cell or row/col (MSAA has roles for row/col)
andres: that should help
andres: imposing random access to non-linear stucture can be a performance problem
Python wrappers - Michael Stewart
pretty much done with exerciser; it's getting out bugs
Methods which return arrays - what to do with the unneeded max parameter?
The Notes 8 team's preference was to not change the IDL and to ignore the parameter. This was accepted.
Inspect tool - Mike Squillace
Explorer / Inspect all OK
Working on the event monitor using in process. TBD:
Parameterize to select in process / out of process
When an event is fired now only gathering basic info now, but later data will be tailored to event.