Issue 73746 - new Chart: A11y: 3D Shape selection Box entries read wrongly
Summary: new Chart: A11y: 3D Shape selection Box entries read wrongly
Status: CLOSED FIXED
Alias: None
Product: General
Classification: Code
Component: chart (show other issues)
Version: 3.3.0 or older (OOo)
Hardware: All All
: P3 Trivial (vote)
Target Milestone: ---
Assignee: eric.savary
QA Contact: issues@graphics
URL:
Keywords: new_implementation
Depends on:
Blocks: 90510
  Show dependency tree
 
Reported: 2007-01-22 14:45 UTC by kla
Modified: 2013-02-24 21:18 UTC (History)
5 users (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description kla 2007-01-22 14:45:12 UTC
ZT.9
Access Bridge V2
Java 1.5.0_06 with A11y support
Create a Chart
On first Page of the wizard (Chart Type) the Selection of the 3D Share will not
be read,
Comment 1 kla 2007-01-22 14:46:01 UTC
set keyword
Comment 2 bjoern.milcke 2007-01-23 10:48:38 UTC
I do not understand this issue. If the problem is that selected chart objects
are not read, this one is duplicate to Issue 73747.

If the problem here is that controls of the wizard are not read, please clarify
which controls. Do you mean the "3d Look" check-box? If it is a control, then
change the summary.
Comment 3 kla 2007-01-23 11:06:04 UTC
Its not the control to activate. I mean the entries into the Listbox e.g. Box,
Cylinder, Cone...) there not be read.
Comment 4 bjoern.milcke 2007-04-04 16:31:44 UTC
->iha: It seems that the problem does not appear for the shapes only, but also
for other controls on the chart type tab of the wizard or the chart type dialog.
The problem is that changing a control like "3d" or the shape changes the icons.
ZoomText seems to start reading the control but immediately stops and reads the
next change which is the re-selection of the icon in the list of up to 4 icons
with chart sub-types. Maybe it is possible to update the list and re-select the
correct entry without sending change events (UpdateMode(FALSE) or sth. like that).
Comment 5 IngridvdM 2007-04-04 16:55:08 UTC
->bm: You can try to set that in method ChartTypeTabPage::fillAllControls
before m_aSubTypeList.SelectItem
maybe also before 'm_pCurrentMainType->fillSubTypeList' .


Comment 6 bjoern.milcke 2007-04-05 17:00:25 UTC
Accepting the issue, but not sure if this can really be fixed.

The subtype list box makes itself very important. After a new shape has been
selected, the list of subtype icons is replaced by new ones. As temporarily the
box is empty, the selection is also reset. In order to set it back, SelectItem
is called. This leads to reading the sub-type box. (Commenting-out this line
would fix the bug, but that's not possible, because no subtype would be selected
then).

I tried to remember the control that had the focus before, and set the focus
after the sub-type's SelectItem, but that doesn't help.

Only chance I see, is to do the sub-type list box rearrangement and re-selection
before the actual control does its work. Maybe Window::PreNotify can help? (But
how do you notice what kind of change is just happening).

BTW, this problem occurs also at other places in OOo. So, I haven't seen a fix
for this problem in place yet.
Comment 7 bjoern.milcke 2007-04-12 12:55:01 UTC
I think the problem may be the valueset. When a SelectItem() is called, and
there are a11y listeners attached to the control they are always notified (there
is no way to do a selection without the notifications). All other controls
notify their state changes via the internal message loop. Now, it looks to me
that the VCL-control notifications would happen synchronously or at least in
some way preferred over the notifications that are done in the value-set
implementation, where the a11y listeners are called directly.

If this is really a timing problem, the only meaningful fix for this would be to
allow selecting an entry in the value-set without sending a11y notifications.
Comment 8 bjoern.milcke 2007-04-16 11:57:12 UTC
Ok, forget the guesswork in the last comment ;-) It seems now apparent, that the
problem is the following:

ZoomText reads only events that apply to the control that has the focus. So in
principle, everything should work fine, as we don't change the focus. However,
in addition the ACTIVE_DESCENDANT_CHANGED events that are generated for
transient children in list boxes (or value sets) are also read by ZoomText.

For a value set that has at most 4 entries, it does not make much sense to have
transient children. So, if the value set in the ChartType dialog
(chart2/source/controller/dialogs/tp_ChartType.cxx) would get non-transient
children this would be a reasonable improvement and would also fix this issue.
(The alternative would be a changed behaviour of ZoomText)
Comment 9 bjoern.milcke 2007-04-16 12:00:22 UTC
->PB: As you already did some changes for the tree-list-box to enable it having
non-transient children, please apply this also to the ValueSet (svtools).

Note, that the CWS chart03 does not exist physically. Changes for the new chart
are still done in chart2mst3. But note also, that chart2mst3 is currently "ready
for QA", so no committing is allowed at the moment. If you have a fix, please
pass us the files or attach a patch. Thanks.
Comment 10 pb 2007-04-25 12:17:46 UTC
pb -> bm: Now the ValueSet has a new method:
void ValueSet::DisableTransientChildren().
So please take over to change your ValueSet.

Files changed:
/svtools/inc/svtools/valueset.hxx 1.2.30.1
/svtools/source/control/valueacc.cxx 1.21.2.1
/svtools/source/control/valueimp.hxx 1.15.142.1
/svtools/source/control/valueset.cxx 1.29.2.1
Comment 11 bjoern.milcke 2007-05-08 17:23:52 UTC
Solution seems to be available.

1. The method DisableTransientChildren() in the ValueSet (included in CWS
chart2mst3) implementation in principle does the right thing, but too late. It
seems necessary to provide a new CTOR that gets a parameter
bUseTransientAccChildren. This also has the advantage, that it is not possible
to change the behaviour at any time, but only on construction.

2. The role of a value set is LIST. In the access-bridge there seems to be an
automatism that sets the flag "manages descendants" for all LIST objects. That
is wrong in this context and must be changed according to the corresponding state.
Comment 12 bjoern.milcke 2007-05-09 09:36:31 UTC
Setting pb on CC.

->PB: As I wrote before, the time when DisableTransientChildern() is called is
too late. So we have to move the switch to the CTOR. You did a similar change
also in the list-box implementation. Might there be a similar problem? I heard
that that was a fix for Gnome, but maybe it is only by coincidence, that on
Gnome the call comes in time (on Windows/ZoomText it is apparently too late).
Comment 13 bjoern.milcke 2007-06-12 13:37:51 UTC
Changed target to 2.3
Comment 14 bjoern.milcke 2007-06-15 09:09:52 UTC
Fixes in chart2 and svtools done in CWS swa11y01.

->OBR: The fix in the accessbridge does not seem to work. Changing the
accessible role of the value set to PANEL, solves the problem. When it stays on
LIST, the bug still occurs.
Comment 15 bjoern.milcke 2007-06-18 17:15:48 UTC
->PB: Please have a look at the changes I did in svtools for the ValueSet in CWS
swa11y01. What I changed is the following:

1. I removed the new method and replaced it by a parameter in the CTOR of the
ValueSet. Thus, the bool parameter is set in time, and cannot be changed during
the lifetime of the ValueSet.

2. As it turns out that the Java Access Bridge (version 2.0.1) treats all a11y
object of type LIST and TREE as having the state "managesDescendants", no matter
if this state is set or not. So, when the bool flag is true, PANEL is used as
the accessible role.

3. When a different entry is selected, instead of sending an
ACTIVE_DESCENDANT_CHANGED event from the ValueSet itself, a STATE_CHANGED with a
FOCUSED state type is sent from the child.

So far, this looks good: A. the list box is read correctly, i.e. the problem of
this issue is fixed, B. selecting a different entry in the value set triggers an
event.

However, ZoomText once read: "Normal, One of Four" for the first icon (named
Normal). Now it reads "Normal, Disabled". Please check if the value set items
can be enabled, or what might be a problem here. I am not so familiar with this
a11y things for controls.
Comment 16 pb 2007-06-27 12:30:00 UTC
pb: I take over.
Comment 17 pb 2007-07-25 06:41:30 UTC
pb: I changed the summery. Now the entries were read but at the end the reader
says "Disabled". But nothing is disabled.
Comment 18 pb 2007-07-25 09:05:57 UTC
pb: summery changed again. Now if you select an entry of the main type list
(ListBox in the middle) the selected entry of the sub type list (ValueSet on the
right) was read.
Comment 19 Mathias_Bauer 2008-01-14 09:11:59 UTC
target 3.0
Comment 20 pb 2008-07-24 15:52:54 UTC
pb: fixed in cws pba11y02.
Files changed:
/chart2/source/controller/dialogs/tp_ChartType.hxx 1.4.48.1
/chart2/source/controller/dialogs/tp_ChartType.cxx 1.8.48.1
Comment 21 pb 2008-07-24 20:36:03 UTC
pb -> es: the problem was that the screenreader added a "Disabled" or "Grayed"
after the name and type of the ValueSet-Items when you select an item of the
chart sub types. This is fixed.
Comment 22 pb 2008-07-24 20:36:48 UTC
pb -> es: please verify. thx.
Comment 23 eric.savary 2008-07-28 14:12:43 UTC
Verified in CWS pba11y02
Comment 24 thorsten.ziehm 2009-07-20 15:57:04 UTC
This issue is closed automatically and wasn't rechecked in a current version of
OOo. The fixed issue should be integrated in OOo since more than half a year. If
you think this issue isn't fixed in a current version (OOo 3.1), please reopen
it and change the field 'Target Milestone' accordingly.

If you want to download a current version of OOo =>
http://download.openoffice.org/index.html
If you want to know more about the handling of fixed/verified issues =>
http://wiki.services.openoffice.org/wiki/Handle_fixed_verified_issues