My solution to this problem is:
<meta charset="utf-8">
<video controls id="v" height="480" src="file.webm"></video>
<audio id="a" src="file.weba"></audio>
<script>
let v = document.getElementById('v');
let a = document.getElementById('a');
v.onpause = () => a.pause();
v.onplay = () => a.play();
v.onseeked = () => a.currentTime = v.currentTime;
</script>
In this setup, the video element has controls and the audio element responds to play,
pause, and seek actions of the video. The volume control feature is not included here, so you have
the option to implement it separately or utilize the system volume control instead.