Skip to content

Conversation

langleyd
Copy link
Member

@langleyd langleyd commented May 2, 2025

Fixes #30020
Fixes #29249
Fixes #30267

What's in this PR?

  • It implements the member list with virtuoso for smooth scrolling without scroll-jumps
  • Improves a11y including better keyboard navigation (up, down, home, end, pageUp, pageDown).

What does it look like?

Screen.Recording.2025-05-02.at.10.20.05.mov

Checklist

  • Tests written for new code (and old code if feasible).
  • New or updated public/exported symbols have accurate TSDoc documentation.
  • Linter and other CI checks pass.
  • I have licensed the changes to Element by completing the Contributor License Agreement (CLA)

It's more performant and feels less glitchy than the button tooltip moving around when you scroll.
langleyd added 3 commits May 8, 2025 15:57
As we have for other icon based buttons in the right panel/app
- As well as stylng cells, set the tabIndex(roving)
- Natively focus the div with .focus() so screen reader actually moves over the cells
- improve labels and roles
@t3chguy
Copy link
Member

t3chguy commented Jul 29, 2025

I'm seeing a weird issue where after I tab into a member list tile I am unable to Shift-Tab back out of the list, otherwise this is feeling better and less chatty. It does read out "group" on every line which is kind of confusing as there isn't any named group present

… focused.

Fixes the issue of not being able to shift+t
@langleyd
Copy link
Member Author

@t3chguy fixed the shift-tab issue and removed the additional "group" being read in the SR.

Copy link
Member

@t3chguy t3chguy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works well!

@langleyd langleyd added this pull request to the merge queue Jul 31, 2025
Merged via the queue into develop with commit cc0ece9 Jul 31, 2025
35 checks passed
@langleyd langleyd deleted the langleyd/memberlist_to_virtuoso branch July 31, 2025 16:07
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Aug 15, 2025
https://build.opensuse.org/request/show/1298906
by user dheidler + dimstar_suse
- Version 1.11.109
  This release supports the upcoming v12 ("hydra") Matrix room version and is necessary to view and participate in these rooms.

  ## ✨ Features

  * element-hq/element-web#30529). Contributed by @RiotRobot.
  * element-hq/element-web#30526). Contributed by @RiotRobot.
  * New room list: change icon and label of menu item for to start a DM (element-hq/element-web#30470). Contributed by @florianduros.
  * Implement the member list with virtuoso (element-hq/element-web#29869). Contributed by @langleyd.
  * Add labs option for history sharing on invite (element-hq/element-web#30313). Contributed by @richvdh.
  * Bump wysiwyg to 2.39.0 adding support for
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Aug 15, 2025
https://build.opensuse.org/request/show/1298926
by user dheidler + dimstar_suse
- Add fix-oxc-resolver.patch to avoid network interaction during build

- Version 1.11.109
  This release supports the upcoming v12 ("hydra") Matrix room version and is necessary to view and participate in these rooms.

  ## ✨ Features

  * element-hq/element-web#30529). Contributed by @RiotRobot.
  * element-hq/element-web#30526). Contributed by @RiotRobot.
  * New room list: change icon and label of menu item for to start a DM (element-hq/element-web#30470). Contributed by @florianduros.
  * Implement the member list with virtuoso (element-hq/element-web#29869). Contributed by @langleyd.
  * Add labs option for history sharing on invite (element-hq/element-web#30313)
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Sep 6, 2025
Changes in [1.11.110](https://github.com/element-hq/element-web/releases/tag/v1.11.110) (2025-08-27)
====================================================================================================

* Hide recovery key when re-entering it while creating or changing it ([#30499](element-hq/element-web#30499)). Contributed by @andybalaam.
* Add `?no_universal_links=true` to OIDC url so EX doesn't try to handle it ([#29439](element-hq/element-web#29439)). Contributed by @t3chguy.
* Show a blue lock for unencrypted rooms and hide the grey shield for encrypted rooms ([#30440](element-hq/element-web#30440)). Contributed by @langleyd.
* Add support for Module API 1.4 ([#30185](element-hq/element-web#30185)). Contributed by @t3chguy.
* MVVM - Introduce some helpers for snapshot management ([#30398](element-hq/element-web#30398)). Contributed by @MidhunSureshR.

* A11y: move focus to right panel when opened ([#30553](element-hq/element-web#30553)). Contributed by @florianduros.
* Fix e2e warning icon should be white ([#30539](element-hq/element-web#30539)). Contributed by @florianduros.
* Remove NoOneHere disabled reason. ([#30524](element-hq/element-web#30524)). Contributed by @toger5.
* Fix downloading files with authenticated media API ([#30520](element-hq/element-web#30520)). Contributed by @t3chguy.
* Fix call permissions check confusion around element call ([#30521](element-hq/element-web#30521)). Contributed by @t3chguy.
* Fix line wrap around emoji verification ([#30523](element-hq/element-web#30523)). Contributed by @t3chguy.
* Don't highlight redacted events ([#30519](element-hq/element-web#30519)). Contributed by @t3chguy.
* Fix matrix.to links not being handled in the app ([#30522](element-hq/element-web#30522)). Contributed by @t3chguy.
* Fix issue of new room list taking up the full width ([#30459](element-hq/element-web#30459)). Contributed by @langleyd.
* Fix widget persistence in React development mode ([#30509](element-hq/element-web#30509)). Contributed by @robintown.
* Fix widget initialization in React development mode ([#30463](element-hq/element-web#30463)). Contributed by @robintown.

Changes in [1.11.109](https://github.com/element-hq/element-web/releases/tag/v1.11.109) (2025-08-11)
====================================================================================================
This release supports the upcoming v12 ("hydra") Matrix room version and is necessary to view and participate in these rooms.

* [Backport staging] Allow /upgraderoom command without developer mode enabled ([#30529](element-hq/element-web#30529)). Contributed by @RiotRobot.
* [Backport staging] Support for creator/owner power level ([#30526](element-hq/element-web#30526)). Contributed by @RiotRobot.
* New room list: change icon and label of menu item for to start a DM ([#30470](element-hq/element-web#30470)). Contributed by @florianduros.
* Implement the member list with virtuoso ([#29869](element-hq/element-web#29869)). Contributed by @langleyd.
* Add labs option for history sharing on invite ([#30313](element-hq/element-web#30313)). Contributed by @richvdh.
* Bump wysiwyg to 2.39.0 adding support for pasting rich text content in the Rich Text Edtior ([#30421](element-hq/element-web#30421)). Contributed by @langleyd.
* Support `EventShieldReason.MISMATCHED_SENDER` ([#30403](element-hq/element-web#30403)). Contributed by @richvdh.
* Change unencrypted and public pills to blue ([#30399](element-hq/element-web#30399)). Contributed by @florianduros.
* Change color of public room icon ([#30390](element-hq/element-web#30390)). Contributed by @florianduros.
* Script for updating storybook screenshots ([#30340](element-hq/element-web#30340)). Contributed by @dbkr.
* Add toggle to hide empty state in devtools ([#30352](element-hq/element-web#30352)). Contributed by @toger5.

* [Backport staging] Use userId to filter users in non-federated rooms when showing the InviteDialog ([#30537](element-hq/element-web#30537)). Contributed by @RiotRobot.
* [Backport staging] Catch error when encountering invalid m.room.pinned\_events event ([#30536](element-hq/element-web#30536)). Contributed by @RiotRobot.
* Update for compatibility with v12 rooms ([#30452](element-hq/element-web#30452)). Contributed by @dbkr.
* New room list: fix tooltip on presence ([#30474](element-hq/element-web#30474)). Contributed by @florianduros.
* New room list: add tooltip for presence and room status ([#30472](element-hq/element-web#30472)). Contributed by @florianduros.
* Fix: Clicking on an item in the member list causes it to scroll to the top rather than show the profile view ([#30455](element-hq/element-web#30455)). Contributed by @langleyd.
* Put the 'decrypting' tooltip back ([#30446](element-hq/element-web#30446)). Contributed by @dbkr.
* Use server name explicitly for via. ([#30362](element-hq/element-web#30362)). Contributed by @Half-Shot.
* fix: replace hardcoded string in poll history dialog ([#30402](element-hq/element-web#30402)). Contributed by @florianduros.
* fix: replace hardcoded string on qr code back button ([#30401](element-hq/element-web#30401)). Contributed by @florianduros.
* Fix color of icon button with outline ([#30361](element-hq/element-web#30361)). Contributed by @florianduros.

Changes in [1.11.108](https://github.com/element-hq/element-web/releases/tag/v1.11.108) (2025-07-30)
====================================================================================================

* [Backport staging] Fix downloaded attachments not being decrypted ([#30434](element-hq/element-web#30434)). Contributed by @RiotRobot.

Changes in [1.11.107](https://github.com/element-hq/element-web/releases/tag/v1.11.107) (2025-07-29)
====================================================================================================

* Message preview should show tooltip with the full message on hover ([#30265](element-hq/element-web#30265)). Contributed by @MidhunSureshR.
* Support rendering notification badges on platforms that do their own icon overlays ([#30315](element-hq/element-web#30315)). Contributed by @Half-Shot.
* Add SubscriptionViewModel base class ([#30297](element-hq/element-web#30297)). Contributed by @dbkr.
* Enhancement: Save image on CTRL+S ([#30330](element-hq/element-web#30330)). Contributed by @ioalexander.
* Add quote functionality to MessageContextMenu (#29893) ([#30323](element-hq/element-web#30323)). Contributed by @AlirezaMrtz.
* Initial structure for shared component views ([#30216](element-hq/element-web#30216)). Contributed by @dbkr.

* [Backport staging] Fix e2e shield being invisible in white mode for encrypted room ([#30411](element-hq/element-web#30411)). Contributed by @RiotRobot.
* Force ED titlebar color for new room list ([#30332](element-hq/element-web#30332)). Contributed by @florianduros.
* Add a background color to left panel for macos titlebar in element desktop ([#30328](element-hq/element-web#30328)). Contributed by @florianduros.
* Fix: Prevent page refresh on Enter key in right panel member search ([#30312](element-hq/element-web#30312)). Contributed by @AlirezaMrtz.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Crash when scrolling the room list Disinviting someone from a room breaks scrolling in the member list Jumpy scrolling inside a room members list
3 participants