Element’s an interesting one because it’s on the matrix protocol, which is already federated. You could, in theory, simply graft matrix onto any given activitypub instance and run all chat through that, though you’d need to get all the other activitypub instances to agree to do it the same way.
Deserving a voice is in no way the same as deserving an audience.