DescriptionAvoid getting stuck when calling focus() on iframe nodes.
Given a focusable node |iframe| with role iframe and a focusable child |webarea| with role webArea,
iframe.focus()
results in a focus event being fired on |webarea|.
When navigating backwards, since ChromeVox visits every node in depth-first ordering (reversed in this case), the following occurs
- ChromeVox range is on |webarea|
- ChromeVox walks and matches on |iframe|
- Chromevox calls iframe.focus().
- focus event fires on |webarea|
result:
ChromeVox range goes to |webarea| again and gets read aloud/brailled.
expected:
ChromeVox range should be on the |iframe|.
We can achieve this by not calling focus on the iframe node itself.
Additionally, consider nodes that already have the focused state set as being really focused (i.e. do not call focus() again).
Committed: https://crrev.com/ac9cb99e59ade93c139464a338900ab0b204fdf0
Cr-Commit-Position: refs/heads/master@{#371309}
Patch Set 1 #
Total comments: 2
Patch Set 2 : Add test. #
Messages
Total messages: 12 (6 generated)
|