RocketChat / RocketChat/Rocket.Chat
Scroll behavior is problematic for screen readers
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 46.1k
- Forks
- 13.9k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 130
Description
Rocket.Chat Version: All
Running Instances: 1
DB Replicaset OpLog: N/A
Node Version: N/A
The way that scrolling works is problematic for screen reader users. As a screen reader user myself, I discovered this recently when participating in a non-test chat for the first time.
I'll start in the message entry area. When messages arrive, I move my cursor back into the incoming messages area, or tab to a control, to review any messages I may have missed while typing. You may be able to simulate this by using caret navigation in Firefox by pressing F7, then by using your arrows.
When I enter the text area, messages stop scrolling. IOW, when a new message arrives, there is no way for me to reach it via the keyboard unless I click the button to scroll to new messages. So the workflow becomes "miss a message, arrow up to review, miss more new messages, find the button to display new messages, click, navigate back to text area so the scroll behavior doesn't kick in, review new messages, kick off the whole process again, get stuck in an analysis loop unable to read anything new." :/ I don't experience this problem in other chat interfaces, so I don't know what you're doing here that is unique.
Perhaps landing back in the message entry area can automatically scroll me to new messages? Or maybe, instead of removing messages from later in the display, you can instead prepend messages only?
Unfortunately, I'm not sure how to use Rocket.chat with a screen reader given this limitation. I hope it can be addressed somehow and soon. Happy to do any testing, though the problem only surfaces in rooms with lots of activity, so unless there's some mode for flooding my local server with test bots, I don't know what to recommend.
Thanks.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files, tests, or entry points. Reproduce it in an active chat using a screen reader or Firefox caret navigation, starting from the message entry area and reviewing incoming messages; done should mean new messages remain keyboard-accessible without repeatedly finding the scroll button.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- accessibility, frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100