I am building an Angular application and are having some issues with accessibility support for Jaws in IE 11.
My page looks similar to this:
<div id="start-tabbing-from-here" aria-label="Press tab to begin" tabindex="-1"></div>
<h1 tabindex="0" aria-label="Some title">Some title</h1>
<p tabindex="0" aria-label="Some text">Some text</p>
<button tabindex="0" aria-label="Btn1">Btn1</button>
<button tabindex="0" aria-label="Btn2">Btn2</button>
<button tabindex="0" aria-label="Btn3">Btn3</button>
<button tabindex="0" aria-label="Btn4">Btn4</button>
When I am sure the page elements have loaded i 'focus' on the #start-tabbing-from-here id using JQuery.
The intention is that once the user starts tabbing the user will move through the elements in page order. I.e: First focus is on 'Some title' on next 'tab' it moves to 'Some text' all the while reading aloud the content for each element.
In Chrome (linux/windows/mac) as well as Safari on Mac I get the expected behaviour.
In IE something really strange is going on: On first tab it starts reading through not only the first element but all of the elements in page order. I.e. JAWS will read: 'Some title some text Btn1 ...' and then suddenly it will 'reset' starting from the first element and then read that aloud one final time.
In essence what will happen is this: User tabs once and focus moves to 'Some title'. JAWS then reads aloud: "Some title some text Btn1 Btn2 Some title" and then it will stop reading and the page will start to behave as I would expect.
It seems to me like the 'reset' happens at a fixed point in time or after reading a specific number of words. E.g. If I change my the content of my elements to:
<div tabindex="-1" id="start-tabbing-from-here">
<h1 tabindex="0" aria-label="Some title">Some title</h1>
<p tabindex="0" aria-label="Some longer text that is here">Some longer text that is here</p>
<button tabindex="0" aria-label="Btn1">Btn1</button>
<button tabindex="0" aria-label="Btn2">Btn2</button>
<button tabindex="0" aria-label="Btn3">Btn3</button>
<button tabindex="0" aria-label="Btn4">Btn4</button>
</div>
JAWS may read: 'Some title Some longer text that Some title'.
I am really baffled by this behaviour and are not quite sure where to start debugging. I'm really hoping for some input! :)