The latest update of Jaws from May 2015 doesn't seem to solve the problem that alerts are read twice in IE11.
There is a trick to solve this issue with IE11:
<div id="AriaAlertReceiver" aria-live="polite"></div>
EmsUtils.showAriaAlert = function(msg) {
var alertDiv = $("#AriaAlertReceiver");
if (alertDiv[0]){
// Set the alert text in a div - it already has aria-live=polite
// This will be actually ignored by IE for now
alertDiv.html(msg);
setTimeout(function () {
// Change the message again after a short time - now IE does detect it
if (zk.ie >= 11) {
alertDiv.html(msg + "!");
}
setTimeout(function () {
// Remove the alert after a short time, so it can be used again later
alertDiv.html("");
}, 1000);
}, 100);
}
}
The trick is to set twice the text of the live region. The first time is ignored by IE11, but the second time the change is detected.
aria-live=polite seems to be enough.
The example above works in IE11 and Firefox 37 with Jaws 16 from May 2015, on Windows 7. (Chrome doesn't make the announcement, but that's not in my target)