Closed Bug 1672694 Opened 5 years ago Closed 5 years ago

Gmail: When navigating the inbox with the arrow keys, VoiceOver cannot track the focus

Categories

(Core :: Disability Access APIs, defect, P1)

Firefox 84
Desktop
macOS
defect

Tracking

()

VERIFIED FIXED
84 Branch
Tracking Status
firefox84 --- verified

People

(Reporter: MarcoZ, Assigned: eeejay)

Details

(Whiteboard: [Mac2020_2])

Attachments

(2 files)

Gmail's inbox can be navigated using the arrow keys. Once focus lands in the table, arrowing up and down gives information such as importance, sender, subject, date, and a preview automatically.

Steps:

  1. Load Gmail.
  2. Find the "Skip to content" link and press Enter on it.
  3. Press Tab once more to actually focus the table.
  4. Arrow down.
    • Expected: VoiceOver should speak the newly highlighted message information. It does so in Chrome.
    • Actual: VoiceOver tries to, then gets interrupted, and only reads the date.
  5. Press UpArrow.
    • Expected: VoiceOver reads the info for the top-most message.
    • Actual: VoiceOver says "Conversations".

This is reproducible 100% of the time. It makes it impossible to reliably use Gmail.

When focus changes we send a trailing caret move event which sends a platform AXSelectedTextChanged. VoiceOver in turn sets focus on the body, which sends the VO cursor to the doc.

Looks like both Chrome and Safari don't send AXSelectedTextChanged events when arrowing. At least Safari seems to so so when an element is styled user-select: none. This makes sense. We should have our underutilized SELECTABLE_TEXT state respect that styling.

The SELECTABLE_TEXT state is currently under-utilized and probably wrong, since it simply relies on testing if a hypertext has any text. A more correct reflection of the state should be taken from layout's IsSelectable method.

Note, even if an element is styled user-select: none, the text will still be keyboard selectable if it is editable (eg. input or contenteditable), so we should consider that SELECTABLE_TEXT.

Assignee: nobody → eitan
Status: NEW → ASSIGNED

This causes VoiceOver to mess with AXFocused and as a result redirect the VO cursor.

Depends on D95783

Pushed by eisaacson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/b222e4ff438f P1: Query layout for selectable text state. r=morgan,Jamie https://hg.mozilla.org/integration/autoland/rev/0f340ea56805 P2: Don't fire AXSelectedTextChanged if target is not selectable. r=morgan
Pushed by eisaacson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/26f19aaba8e2 P1: Query layout for selectable text state. r=morgan,Jamie,yzen
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → 84 Branch

Actually, this is not fixed yet, since Part 2 still awaits a linting fix and subsequent landing. Reopening.

Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Target Milestone: 84 Branch → ---
Attachment #9185580 - Attachment description: Bug 1672694 - P2: Don't fire AXSelectedTextChanged if target is not selectable. r?morgan! → Bug 1672694 - P2: Don't fire AXSelectedTextChanged if target is not selectable. r=morgan
Pushed by eisaacson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/500b28bb7142 P2: Don't fire AXSelectedTextChanged if target is not selectable. r=morgan
Status: REOPENED → RESOLVED
Closed: 5 years ago5 years ago
Resolution: --- → FIXED
Target Milestone: --- → 84 Branch
Flags: needinfo?(eitan)
Flags: qe-verify+

Confirmed the issue with 83.0.
Fix verified with 84.0b2, 85.0a1 (2020-11-19) on macOS 10.15.

Status: RESOLVED → VERIFIED
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: