Last Comment Bug 393279 - ARIA checkboxTriState do not trigger object:state-changed:checked events
: ARIA checkboxTriState do not trigger object:state-changed:checked events
Status: RESOLVED FIXED
:
Product: Core
Classification: Components
Component: Disability Access APIs (show other bugs)
: Trunk
: x86 Linux
: -- normal (vote)
: ---
Assigned To: Aaron Leventhal
:
Mentors:
Depends on:
Blocks: aria orca
  Show dependency treegraph
 
Reported: 2007-08-22 13:14 PDT by Scott Haeger
Modified: 2007-09-18 14:35 PDT (History)
2 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
Test case with checkboxes -- last one is tristate checkbox (3.95 KB, application/xhtml+xml)
2007-09-11 11:36 PDT, Aaron Leventhal
no flags Details
See description below (13.36 KB, patch)
2007-09-11 11:39 PDT, Aaron Leventhal
dbolter: review+
dsicore: approval1.9+
Details | Diff | Splinter Review

Description Scott Haeger 2007-08-22 13:14:16 PDT
ARIA checkboxTriState widgets do not trigger object:state-changed:checked events during a state change.

Test case:
Two examples linked from here http://www.disability.uiuc.edu/ita/brasic/citaweb/test/aria/checkboxTriState/checkboxTri1.php
Comment 1 alexander :surkov 2007-08-23 06:39:41 PDT
DOMi shows for me state change events are fired when I click on checkbox. Scott, how do you get this?
Comment 2 Scott Haeger 2007-08-23 07:20:49 PDT
Alexander,

I tested the checkboxTriStates again this morning and I am not getting any object:state-changed:checked events.  I am using Accerciser to test running under Linux using the following version of Firefox:  Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a8pre) Gecko/2007082204 Minefield/3.0a8pre.  Contrast the checkboxTriStates with a normal HTML checkbox which are triggering the event.
Comment 3 alexander :surkov 2007-08-24 00:27:05 PDT
It's strange because on windows I see this event by foxevent tool too.

btw when the state is off and when it is on for tristate checkbox? true and mixed - on, false - off?
Comment 4 Scott Haeger 2007-08-24 05:23:34 PDT
If we are stuck with a two state at-spi event then yes, checked and partially checked = 1 and unchecked = 0.
Comment 5 Aaron Leventhal 2007-08-24 06:46:10 PDT
Sounds good

true = STATE_CHECKED
mixed = STATE_CHECKED STATE_MIXED (ATK_STATE_INDETERMINATE / STATE_SYSTEM_MIXED)
false = 0

Comment 6 alexander :surkov 2007-08-24 07:02:58 PDT
so here we have two bugs
1) on linux we state changed event is not fired for checked state
2) we should fire state changed event for state mixed

correct?
Comment 7 Aaron Leventhal 2007-09-01 11:13:21 PDT
Hold off on this bug, because the PFWG is considering removing checkboxtristate. Instead, role="checkbox" would be able to support checked="mixed".

In addition, we'll also need to support this for pressed="mixed" now, on anything that supports pressed (I don't think we support pressed="mixed" at all yet.) 

We may well just support all these new things in this bug.
Comment 8 Aaron Leventhal 2007-09-04 11:26:34 PDT
PFWG decided to remove checkboxtristate.

checkbox needs to support checked="mixed"

and we need to support pressed="mixed" on roles that support pressed.

So we need to fix events for all of these.
Comment 9 Aaron Leventhal 2007-09-11 11:36:21 PDT
Created attachment 280484 [details]
Test case with checkboxes -- last one is tristate checkbox
Comment 10 Aaron Leventhal 2007-09-11 11:39:55 PDT
Created attachment 280485 [details] [diff] [review]
See description below

1) Fix ARIA role/state table to remove checkboxtristate role and support checked|pressed="mixed",
2) Track state of last focused item,
3) If mixed state is different after change to pressed|checked, then fire additional state change for mixed state
Comment 11 David Bolter [:davidb] 2007-09-11 12:04:13 PDT
Comment on attachment 280485 [details] [diff] [review]
See description below

Nice to see checkbox simplified (IMO). I notice a checked|pushed event can directly precede the mixed event. Seems to make sense. Looks good.
Comment 12 Scott Haeger 2007-09-11 12:27:06 PDT
On an unpatched version of Firefox I am seeing the accessible getting destroyed and a new accessible created for every state change.  Can this be fixed?  This causes major problems in Orca.
Comment 13 Aaron Leventhal 2007-09-11 12:35:45 PDT
That's because of the image frame change. Please file a separate bug for that.
Comment 14 Scott Haeger 2007-09-11 13:40:46 PDT
Will is concerned that state 'mixed' should be 'indeterminate' as defined by the AT-SPI spec.
Comment 15 Aaron Leventhal 2007-09-11 14:03:24 PDT
Yes, we do that, sorry for not saying that.

http://lxr.mozilla.org/seamonkey/source/accessible/src/atk/nsStateMap.h#102

We map our state MIXED to INDETERMINATE for ATK/AT-SPI.
Comment 16 Aaron Leventhal 2007-09-18 14:35:48 PDT
Fixed, but note that this is no longer done with checkboxtristate, but via checked="mixed" on something checkable or pressed="mixed" on a button.

Note You need to log in before you can comment on or make changes to this bug.