Jaws, IE & the Forms region bug

There is an unusual problem with Jaws and Internet Explorer that causes the word “region” to be announced before every field in a form. Fortunately there is a workaround until the problem itself is resolved.

The situation arises when you have a form inside a container with role=”main” applied to it. For example:

<div role="main">
   <form method="post">

      <div>
         <label for="username">Username: </label><br> 
         <input type="text" id="username">
      </div>

      <div>
         <label for="password">Password: </label><br>
         <input type="password" id="password">
      </div>

      <div>
         <input type="submit" value="Log in">
     </div>

   </form>
</div>

The problem occurs in Internet Explorer 8, 9 and 10 (and possibly older versions too). It first appeared with Jaws 13 and persists in Jaws 14.

In an added twist the problem only happens when Jaws verbosity is set to beginner (the default) or intermediate. If verbosity is set to advanced the erroneous announcements don’t happen.

There is a workaround that stops Jaws from doing this. Ordinarily it’s good to be cautious about hacking around user agent bugs, but in this case it isn’t too much of a dirty hack. Just add role=”form” to the form element.

<div role="main">
   <form role="form" method="post">

...

   </form>
</div>

It shouldn’t be necessary to do this. The role maps to the element natively in HTML anyway. In this case though, adding role=”form” directly in the HTML doesn’t break the natural semantics of the page, and it won’t cause any backwards/forwards compatibility issues either.

4 comments on “Jaws, IE & the Forms region bug”

Skip to Post a comment
  1. Comment by Birkir Gunnarsson

    Interesting. I do not get this verbosity with latest update of Jaws 14 (14.0.4004) on IE10 (on Windows 64-bit), with verbosity set to beginner or intermediate.
    (I took your exact code, added html tags and tested).
    May be the very latest update fixed it, may be it is some other setting at play, debugging code is always fun.
    I will check with FS, as I am in their beta tester group, and make sure this has the attention it needs.
    While testing this code I noticed another very odd behavior. For the password field, In Firefox 22, Jaws speaks the associated label twice in forms mode. It does not do this for the username field, only the password one. This may, in fact, explain some extra verbosity issues with Jaws and Firefox.
    Thanks for posting this. Together we can figure out what´s wrong, and make sure it gets fixed.

  2. Comment by Léonie Watson

    Thanks Birkir. Curious. It’s definitely happening for me with Jaws 14.0.4004 in IE10 on Windows 7 64bit. Also confirmed in IE10 on Windows 8. There must be another factor at play.

    The duplication in FF is because the form field has type=”password”. Jaws announces the field type and also the label, which in this case happen to be the same. If you change the field to type=”text” it stops the duplication.

  3. Comment by Guy Hickling

    It is now 2016, and I am running JAWS 17 with IE11. But has the problem gone away? No, “Region” is still there, loud and clear. I reported to a client as a defect just last week! Thank you for the above information. I suppose, in defense of FS, it isn’t the most shattering bug in the world, but it must be annoying to many. In fact, that’s 3 years of annoyance….

  4. Comment by James Edwards

    I recently encountered a bizarre issue in JAWS 16 with IE11, whereby in a group of controls (all role=button with aria-pressed and aria-label), the first control in the group was not being announced by JAWS. Couldn’t make head nor tail of it, didn’t make any sense. And this was a major dealbreaker, since the unannounced button in question was the play button for a video player!

    But wouldn’t you know, this solution also fixed that! Thanks 🙂

Comment on this post

Will not be published
Optional