FreedomScientific / standards-support

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

JAWS not reading with aria-live field when the content exceeds 4000 characters #785

Open dedrabb1t opened 7 months ago

dedrabb1t commented 7 months ago

Summary

When an aria-live field has more than 4000 characters in it, JAWS is not reading the content added to aria-live. However, when the character counts falls below 4000, JAWS is able to read it.

To reproduce:

  1. Open Chrome
  2. Open JAWS
  3. Go to https://codepen.io/dedrabb1t/pen/zYeLOrg
  4. Navigate to the 'Add 4000 chars to live field' button using tab and press enter.
  5. The aria live field(the span) gets updated with 4000 chars, however JAWS doesn't read it.
  6. Now navigate to the 'Add 10 chars to live field' button using tab and press enter.
  7. The aria live field gets updated with 10 chars and JAWS reads it correctly.

Expected result

On pressing 'Add 4000 chars to live field' button, JAWS would read the aria-live field.

Actual result

On pressing 'Add 4000 chars to live field' button, JAWS doesn't read anything.

Example

https://codepen.io/dedrabb1t/pen/zYeLOrg

Additional Information

JAWS version and build number

JAWS 2023 2023.2303.144

Operating System and version

Windows 10

Browser and version:

Chrome 119 Edge 119

stevefaulkner commented 7 months ago

@dedrabb1t what is the use case for a 4000 character live region?

dedrabb1t commented 7 months ago

what is the use case for a 4000 character live region?

@stevefaulkner We have a clipboard feature where user can select text and save it for future reference. These texts are added to a search panel type component, where user can navigate through the each of the previously saved text using the arrow keys. While navigating, we add the item to a live field so that the content of the item can be read out. Some of these texts exceeds 4000 characters.

stevefaulkner commented 7 months ago

@dedrabb1t

While navigating, we add the item to a live field so that the content of the item can be read out. Some of these texts exceeds 4000 characters.

Why can't screen readers users navigate the clipboard contents the same way other users do?

dedrabb1t commented 7 months ago

Why can't screen readers users navigate the clipboard contents the same way other users do?

They are. Only difference is that now we are adding the currently navigated item to aria-live field so that screen reader users can hear the item that they are currently on.

stevefaulkner commented 7 months ago

@dedrabb1t why can't they read it using virtual cursor navigation as they do other content? If you have an actual working demo to test that would be helpful?

dedrabb1t commented 7 months ago

@stevefaulkner Hey, apologies for the delay. I won't be able to share the demo of the actual component. However, I created a pen which kinda capture the essence of what we are trying to do. If you move your focus to the input box and then use the arrow keys to navigate through the options, you would notice that JAWS is not reading the second option( the one with long text).

What we are doing: As soon as the focus moves to the option, we are adding the inner text of the option to the live field so that JAWS can read it out.

JAWS-test commented 7 months ago

@dedrabb1t

Your combobox is implemented incorrectly. A combobox is never made with live regions to output the options. Rather, the following is correct:

See: https://www.w3.org/WAI/ARIA/apg/patterns/combobox/

JAWS-test commented 7 months ago

Regardless of the incorrect implementation of the combobox, the fact is that there is no limit on the length of a live region in the ARIA specification. Therefore, JAWS should output the live regions in full regardless of length, but at the same time provide an option to stop output (if it is too long).

The ARIA specification should include a note that live regions should be short. Live regions with more than 100 characters are generally not useful.

stevefaulkner commented 7 months ago

@ggordon-vispero @BrettLewisVispero @RFischer-FS would be good to get your input on this issue

JasonAment commented 7 months ago

Even if you COULD have more than 4000 characters, I wonder if you’ve stopped to ask if you SHOULD. I hope solid user testing is happening. I can’t think of any user that would want 4000+ characters worth of content in an aria live region. Give the user control over their content consumption (which they already have) and don’t force it down their throat. This sounds like a solution for “business” and not an accommodation for a user.