-1

I'm working on a website project and fixing accessibility defects.

Constraints of my setup:

  • Operating System is Windows 7/10
  • Browser is Internet Explorer 11
  • Accessibility software is JAWS 2018.1804.26

I have no control over these contraints, so please do not suggest any solutions for any other setup.


I have a defect that says that an HTML <select> (drop-down) should be listed in the "clickable" elements by JAWS. (This is the modal dialog shown when pressing the Ins+Ctrl+/ keyboard chord.) I have encountered this kind of issue before with other HTML element types, and I have fixed those with a combination of the following:

  • Add an onclick handler (in my case, an empty function)
  • Add a value to the aria-label attribute (in my case, dynamically)

When attempting to do those steps in the current defect, I can make the <select> show up in the "clickable" modal dialog, but no text is listed (I'm guessing it's "reporting" an empty string). This is in spite of having a value for aria-label.


Other item of note:

  • The <select> in question is inside of a <span> that is inside of a <td>1

It looks like this:

<table>
  <tbody>
    <tr>
      <td>
        <span>
          <select> ... options ... </select>
        <span>
      </td>
    </tr>
  </tbody>
</table>

I tried altering the above code like this:

<table>
  <tbody>
    <tr>
      <td>
        <span>
          <select onclick="emptyHandler" aria-label="Some text"> 
            ... options ... </select>
        <span>
      </td>
    </tr>
  </tbody>
</table>

function emptyHandler() {
    /* This function is empty by design     */
    /* Its function is to expose an element */
    /* as a clickable element to JAWS, when */
    /* otherwise JAWS would ignore it.      */
}

Making the above modifications DID add the element to the list of clickable elements, but with no text displayed. You can see the extra row, and you can highlight it, but it's some amount of just blank spaces/text (or maybe just nothing).

1 I did not write the UI for this page, and I have no desire (nor am I authorized) to re-write the entire page. I suspect that wrapping controls inside of <span> elements does some really wonky things when interacting with JAWS, but I can't fix that part of this problem.


I have a few questions around this, since I cannot find great documentation on exactly how this is supposed to work:

  1. Is there any detailed documentation on how this is supposed to work? My searches on Freedom Scientific's website as well as on Mozilla's and around the web has produced some information, but I'd love a central place where I could find these kinds of answers. In particular, there doesn't seem to be a consistent, canonical definition for what a "clickable" element is. Some elements seem to be treated as "clickable" be default, whereas adding a custom onclick handler seems to allow ANY element to be added to that list. Which leads me to...
  2. How - exactly - does the "clickable" modal dialog work in JAWS? I think I have figured out how to get an element into this list, but what it displays seems slightly inconsistent. Which leads me to...
  3. What is supposed to show up in that modal dialog? In prior testing, it appeared that the text that is displayed is the value in the aria-label attribute, so why isn't that working here?
  4. Is it an inappropriate expectation that a <select> element would show up here? I can always kick this defect back for this reason, but I don't want to do so unless I'm sure that this is the correct course of action.
mbm29414
  • 11,558
  • 6
  • 56
  • 87
  • Could you include a complete code sample? Not sure what you're asking for if you don't have the authority to amend the code – jwebb Oct 30 '18 at 16:38
  • How do you get to the "clickable" dialog in JAWS? If you use Ins+F3, you get a list of various dialogs you can display. One of them is for "controls", which includes comboboxes. Is that what you're calling the "clickable" dialog? – slugolicious Oct 31 '18 at 06:36
  • @jwebb I'm not sure what code sample to include. The question contains all of the pertinent information. I can make minor changes to the page, but cannot do a full structural re-write. That is, I can alter the ` – mbm29414 Oct 31 '18 at 13:14
  • @slugolicious If you press Ins+Ctrl+/, you get a "clickable elements" dialog window. That's what I'm talking about. I'll edit the question to make that more obvious. – mbm29414 Oct 31 '18 at 13:14
  • Instead of saying "The – jwebb Oct 31 '18 at 13:37
  • You said "I'm working on a website project and fixing accessibility defects" and then "I have no control over this, so please do not suggest any solutions for any other setup." so how are you fixing these defects then? – jwebb Oct 31 '18 at 13:42
  • @jwebb That comment clearly applies to the section just previous to it, "Constraints of my setup". I **can** make some edits to the page, but I can't re-write the whole page. I also can't change the OS, browser, or accessibility software used. Those are completely fixed. – mbm29414 Oct 31 '18 at 14:23
  • Would love some feedback instead of just drive-by downvotes, please. – mbm29414 Oct 31 '18 at 15:36
  • Could you post an example of the block of code with the actual – jwebb Oct 31 '18 at 15:43

2 Answers2

2

With the added details, I understand the problem now. The "clickable" dialog (ins+ctrl+/) in JAWS shows elements with an onClick() handler but the label used for <select> elements in that dialog is the value of the select, which is whichever <option> that is currently selected. Using an aria-label or aria-labelledby or <label for="select-id"> does not affect the clickable dialog, although using those attributes on a <button>, for example, does work in that dialog.

I would suggest filing a bug for JAWS.

The good news is that the JAWS shortcut key for navigating to the next <select> element is C and the dialog for showing all the <select> elements is ins+ctrl+C and that dialog does honor the aria-label or aria-labelledby' or <label for="select-id">.

slugolicious
  • 15,824
  • 2
  • 29
  • 43
  • Thanks for the answer! So, it sounds like you're saying that I can't actually resolve the defect as specified, using the current functionality of JAWS. Am I reading you correctly? Also, looking at the Freedom Scientific website, I don't see any place to file a bug. Do you know of a specific place, or was your suggestion simply to ask for technical support and/or give feedback? – mbm29414 Nov 02 '18 at 12:35
  • That is correct, you cannot fix your "bug" with the way JAWS currently works. But your ` – slugolicious Nov 03 '18 at 00:14
1

It is not a bug. A <select> is not a clickable element in no way, for a JAWS user. this keystroke brings a list of elements that are clickable but could not be identified as something other: links, buttons, combo boxes.
So, mark your defect as "Not a bug" and tell your user to use Insert+Ctrl+C instead.
A screen reader such as JAWS always tries to identify HTML elements as fine as it can, so "a clickable something" is actually not of great help for a blind user. Unlike a combo box.

Andre Polykanine
  • 3,291
  • 18
  • 28