Ticket #23 (closed defect: fixed)
'not selected' should only be spoken for lists that do actually have a 'selectable' state
| Reported by: | mdcurran | Owned by: | jteh |
|---|---|---|---|
| Priority: | major | Milestone: | 0.6 |
| Component: | Core | Version: | trunk |
| Keywords: | Cc: | ||
| Blocking: | Blocked By: |
Description
Most MSAA lists in Windows change the selection when the focus changes, unless of course you hold down control. NVA for ease of use says 'not selected' for list items that are not selected, but does not say selected for list items that are. However, list items inside combo boxes in Mozilla Gecko's MSAA implementation do not class a list item as being selected when it has focus -- reason given that because you can't select multiple items then selection shouldn't be thought about at all. In theory I disagree as on the screen there is a highlight bar -- selection, even if there is only one. But, menu items in Windows do not have a selected state yet they have a highlight bar.
To at least stop 'not selected' speaking in Gecko combo boxes, we will have to check to see if IAccessible objects have their state_selectable state set. If so, then we can announce not selected, but if they don't, then selection probably doesn't mean anything.
However, currently the code to figure out if 'not selected' should be spoken is in speech.py, using the speakNegativeStatesOnFocus dictionary. It is chosen purely by the role, not by role and states.
We need to come up with some way to be able to select negative states to say, based on both a role, and states.
But, I don't think we could use a dictionary for this, it would probably have to be some manual rules in code that would look at both the role and check for particular states.

NVDA is supported by