The default bug view has changed. See this FAQ.

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

RESOLVED FIXED

Status

()

Core
Disability Access APIs
RESOLVED FIXED
10 years ago
10 years ago

People

(Reporter: Scott Haeger, Assigned: Aaron Leventhal)

Tracking

(Blocks: 2 bugs)

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

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments)

(Reporter)

Description

10 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

Comment 1

10 years ago
DOMi shows for me state change events are fired when I click on checkbox. Scott, how do you get this?
(Reporter)

Comment 2

10 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.

Comment 3

10 years ago
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

10 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

10 years ago
Sounds good

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

Comment 6

10 years ago
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

10 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

10 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 9

10 years ago
Created attachment 280484 [details]
Test case with checkboxes -- last one is tristate checkbox
(Assignee)

Comment 10

10 years ago
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
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

10 years ago
Attachment #280485 - Flags: approval1.9?
(Reporter)

Comment 12

10 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

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

Comment 14

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

Comment 15

10 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.

Updated

10 years ago
Attachment #280485 - Flags: approval1.9? → approval1.9+
(Assignee)

Comment 16

10 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: 10 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.