-
Notifications
You must be signed in to change notification settings - Fork 398
Mark headings for semantics in inbox and recipient headers #2098
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
base: main
Are you sure you want to change the base?
Conversation
|
This PR makes a number of unrelated changes. It also has no tests. Before we can review this, it will need to meet the two basic requirements stated in our README: clean commits, and tests. @Rozerxshashank Please also read the AI use policy in our contributing guide. Parts of your PR description look very much like something generated by an LLM. Those are unhelpful and also raise doubts about whether other things you say are true or were imagined by the LLM. Can you confirm that you, a human, have in fact tested all four of these types of headers with TalkBack? |
|
Hey @gnprice thanks for the clarification of the AI use policy. I used LLM for the PR description but the changes made in the two files were very small to get it done using LLM. Before raising the PR, I as a human had tested all the four of the header using the TalkBack on a Physical Android Device. I'm sorry for not attaching the screen recording of the testing but now have added giving the testing of the inbox . For futher contribution I'll keep all the policy in mind. I've edited the PR and also attached a video of testing now you can review it. Thank You |
|
There are no unrelated change. It looks like a lot of line of code has been updated but actually 3 lines have been added with bracket for wrapping. It is showing that much of change in line of code because my way of updating the code was like I first made the wrap of sematic header then did cut and paste the code inside the wrap. That's why it is showing thay much of change of code on github. If you think that it needs to be change I'll change that. |
|
Yeah, the indentation changes are fine. With a suitable few lines in The faded background tells me Git has verified that the only change there is indentation, so I can pay less attention to that part of the diff, and focus on the more interesting part which is the |
|
Thanks for explaining me that and also sorry for being so unprofessional while raising PR. |
|
That screen recording is helpful, thanks. The other thing this PR will need before we can review it, as I mentioned at #2098 (comment) above, is some tests. |
|
Along with the manual test. I've added automated test for that now. As you mentioned. |

This PR improves screen reader accessibility by marking visual section headers as semantic headings.
Fixes #1964.
What changed
Several widgets that visually act as section headers are now wrapped with Semantics(header: true) so that screen readers correctly announce them as headings:
StreamMessageRecipientHeader (lib/widgets/message_list.dart)
Channel and topic headers in message lists.
DmRecipientHeader (lib/widgets/message_list.dart)
Recipient headers in direct message conversations.
_HeaderItem.build() (lib/widgets/inbox.dart)
Collapsible section headers on the inbox page, including both channel headers and the “Direct messages” section.
These changes don’t affect layout or visuals; they only improve accessibility semantics.
Testing
flutter analyze passes with no issues
Tested manually with TalkBack on Android
Here is the attached video of the testing where the talkback says the word heading.
zulip-test.mp4
Headers are now announced as headings
Screen reader navigation between sections works as expected, making it easier to distinguish channel headers from topic items in the inbox