FreedomScientific / standards-support

Contains documentation for Vispero software support of Web standards
https://freedomscientific.github.io/standards-support/
GNU General Public License v3.0
110 stars 12 forks source link

JAWS emits silence for focused listboxes after switching from Forms to Virtual PC Cursor #770

Closed Vladimir-Goncharov-a11y closed 5 months ago

Vladimir-Goncharov-a11y commented 1 year ago

Summary

JAWS emits silence for focused listboxes when "c" or "f" quick navigation keys used after switching from Forms to Virtual PC Cursor mode.

JAWS has quick navigation keys In Virtual PC Cursor mode. "c" - moves virtual PC to ne next listbox/combobox/tree. "f" - moves Virtual Cursor to the next form control, including listboxes.

The bug is reproducible with the both quick navigation keys: "c" and "f".

  1. Rename the extension of the sample file from .txt to .html; Open it in Chrome. odan_397_silence.txt
  2. Set PC Cursor (focus) into the edit field
  3. Ensure that JAWS is in Forms mode (alt-del), if still in Virtual PC Cursor mode then press Enter on the edit field to switch to the Forms mode.
  4. Press Tab to jump into the listbox. The "Apple" option is selected. --- JAWS transcript begins --- list with 2 items Apple 1 of 2 To move to an item press the Arrow keys. -- end of JAWS transcript ---
  5. Press "Numpad-Plus" to switch to the Virtual PC Cursor mode.
  6. Press "f" quick navigation key several times to get the following JAWS transcript --- JAWS transcript begins --- // NumPad-Plus pressed virtual PC Cursor // "f" quick navigation key pressed The Second Registry List box an accessible description // "f" quick navigation key pressed wrapping to top A text field to keep PC cursor focus Edit // "f" quick navigation key pressed [silence, JAWS emits nothing on the F key press in Virtual Cursor mode] // "f" quick navigation key pressed The Second Registry List box an accessible description --- end of JAWS transcript ---

The bug: The first registry list box disappeared from the web page when quick nav keys are used. There is only one "The Second Registry" listbox is available. You can test with more "f" and "c" quick nav keys.

But you can press Insert-F5 to get full list of the form elements, and the disappeared "First registry" list box is still there.

Expected result

Focused listboxes must be accessible in Virtual PC Cursor mode using "c" and "f" quick navigation keys. The following expected JAWS transcript assumes that the steps 2-4 are performed, and shows steps 5 and 6: --- expected JAWS transcript begins --- // NumPad-Plus pressed virtual PC Cursor // "f" quick navigation key pressed The Second Registry List box an accessible description // "f" quick navigation key pressed wrapping to top A text field to keep PC cursor focus Edit // "f" quick navigation key pressed The First Registry List box // INSTEAD OF THE SILENCE --- end of expected JAWS transcript ---

So, The expected result is when The first Registry listbox is always accessible using Quick Navigation Keys.

Additional Information

The bug is reproducible using the default JAWS settings The bug is reproducible using JAWS 2023 August release. The bug is reproducible using JAWS 2024 beta September release.

JAWS version and build number

JAWS version 2023.2307.37.400 JAWS version 2024.2308.124.400

Operating System and version

Microsoft Windows 10 Professional Version 22H2 (OS Build 19045.3448), System Type x64

Browser and version:

Google Chrome Version 116.0.5845.188

JAWS-test commented 1 year ago

The problem only occurs with JAWS and not with NVDA.

The problem does not occur with HTML listboxes (select element).

stevefaulkner commented 1 year ago

@Vladimir-Goncharov-a11y please provide a conforming test case:

your test case has the following issues aria-describedby does not reference valid id values

<label>A text field to keep PC cursor focus
<input type="text" aria-describedby="Another accessible description" />
</label>

the label for/id relationship only works for labelable elements, so the this, for example does not provide an accessible name

<label for="x" id="x_label">The First Registry</label>
<ul id="x" role="listbox">

listbox has no accessible name exposed in the accessibility tree.

test case using original code provided

JAWS-test commented 1 year ago

https://codepen.io/jaws-test/pen/zYyaxxZ

The problem occurs when no option in the listbox is marked with aria-selected=true. If I remember correctly, however, the aria-selected=true is not required in the following cases

I estimate the priority of the bug as low, as it only occurs in a few cases and only with a rarely used navigation method (focus on the element, switch to VPC mode and navigate with F or C to the element that already has the focus).

stevefaulkner commented 1 year ago

Thanks @JAWS-test

Vladimir-Goncharov-a11y commented 5 months ago

@stevefaulkner , as for the aria-describedby with wrong value added to the text input element. Indeed, the value is incorrect. But this value is not used in the JAWS transcript and is not related to the described bug. As for the <label for...> for listboxes. Does not matter if <label> or aria-labelledby is used. Nevertheless, see the same example, where \<label> removed and aria-labelledby used instead, wrong aria-describedby also removed from the text input. odan_397_silence2.txt However, all JAWS transcript remained the same.

Since the bug was posted, this issue was not fixed, but the support  for the listboxes in Virtual PC Cursor become even worse.
The fixed file  shows exactly the same result as the original one.

The file has edit field (just a place where you can start pressing Tab, the field has no relationship with the listboxes)

Open the file in latest Chrome using latest publicly available JAWS 2024 March release.
First, try find listboxes using Virtual PC Cursor mode. To do this, press “c” quick navigation key:

--- JAWS transcript --- There are no Selectable ARIA controls, comboboxes, listboxes or treeviews on this page. --- end o JAWS transcript ---

after that, use “e” quick navigation key to jump to the text field. Switch to forms mode (automatically, or by pressing Enter).
Use Alt+Del to check the current JAWS mode.
In Forms mode press Tab key once.

--- JAWS transcript for the Tab in Forms mode --- list with 2 items Apple 1 of 2 --- end of JAWS transcript ---

Do you see, the listbox is missing in VPC, but presents in Forms mode.

Now, switch to VPC using Numpad-Plus, and press “c” quick navigation key twice.

--- JAWS transcript in VPC after Tab in Forms --- // NumPad pressed virtual PC Cursor // "c" pressed wrapping to top The First Registry list box item Apple 1 of 2 // "c" pressed wrapping to top The First Registry list box item Apple 1 of 2 --- end of JAWS transcript ---

As you can see, the first listbox become accessible in the VPC. 
No javascript on this page. Nothing changed.

When you first open the page, there was no accessible listboxes at all, now you see 1 listbox, but the page has two listboxes.
Both listboxes are accessible in Forms mode when are accessed by Tab key.

Summary

When I posted the bug in September of 2023, listboxes where accessible in VPC, but in some circumstances JAWS did not see one of them in VPC, now JAWS does not see listboxes in VPC at all if those listboxes do not have keyboard focus.

Other screen readers do not have this bug

NVDA in Browse mode (analog of VPC)  perceives both listboxes  on this page.
Narrator in Scan mode (analog of VPC) perceives both listboxes on this page.
JAWS 2023 perceives both listboxes in VPC (the initially filed bug also is still reproducible in JAWS 2023)
Press “c”  quick nav key in JAWS 2023 to get the following:

--- JAWS 2023 transcript in VPC --- // “c” pressed The First Registry List box // “c” pressed The Second Registry List box an accessible description --- end of JAWS transcript ---

As you can see with JAWS 2023, both listboxes are accessible in VPC, and the second listbox has a description. Do not forget, originally filed is still reproducible with JAWS 2023 as described in the original message.

Severity

This is the severe issue. All web applications  with listboxes became not accessible with JAWS when a select list does not have the default selection.

Version Details Information

Google Chrome Version 124.0.6367.63
JAWS version 2024.2403.3.400
BrettLewisVispero commented 5 months ago

This looks like it is fixed in the May 2024 JAWS update. Please test and let me know if this doesn't match your experience.

Vladimir-Goncharov-a11y commented 4 months ago

This bug is fixed in JAWS 2024 may’s update.'Thank you all, especially to Bill H.