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

igx-combo - improve accessibility for reading aloud by screen reader apps, especially the Windows Narrator #13622

Open
jsakamotoIGJP opened this issue Nov 2, 2023 · 14 comments

Comments

@jsakamotoIGJP
Copy link

Is your feature request related to a problem? Please describe.

Yes, it is.

When I enabled the Windows Narrator and operated a web page that has the igx-combo, the Narrator could not work as I expected.

  • It sometimes reads aloud unnecessarily elements such as "blank".
  • When I enter the arrow-down key, it cannot recognize UI operatable elements well. For example, the Narrator found and read the hidden "input type=checkbox" element, but it is not desirable behavior because it is a hidden element from the visibility perspective. Another one is the Narrator reads aloud the "Graphic" for the checkbox icon. It is also unnecessarily reading.

See also the video below. (By default, the following video might be muted. Please watch by turning off the mute.)

video1-min.mp4

Describe the solution you'd like

  • Make the Narrator not read aloud unnecessarily elements such as "blank".
  • Make the Narrator not read aloud the invisible input type=checkbox element.
  • Make the Narrator don't read aloud unnecessarily graphical elements.

Describe alternatives you've considered

Patching the aria-* attributes of DOM elements that generated by igx-combo at runtime.

Additional context

This is the source project I used to investigate this issue:

📦c-00233265-ng-app.zip

@jsakamotoIGJP
Copy link
Author

The related issue is here: #13594

@jsakamotoIGJP
Copy link
Author

This is my workaround.

This workaround patches the aria-* attributes of DOM elements generated by igx-combo at runtime.

  1. Handle the opened event of the igx-combo.
  2. When the opened event is fired, invoke a monkey patch process of the following.
  • Fix the value of the aria-label attribute to be the text inside its drop-down list item.
  • Add the aria-hidden="true" attribute to the igx-checkbox elements inside the drop-down list generated by igx-combo.

The patch code that is doing above is below:

export const igxComboItemsAriaPatch = () => {
  const comboItems = Array.from(document.querySelector(".igx-combo__content").querySelectorAll("igx-combo-item"));
  comboItems.forEach(item => {
    item.ariaLabel = item.querySelector(".igx-drop-down__inner").textContent.trim();
    item.querySelector("igx-checkbox").ariaHidden = "true";
  });
}

See also the video below that shows you the result of the workaround above. (By default, the following video might be muted. Please watch by turning off the mute.)

video2-min.mp4

Unfortunately, the Windows Narrator is also not perfect. The workaround above still sometimes doesn't work well. It is not stable. However, we should do our best to make it render higher accessibility, I think.

Copy link

github-actions bot commented Jan 2, 2024

There has been no recent activity and this issue has been marked inactive.

@github-actions github-actions bot added the status: inactive Used to stale issues and pull requests label Jan 2, 2024
@github-actions github-actions bot removed the status: inactive Used to stale issues and pull requests label Jan 3, 2024
Copy link

github-actions bot commented Mar 3, 2024

There has been no recent activity and this issue has been marked inactive.

@github-actions github-actions bot added the status: inactive Used to stale issues and pull requests label Mar 3, 2024
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Mar 10, 2024
@jsakamotoIGJP
Copy link
Author

Oh no, don't close this issue. The customer is waitng for fixing this issue for a long time. Please handle this. (CC: @Lipata )

@Lipata Lipata reopened this Mar 11, 2024
@Lipata Lipata removed the status: inactive Used to stale issues and pull requests label Mar 11, 2024
@jsakamotoIGJP
Copy link
Author

Thank you, @Lipata !

Copy link

There has been no recent activity and this issue has been marked inactive.

@github-actions github-actions bot added the status: inactive Used to stale issues and pull requests label May 15, 2024
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale May 23, 2024
@jsakamotoIGJP
Copy link
Author

Sorry for interrupt you, @Lipata, but could you keep this issue be opened?

@Lipata Lipata reopened this May 24, 2024
@Lipata Lipata removed the status: inactive Used to stale issues and pull requests label May 24, 2024
Copy link

There has been no recent activity and this issue has been marked inactive.

@github-actions github-actions bot added the status: inactive Used to stale issues and pull requests label Jul 24, 2024
@Lipata Lipata removed the status: inactive Used to stale issues and pull requests label Jul 24, 2024
Copy link

There has been no recent activity and this issue has been marked inactive.

@github-actions github-actions bot added the status: inactive Used to stale issues and pull requests label Sep 23, 2024
@Lipata Lipata removed the status: inactive Used to stale issues and pull requests label Sep 24, 2024
Copy link

There has been no recent activity and this issue has been marked inactive.

@github-actions github-actions bot added the status: inactive Used to stale issues and pull requests label Nov 24, 2024
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Dec 1, 2024
@jsakamotoIGJP
Copy link
Author

Hi @Lipata,
Sorry for bothering you, but could you please reopen this issue and reconsider taking care of it?

I don't want to push you and your team, but personally, I feel like this feature request is not so hard to implement since it just adds some "aria—" attributes. Of course, I understand there might be some reasons not to start this improvement that I can't see.

Or, if you and your team decide not to fix this issue, please let us know and explain your decision.

In any case, we'd appreciate it if you would reconsider taking care of this issue. Thanks in advance.

@Lipata Lipata removed the status: inactive Used to stale issues and pull requests label Dec 13, 2024
@Lipata
Copy link
Member

Lipata commented Dec 13, 2024

@jsakamotoIGJP, we will review the issue in the next sprint at the start of 2025.

@Lipata Lipata reopened this Dec 13, 2024
@jsakamotoIGJP
Copy link
Author

Thank you, @Lipata, for reopening this issue. Yeah, it is close to the end of the holiday season now, so I hope you and your team have a good time. See you again next year!

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

2 participants