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

Listbox accessibility issue #172

Open
m1maker opened this issue Jan 7, 2025 · 2 comments
Open

Listbox accessibility issue #172

m1maker opened this issue Jan 7, 2025 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@m1maker
Copy link

m1maker commented Jan 7, 2025

Hello!

First, thank you for this great library. I have found it to be an excellent cross-platform solution for creating GUIs!

However, I wanted to bring up an accessibility issue. While this library uses native system widgets, which is beneficial for screen reader users, the listbox widget relies on a custom implementation. As a result, it is not fully accessible to screen readers.

I can read all the list items using screen view or other methods provided by the screen reader. However, when navigating through the list with arrow keys, the screen reader does not announce the selected item.

My recommendations:

  1. Consider using native list boxes provided by the system to ensure accessibility for users with visual impairments.

  2. Alternatively, you could implement the accessibility API directly.

Thank you very much for your hard work!

@a11cf0
Copy link

a11cf0 commented Jan 7, 2025

The table control is affected too. Maybe there are more controls like these.

@frang75 frang75 self-assigned this Jan 7, 2025
@frang75 frang75 added the enhancement New feature or request label Jan 7, 2025
@frang75
Copy link
Owner

frang75 commented Jan 7, 2025

Hi @m1maker, @a11cf0! Thanks for use NAppGUI.

NAppGUI uses native controls except, indeed, for ListBox and TableView. The problems I found with it were (especially for TableView):

  • Difficulty to unify the same appearance/behavior on Windows/macOS/Linux using native controls.
  • TableView works as a "dumb" viewer (no data cache). Normally native controls use some kind of automanaged "datasource" object.
  • Total flexibility to implement any kind of "custom-cell" in the future. TableView is prepared to draw anything in very large data collections, since it focuses on drawing only the visible area.

However, any unimplemented native behavior should be there. I leave this issue open to do so when the time comes. Any information you can provide about the accessibility API will be welcome.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants