Clicking on a hyperlink will cause the browser to immediately navigate to the linked page. The audio on your page won't have time to start playing.
You'll need to delay the navigation until the audio has finished playing:
var links = document.getElementsByTagName("a");
for (var i = 0; i < links.length; i++){
links[i].addEventListener("click", function(event){
event.preventDefault();
var url = this.href;
var audio = document.getElementById("myAudio");
audio.play().then(function(){
audio.addEventListener("ended", function(){
location.href = url;
});
});
});
}
Updated demo[
^]