Gecko vbuf: Improvements regarding activating objects #4106

Closed
nvaccessAuto opened this Issue May 1, 2014 · 4 comments

2 participants

@nvaccessAuto

Reported by jteh on 2014-05-01 03:25
On Facebook, the Requests, Messages and Notifications buttons contain a span which can have a width and height of 0 if there are no requests, etc. The text of the button is inside this span, but because it's an icon, the text is hidden. Unfortunately, this means that when you press enter on this in NVDA browse mode, NVDA clicks in the wrong place. I'd argue this is questionable authoring--if the text isn't visible, it should be aria-label or just off-screen--but regardless, it's happening in the wild. This is probably happening elsewhere too.

To fix this, there are two improvements we can make to _activateNVDAObject in the Gecko vbuf:
1. Don't try to click nodes with a width and height of 0. While we're at it, we should probably exclude invisible nodes too.
2. As we walk up the ancestors, try doAction before clicking, rather than only trying doAction on the deepest object. We should still stop once we've successfully called doAction or clicked.

@nvaccessAuto

Comment 1 by James Teh <jamie@... on 2014-05-01 04:04
In [481c2b6]:
```CommitTicketReference repository="" revision="481c2b6d1c57664f798ae3052820cd8343828d0c"
In browse mode in Mozilla applications, pressing enter on a button, etc. no longer fails to activate it (or activates the wrong control) in certain cases such as the buttons at the top of Facebook.

_activateNVDAObject in the Gecko vbuf now tries doAction on ancestors before it tries clicking. It tries doAction even if the button is off-screen/invisible. Also, it does not try to click objects with the invisible state or a width/height of 0.
Re #4106.

@nvaccessAuto

Comment 2 by James Teh <jamie@... on 2014-05-01 04:04
In [59d27e1]:
```CommitTicketReference repository="" revision="59d27e1c689df53d54f885cea416acf3064f02a1"
Merge branch 't4106' into next

Incubates #4106.

Changes:
Added labels: incubating
@nvaccessAuto

Comment 3 by James Teh <jamie@... on 2014-05-26 06:14
In [5abca08]:
```CommitTicketReference repository="" revision="5abca082bebf84865b3d23049bd233cc701320dc"
In browse mode in Mozilla applications, pressing enter on a button, etc. no longer fails to activate it (or activates the wrong control) in certain cases such as the buttons at the top of Facebook.

_activateNVDAObject in the Gecko vbuf now tries doAction on ancestors before it tries clicking. It tries doAction even if the button is off-screen/invisible. Also, it does not try to click objects with the invisible state or a width/height of 0.
Fixes #4106.

Changes:
Removed labels: incubating
State: closed
@nvaccessAuto

Comment 4 by jteh on 2014-05-26 06:22
Changes:
Milestone changed from next to 2014.3

@jcsteh jcsteh was assigned by nvaccessAuto Nov 10, 2015
@nvaccessAuto nvaccessAuto added this to the 2014.3 milestone Nov 10, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment