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

Accessibility: HTML semantic not consistent, hard for screenreader users #358

Closed
7 tasks done
fcnjd opened this issue Jan 22, 2024 · 7 comments
Closed
7 tasks done
Milestone

Comments

@fcnjd
Copy link

fcnjd commented Jan 22, 2024

Hello,
at first, thank you for all your work in this project. It is very appreciated!
Since I am blind I use a screenreader. However, sadly the HTML semantics are not always consistant, so there are some unlabelled buttons and unstructured parts. I'll try to sum it up what I found so far. I'm sorry for not providing a PR since I'm experienced in frontend development, however this project is based on React, which mixes up HTML and Typescript in single files - for me as user of a Braille display, this makes it harder to get familiar with the code, as longer files have to be searched through.

So now what I found:

  • When you open the preferences, they appear at the bottom of the whole interface with chats, personas etc. Is this really the intention? Wouldn't it be better to either make that as a modal and hide the other contents, or at least make preferences clearly focusable by e.g. an < h1 > element?
  • The button to close preferences or "manage models" is unlabelled
  • At a call, the labels of the buttons are written below the buttons, however it would be better to have them as button descriptions themselves. Since often you navigate withouth the virtual cursor, or by hotkeys that just jump from button to button, this text would not be read.
  • In the "manage models tab" when navigating through the list, the buttons to select models or to open their options are unlabelled.
  • The chats in the chat list should have their corresponding HTML semantics (links, buttons) what they're ment to be, not just div
  • The buttons for example to delete a chat are unlabelled.
  • The interface would be much easier to navigate if structured properly as HTML: < anv >, < main >, < footer >, chat list as < ul > with listitems in it.
    These are the ideas I have so far. I hope you can consider checking this.

Device and browser: Windows 10, Chrome browser, use both Jaws and NVDA screenreaders

@fcnjd fcnjd added the type: bug Something isn't working label Jan 22, 2024
@enricoros enricoros changed the title [BUG] HTML semantic not consistant, hard for screenreader users Accessibility: HTML semantic not consistant, hard for screenreader users Jan 23, 2024
@enricoros
Copy link
Owner

enricoros commented Jan 23, 2024

Thanks for finding and communicating the issues. Apologies for a technology stack does not put accessiblity first. On my side, I'm using a UI library that handles accessibility on a per-component basis, as otherwise it would be harder to implement.

A couple of follow-ups:

  • Opening preferences is indeed Overlaying a Modal on top of the whole UI, and the rest of the UI shall not be considered by screenreaders. Do you see all the content and preferences last? Preferences also uses 4 tabs
  • how does one label the buttons for "manage models" or "close preferences"? There should also be 2 buttons to close preferences: a "x" on the top-left, and a "close" on the bottom-right. In case of an icon, what's the way to label it?
  • You tried the Call feature? Great job, that's very new! I think I know what you mean about the button labels, I believe I can do that.
  • Thanks for the advice on Chats on the Chats List
  • Thanks for telling me about the nav/main/footer/ul for the chat list

Please follow this bug to see updates, and let me know if there is progress.

@fcnjd
Copy link
Author

fcnjd commented Jan 23, 2024

Thank you for your answer, it's nice to see that you're following the issue. I'll try to answer the given questions:

  • I don't get the whole UI and then the preferences, but parts of it remain there, like for example the chat input box, below it preferences start.
  • It makes most sense to label the buttons as for what they do. Manage models, as well as the "close" button at the bottom of the preferences you already mentioned, buth of them are already correctly labelled. So the icon "x" would probably for the best also get the label to close preferences.
  • The 4 tabs work as expected in the settings. However even if I collapse the "labs" section, preferences like the voice calls are still reachable for the screenreader the same way. I'd recommend marking this section with CSS display: none as this is also considered by screenreaders.
  • The call feature is great, it makes the communication with the AI model very easy.
    I am subscribed to this issue, so will receive future notifications and am happy to provide further feedback or testing.

@fcnjd fcnjd changed the title Accessibility: HTML semantic not consistant, hard for screenreader users Accessibility: HTML semantic not consistent, hard for screenreader users Jan 23, 2024
@enricoros
Copy link
Owner

Hi @fcnjd I started modifying the markup of the application. Now has a nav/header/main/aside.

@enricoros enricoros moved this from Requests to In Progress in big-AGI build-in-public roadmap Jan 24, 2024
enricoros added a commit that referenced this issue Jan 24, 2024
…closing the dialogs, model list, model selection, model unhide, #358
@enricoros enricoros added this to the 1.13.0 milestone Jan 24, 2024
@enricoros
Copy link
Owner

Hi @fcnjd, I performed structural changes to the HTML, all live on the main branch. This includes most issues you mentioned, and involved restructuring the markup, adding aria-labels and lots of learning.

Are you able to try out the changes and give your advice on what is missing and how to prioritize?
I want to proceed from the top priority to the lower. Thank you.

@enricoros
Copy link
Owner

All the changes applied. Please open a new issue with specific recommendations on what to do next. Delivering this today as part of 1.12.0.

@github-project-automation github-project-automation bot moved this from In Progress to Ready in big-AGI build-in-public roadmap Jan 26, 2024
@enricoros enricoros removed the type: bug Something isn't working label Jan 26, 2024
@enricoros enricoros mentioned this issue Jan 26, 2024
23 tasks
@fcnjd
Copy link
Author

fcnjd commented Jan 28, 2024

Thank you very much for doing the changes so quickly, it is very appreciated. I tested it, and the interface truely is much better to navigate and use now.

@enricoros
Copy link
Owner

Thank you very much for doing the changes so quickly, it is very appreciated. I tested it, and the interface truely is much better to navigate and use now.

I am glad to hear we could make a difference, thanks for prioritizing our work.

jimjonesbabyfreshout pushed a commit to jimjonesbabyfreshout/big-AGI that referenced this issue Feb 19, 2024
jimjonesbabyfreshout pushed a commit to jimjonesbabyfreshout/big-AGI that referenced this issue Feb 19, 2024
…closing the dialogs, model list, model selection, model unhide, enricoros#358
jimjonesbabyfreshout pushed a commit to jimjonesbabyfreshout/big-AGI that referenced this issue Feb 19, 2024
jimjonesbabyfreshout pushed a commit to jimjonesbabyfreshout/big-AGI that referenced this issue Feb 19, 2024
jimjonesbabyfreshout pushed a commit to jimjonesbabyfreshout/big-AGI that referenced this issue Feb 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants