Skip to content

Accessible names for folders, files and messages - #3449

Open
FrayxRulez wants to merge 4 commits into
release12.10.6from
accessibility-names
Open

FrayxRulez wants to merge 4 commits into
release12.10.6from
accessibility-names

Conversation

@FrayxRulez

@FrayxRulez FrayxRulez commented Sep 20, 2026 •

Copy link
Copy Markdown
Collaborator

Accessible names, from a pass over what the UnigramPlus NVDA add-on works around.

What it does

  • The selected chat folder is announced on switch. Ctrl+1..9, Ctrl+Shift+Up/Down and the carousel swipe change the folder with no focus move, and neither event they raise is one a screen reader reads: selection on an unfocused list is ignored, and the chat list swapping its items is a structure change. The new folder is now announced from the chat list's peer.
  • The folder tabs have a name. They read as their two text children today — "All 535" — because the badge is a number with nothing to say what it counts. ChatFolderViewModel.AutomationName composes the title and {n} unread chats; it is bound, not assigned, so the badge can move without the container being prepared again. The same string is what the switch announces.
  • An explicit name on a list row now wins over TextListViewItemAutomationPeer's text walk, which silently shadowed every AutomationProperties.SetName on a container.
  • File buttons say what they act on: "Download file, report.pdf, 2.4 MB", "Play, Track — Artist, 3:21". The stable part only — progress stays in the subtitle, since a name that changed with it would be re-read on every update.
  • Two decorative progress bars are hidden: the poll vote bar (the percentage is already in the option's name) and the video position indicator. These are the only real ProgressBars in the message surfaces; the add-on's progress-tracking feature reads the subtitle text, which is untouched.
  • Automation.GetDescription is removed — it had no callers.

Corrections to what I said earlier

The message name already includes reactions, the replied-to sender, the forward origin, edited/sending state and "Not seen" before the content. I had read Automation.GetDescription, which is dead code; the live path is MessageBubble.GetAutomationName. The identity icon already names itself too, so the add-on's "Identity root" workaround is obsolete.

Worth a look in review

  • The name-precedence change touches every row built on TextListViewItem, not just folders. It should only ever add a name where one was set and ignored.
  • AccDescrUnreadChats_one/_other is a new string — the count is unread chats, which is what the badge counts.

Not built, not tested with a reader.

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

Successfully merging this pull request may close these issues.

1 participant