Liveview navigate a list using keyboard events

LiveView will never overwrite an active input’s value even if the client value differs from the LiveView’s rendered value

This portion of the docs is worth a read:

LiveView will never overwrite the input’s current value, even if it deviates from the server’s rendered updates

If I were you, I would do all of the client navigation (up, down, etc.) in just JS. when they select an item or hit enter, then send it to the LiveView.

For one, you won’t have the js/liveview source of truth collision. The second is that those server round trips are nice and snappy on local development, but are slower and feel slow once they are deployed to production.