ARIA checkboxTriState do not trigger object:state-changed:checked events

RESOLVED FIXED

Status

()

defect
RESOLVED FIXED
12 years ago
12 years ago

People

(Reporter: scott, Assigned: aaronlev)

Tracking

(Blocks 2 bugs)

Trunk
x86
Linux
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments)

Reporter

Description

12 years ago
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
DOMi shows for me state change events are fired when I click on checkbox. Scott, how do you get this?
Reporter

Comment 2

12 years ago
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.
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?
Reporter

Comment 4

12 years ago
If we are stuck with a two state at-spi event then yes, checked and partially checked = 1 and unchecked = 0.
Assignee

Comment 5

12 years ago
Sounds good

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

correct?
Assignee

Comment 7

12 years ago
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.
Assignee

Comment 8

12 years ago
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.
Assignee

Comment 10

12 years ago
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
Attachment #280485 - Flags: review?(david.bolter)
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.
Attachment #280485 - Flags: review?(david.bolter) → review+
Assignee

Updated

12 years ago
Attachment #280485 - Flags: approval1.9?
Reporter

Comment 12

12 years ago
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.
Assignee

Comment 13

12 years ago
That's because of the image frame change. Please file a separate bug for that.
Reporter

Comment 14

12 years ago
Will is concerned that state 'mixed' should be 'indeterminate' as defined by the AT-SPI spec.
Assignee

Comment 15

12 years ago
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.
Attachment #280485 - Flags: approval1.9? → approval1.9+
Assignee

Comment 16

12 years ago
Fixed, but note that this is no longer done with checkboxtristate, but via checked="mixed" on something checkable or pressed="mixed" on a button.
Status: NEW → RESOLVED
Last Resolved: 12 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.