nappgui_src icon indicating copy to clipboard operation
nappgui_src copied to clipboard

Listbox accessibility issue

Open m1maker opened this issue 11 months ago • 3 comments

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!

m1maker avatar Jan 07 '25 16:01 m1maker

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

a11cf0 avatar Jan 07 '25 17:01 a11cf0

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.

frang75 avatar Jan 07 '25 19:01 frang75

Here are some accessibility API related documentation links:

Microsoft

Apple

Linux

Sorry, unfortunately there is very little documentation for Linux, but I think this will still help you.

Thank you!

m1maker avatar Jan 12 '25 20:01 m1maker