Skip to content

Properly release accessibility servers - #2557

Closed
ge0rdi wants to merge 1 commit into
masterfrom
accessibility-fix
Closed

ge0rdi wants to merge 1 commit into
masterfrom
accessibility-fix

Conversation

@ge0rdi

@ge0rdi ge0rdi commented Oct 7, 2026

Copy link
Copy Markdown
Member

Fixes #2556

@YellowNest YellowNest left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had a look. The teardown itself is the right idea, but I think reusing ClearSettingsTreeItemAccessibility() for CHILDID_SELF changes its existing runtime semantics.

That helper is also called during normal tree rebuilds, not only destruction:

  • CTreeSettingsDlg::SetGroup() calls SetSettingsTreeAccessibleName() and then ClearSettingsTreeItemAccessibility(). With this change, the latter immediately clears the tree-level name that was just set.
  • CSkinSettingsDlg::InitSkinUI() also calls it before rebuilding the tree. Clearing CHILDID_SELF there removes the ANNO_CONTAINER CSettingsTreeAccServer, and I don't see it being re-advised after the rebuild.

So I think item cleanup and final tree teardown should stay separate: keep the existing helper item-only for rebuilds, and clear CHILDID_SELF only from the destroy path. That avoids changing accessibility behavior while the dialog remains alive.

@ge0rdi

ge0rdi commented Oct 7, 2026

Copy link
Copy Markdown
Member Author

Oki, fair enough.
Lets stick with your PR.
Thank you very much for helping with this.

@ge0rdi ge0rdi closed this Oct 7, 2026
@ge0rdi
ge0rdi deleted the accessibility-fix branch October 7, 2026 19:40
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.

Explorer crashes during SetControlAccessibleName

2 participants