ARIA checkboxTriState widgets do not trigger object:state-changed:checked events during a state change.
Two examples linked from here http://www.disability.uiuc.edu/ita/brasic/citaweb/test/aria/checkboxTriState/checkboxTri1.php
DOMi shows for me state change events are fired when I click on checkbox. Scott, how do you get this?
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.
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?
If we are stuck with a two state at-spi event then yes, checked and partially checked = 1 and unchecked = 0.
true = STATE_CHECKED
mixed = STATE_CHECKED STATE_MIXED (ATK_STATE_INDETERMINATE / STATE_SYSTEM_MIXED)
false = 0
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
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.
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.
Created attachment 280484 [details]
Test case with checkboxes -- last one is tristate checkbox
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 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.
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.
That's because of the image frame change. Please file a separate bug for that.
Will is concerned that state 'mixed' should be 'indeterminate' as defined by the AT-SPI spec.
Yes, we do that, sorry for not saying that.
We map our state MIXED to INDETERMINATE for ATK/AT-SPI.
Fixed, but note that this is no longer done with checkboxtristate, but via checked="mixed" on something checkable or pressed="mixed" on a button.