Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jaws 2019 not reading live child elements in Chrome #222

Closed
zakeckert opened this issue Jul 17, 2019 · 4 comments
Closed

Jaws 2019 not reading live child elements in Chrome #222

zakeckert opened this issue Jul 17, 2019 · 4 comments

Comments

@zakeckert
Copy link

Summary

When keyboard focus is on a container element, child elements that are have role="status" or role="alert" won't be read. Non-live elements will be read. This does not happen in Firefox.

Steps to reproduce:

  1. Go to https://plnkr.co/edit/klCRt1ZNLZVd7WGxXz7M?p=preview in Chrome
  2. Tab through the elements

Expected result

All text would be read in each of the elements

Actual result

Text in the green outlined elements is read in its entirety
Text in the red outlined element is not read in its entirety

Example

https://plnkr.co/edit/klCRt1ZNLZVd7WGxXz7M?p=preview

JAWS version and build number

2019.1903.47

Operating System and version

Windows 10
Edition: Windows 10 Enterprise
Version: 1903
OS build: 18362.53

Browser and version:

Google Chrome Version 75.0.3770.142 (Official Build) (64-bit)

@JAWS-test
Copy link

JAWS-test commented Jul 18, 2019

The problem occurs not only with live regions (such as status, log, alert, dialog, timer, marquee, alertdialog), but also with other ARIA roles, e.g. article, banner, img, term.

The problem occurs only in Edge (Chromium) and Chrome, not in IE and Firefox.

As long as the bug is not fixed by Freedom Scientific, there are 5 possible solutions:

  • for live regions do not use an ARIA role but aria-live
  • for live regions or all other roles where the problem occurs, explicitly label the element (with the live region) e.g. via aria-label.
  • You can also explicitly label the element that gets the focus, e.g. by referring to the content with aria-labelledby
  • You can place the role=status to the div with the tabindex and set via aria-atomic that only changed content is output by the screenreader (https://www.w3.org/TR/wai-aria-1.1/#aria-atomic)
  • also the tabindex can be removed so that the div does not get the focus. Why should a non-interactive element get the focus? And if the element gets the focus, then it should have a role. And if it has a role (like role=button), then the child elements are usually implicitly marked with role=presentation, so role=status makes no sense (see row "Children Presentational" at https://www.w3.org/TR/wai-aria-1.1/#role_definitions)

@lamador
Copy link

lamador commented Jun 18, 2020

@zakeckert, please provide the div element with class="broken" in the code sample with an accessible role so that we can accurately test the issue.

@lamador lamador self-assigned this Jun 18, 2020
@zakeckert
Copy link
Author

I am unable to do that as I have changed jobs and no longer have access to JAWS to properly update the plinkr to accurately reflect the issue.

@stevefaulkner
Copy link
Contributor

Tested with JAWS 2024 and Chrome 119 on Windows 11, could not reproduce using test case

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants