Skip to content

Add accessible names to CPU masks and log viewer - #99

Merged
PrimeBuild-pc merged 2 commits into
PrimeBuild-pc:mainfrom
libirevanth364:fix-accessible-control-names
Nov 12, 2026
Merged

PrimeBuild-pc merged 2 commits into
PrimeBuild-pc:mainfrom
libirevanth364:fix-accessible-control-names

Conversation

@libirevanth364

Copy link
Copy Markdown
Contributor

Summary

  • Added localized accessibility names to interactive controls in MasksView and LogViewerView.
  • Followed the existing accessibility conventions in ProcessView.
  • Added 16 localization keys across all seven locale files.
  • Reused existing localized resources where appropriate.
  • Preserved existing application logic and behavior.

Validation

  • XAML and locale XML parsing passed.
  • Accessibility resource references and locale consistency verified.
  • git diff --check passed.
  • WPF build passed with zero warnings and errors.
  • Test execution was blocked because the Linux environment lacks Microsoft.WindowsDesktop.App 8.0.0.
  • Narrator runtime verification was unavailable in the Linux environment.

Closes #98

@PrimeBuild-pc PrimeBuild-pc left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Thanks a lot for this, Libi, and welcome to ThreadPilot! 🎉 This is a really solid first contribution. I pulled it locally and checked it:

  • Every interactive control in MasksView.xaml and LogViewerView.xaml is covered, and the diff only touches the two views and the locale files (no logic changes).
  • All 16 new keys are present in all 7 locale files, with no duplicates and no typos. Every key referenced from XAML is defined.
  • Your translations (it/de/es/fr/ru/zh) read naturally, so nothing to fix there. Thank you for not leaving English placeholders.
  • dotnet build -c Release passes with 0 errors, and all 939 existing tests pass.
  • The names are clear for a screen reader ("Filter by log level", "Start date for log entries", and so on).

There is just one small thing to change before I merge, in Views/MasksView.xaml, on the per-CPU checkbox in the CPU grid:

AutomationProperties.Name="{Binding Content.Text, RelativeSource={RelativeSource Self}}">

This binding resolves to an empty string. I checked it with a small test harness: TextBlock.Text stays empty when the text is built from <Run> elements, as it is here. The explicit name is therefore a no-op, and the name a screen reader announces comes from the checkbox content ("CPU 0", "CPU 1", and so on), so the accessibility result is already correct today. It would just be misleading to the next person reading the file.

Could you remove that one line (leave the <CheckBox.Content> as it is)? Nothing else needs to change. Once that's pushed and CI is green, I'll merge it.

Great work, and thanks again for picking this up!

@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@libirevanth364

Copy link
Copy Markdown
Contributor Author

Thanks for the detailed review! I've removed the ineffective AutomationProperties.Name binding from the per-CPU CheckBox, leaving the CheckBox.Content unchanged. The correction has been committed and pushed to the existing PR. I'll wait for the CI checks to finish. Thanks again!

@PrimeBuild-pc PrimeBuild-pc left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Perfect, thank you Libi, that's exactly the fix. Build, tests and CI are all green, so I'm merging now. Congrats on your first ThreadPilot contribution, and thanks for the great work on the translations too! 🙌

@PrimeBuild-pc
PrimeBuild-pc merged commit 81f1d60 into PrimeBuild-pc:main Nov 12, 2026
3 checks passed
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.

Add AutomationProperties.Name to the CPU masks and Log viewer controls

3 participants