element-hq / element-hq/element-web
Navigating room list using keyboard requires up-down-up-down pattern
- Dominant language
- TypeScript
- Stars
- 13.5k
- Forks
- 2.8k
- PR merge metrics
- PR metrics pending
Description
### Steps to reproduce
1. Start in a room, with the room list sorted by "Unread first"
2. Select the top room in a section
3. Navigate to the next room by pressing Alt and the downward arrow button
4. Note that the room you were in, which is now read, disappears. This is correct, because it is no longer unread.
5. Note that the selected room is the second in the list, and an unread room has jumped above the selected room.
This video shows me using keyboard shortcuts to navigate the room list (apologies for the blurring to hide room names).
I have to press down, up, down, up in order to work my way down the room list.
https://github.com/user-attachments/assets/7932ec2e-2715-4491-8269-281338e2647c
### Outcome
#### What did you expect?
I expected the selected room to jump to the top of the list, so when I press Alt+downarrow again, I see the next unread room.
#### What happened instead?
Instead, the selected room stays where it is, and I have to press Alt-uparrow to go to the next unread room.
This means to work my way down the list I have to press down, up, down, up. This feels unnatural.
### Operating system
_No response_
### Browser information
_No response_
### URL for webapp
_No response_
### Application version
Element version: 78273c569b26-js-171029678727 Crypto version: Rust SDK 0.18.0 (6fe03c1), Vodozemac 0.10.0
### Homeserver
_No response_
### Will you send logs?
No
Contributor guide
Research direction
Start by tracing the room-list keyboard navigation for Alt+down and Alt+up while the list is sorted by "Unread first." Reproduce the room disappearing after it becomes read, then verify that the selected room moves to the top and that repeated downward navigation reaches the next unread room.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- accessibility, frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100