element-hq / element-hq/element-ios

A11y: Context menu for messages is inaccessible to VoiceOver, accessibility actions for message cells are missing.

Open
#6,456 5 comments 0 reactions 0 assignees View on GitHub
A-Message A-Timeline A11y O-Uncommon S-Minor T-Defect VoiceOver
Dominant language
Swift
Stars
1.8k
Forks
544
PR merge metrics
PR metrics pending

Description

### Steps to reproduce

The context menu that is available for message cells, containing options such as reply, react, etc. is inaccessible to VoiceOver currently.
Bringing this up requires a sighted user to perform a long press on the message cell which can't be easily / reliably done with VoiceOver, this can be resolved by exposing the context menu options using UIAccessibilityCustomAction, see https://developer.apple.com/documentation/uikit/uiaccessibilitycustomaction.

Steps to reproduce:
1. Enable VoiceOver.
2. Open a room or 1:1 conversation in Element-iOS that contains messages.
3. Move VoiceOver focus to a message.
4. Swipe down with one finger.

### Outcome

#### What did you expect?
Using VoiceOver, swiping down while a message is in focus should result in the various context menu options being announced, e.g. reply, react, etc.
Performing a double-tap should then perform the selected context menu option.

#### What happened instead?
Context menu options are currently not accessible using VoiceOver, as UIAccessibilityCustomAction has not been implemented for the various menu items.

### Your phone model

iPhone 13 Pro

### Operating system version

iOS 15.6

### Application version

Element V1.8.22

### Homeserver

_No response_

### Will you send logs?

No

Contributor guide

Open the contributing guide

Research direction

Start with the message cell implementation in Element-iOS and read Apple's UIAccessibilityCustomAction documentation linked in the issue. Reproduce the VoiceOver steps on an iPhone, expose the message context-menu options such as reply and react, and verify that swiping selects an action and double-tapping performs it.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, swift
Domain
accessibility, mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.