iOS9, Safari with VoiceOver enabled.
Not 100% reproducible but simply selecting an option will cause the VoiceOver focus to jump to the button at the top of the page.
Now can listen for the option being selected and then force focus on the element over a couple of seconds but that leads to undesired UX.
:focus {
background-color: pink;
}
<div>
<button tabindex="-1">close</button><br/><br/><br/><br/><br/><br/><br/><br/>
<select>
<option>Email</option>
<option>Tobias</option>
<option>Linus</option>
</select>
</div>
<p>This example shows how to fill a dropdown list</p>
In production code (which uses AngularJS) explicitly setting focus after a 2 second timeout fixed the problem but that's not ideal! Thanks.
` as "blank", so your AT users will get "blank blank blank blank blank blank blank blank". There is no good reason to use more than one `
` tag in a row. If you need a gap, use CSS (consider margins, padding). Also, use `
` unless you absolutely want the blank line announced. – brennanyoung Oct 14 '19 at 13:48