Apache OpenOffice (AOO) Bugzilla – Issue 103961
Inserting rows in a table results in a11y events announcing that the table has been removed
Last modified: 2013-08-07 14:44:07 UTC
Steps to reproduce: 1. Launch OOo Writer and Accerciser 2. In Accerciser, in the tree of accessibles on the left, highlght/select the Accessible named "Document view" which is of role "document frame". 3. In Accerciser's Event Monitor, select the "Selected accessible" radio button as the source. Check "object" for the type of event to monitor (I unchecked bounds-changed, but left the rest of the object events checked.) 4. In Writer, go to the Table menu, choose Insert, accept the defaults, and press the OK button. 5. Press Tab until the last cell in the table is reached. Then press Tab again, which will cause a new row to be inserted. Results: After step 4, the following event is shown by Accerciser: object:children-changed:add(0, 0, [table | Table1-1]) source: [document frame | Document view] application: [application | soffice] This is expected. So far so good. After step 5, the following event is shown by Accerciser: object:children-changed:remove(0, 0, [table | Table1-1]) source: [document frame | Document view] application: [application | soffice] In other words, when the user adds a new row to the current table, Writer is emitting events to ATs announcing that the current table, which is still very much present, no longer exists. This is problematic for screen readers like Orca because they cannot/will not present any information to the user for an object which no longer exists. (i.e. The current table is rendered inaccessible because of this bug.) It would be less problematic (I *think*) if a new object:children-changed:add event were emitted for a replacement table. However, under those circumstances, the AT still has to work out that the current object was replaced with a new object. That can be hard to do. Therefore, given that the original table is (from an AT and an end-user point of view) still present, but a bit larger, what is expected is the following: 1. The aforementioned object:children-changed:removed event would not be emitted. 2. Object:children-changed:add events would be emitted by the table to announce the addition of the new cells. Note that this is reproducible in the latest 3.1.1-dev (build 9415) and 3.2-dev (build 9412) builds available for external download.
Sounds to be something for OOo 3.3...
OD->ES: Can you please confirm this issue and assign it back to me. OD->MT: Do not hurry and do not bypass the quality assurance team.
CONFIRMED. As described I get object:children-changed:*remove*
fix in progress in cws sw33a11y01
fixed in cws sw33a11y01 - changed files: /sw/source/core/inc/cellfrm.hxx, /sw/source/core/layout/tabfrm.cxx, /sw/source/core/access/acctable.cxx, /sw/source/core/layout/wsfrm.cxx, change set 6a3ca94f51cd
OD->ES: Checked in internal installation set of cws sw33a11y01 - please verify. Important note: Corresponding object:children-changed events are now emitted at the accessible object representing the table.
Verified in CWS sw33a11y01
Closing accessibility issues which have been fixed, verified and integrated...