message: Show more/Show less keep focus in a relevant place
diff: @@ -140,15 +140,25 @@ export default class RoomSublist2 extends React.Component<IProps, IState> {
  };
  private onShowAllClick = () => {
  - // TODO a11y keep focus somewhere useful: https://github.com/vector-im/riot-web/issues/14180
  + const numVisibleTiles = this.numVisibleTiles;
  this.props.layout.visibleTiles = this.props.layout.tilesWithPadding(this.numTiles, MAX_PADDING_HEIGHT);
  this.forceUpdate(); // because the layout doesn't trigger a re-render
  + setImmediate(this.focusRoomTile, numVisibleTiles); // focus the tile after the current bottom one
  };
  private onShowLessClick = () => {
  - // TODO a11y keep focus somewhere useful: https://github.com/vector-im/riot-web/issues/14180
  this.props.layout.visibleTiles = this.props.layout.defaultVisibleTiles;
  this.forceUpdate(); // because the layout doesn't trigger a re-render
  + // focus will flow to the show more button here
  + };
  +
  + private focusRoomTile = (index: number) => {
  + if (!this.sublistRef.current) return;
  + const elements = this.sublistRef.current.querySelectorAll<HTMLDivElement>(".mx_RoomTile2");
  + const element = elements && elements[index];
  + if (element) {
  + element.focus();
  + }
  };
  private onOpenMenuClick = (ev: InputEvent) => {
  @@ -520,6 +530,7 @@ export default class RoomSublist2 extends React.Component<IProps, IState> {
  </span>
  );
  if (this.props.isMinimized) showMoreText = null;
  + // TODO Roving tab index / treeitem?: https://github.com/vector-im/riot-web/issues/14180
  showNButton = (
  <AccessibleButton onClick={this.onShowAllClick} className={showMoreBtnClasses} tabIndex={-1}>
  <span className='mx_RoomSublist2_showMoreButtonChevron mx_RoomSublist2_showNButtonChevron'>
  