Yes, I know I'm coming up with a lot of ideas that involve changing the behaviour of the core libraries. This one, I'm just throwing out there because I hate working with CSS.
I was playing someone else's game, and found myself often scrolling back to revisit the room description. I recall on my first encounter with text adventures (on the Commodore 16), there was no real scroll feature, but the description of the current room was always visible. If you go to a new room, the screen clears, and the description appears at the top, with the prompt underneath it. Once there's enough text on screen, the lower pane scrolls, but the room description remains at the top (complete with a dynamic list of objects and exits).
Obviously, we've got the objects and exits/compass in the sidebar now. And it would presumably be possible to get the room name+description to stick in a pane across the top, with the remainder of the text scrolling "behind" it. That shouldn't be too hard. The only slight wrinkle is if you do some action that displays a response you need, and then moves you to another room. But if I remember correctly, those old games had an answer to that as well: if a room description appears without a clear-screen before it, it follows behaviour which roughly follows the behaviour of the CSS
position: sticky property. The description appears inline, until it scrolls to the top of the screen at which point it pushes the previous room's description off.
I think this wouldn't be too hard to implement; assuming the player's browser supports sticky. I don't like to play with CSS though; so just offering the thought in case it's not been done yet. I suspect this could be done in a library; you'd probably need to override
ShowRoomDescription (though you could probably just get it to wrap a named class around the description, and do the rest in JS)