#39649
Summary of the Pull Request
This PR addresses an accessibility and usability issue in the Command Palette details pane when the system text size is set to 225%. Previously, the details text did not wrap, causing horizontal scrolling and making the content difficult to read. With this fix, the details text should wrap, improving readability and accessibility for users with large text settings.
PR Checklist
- [x] Closes: #39649
- [x] Communication: I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected
- [ ] Tests: Added/updated and all pass
- [ ] Localization: All end user facing strings can be localized
- [ ] Dev docs: Added/updated
- [ ] New binaries: Added on the required places
- [ ] JSON for signing for new binaries
- [ ] WXS for installer for new binaries and localization folder
- [ ] YML for CI pipeline for new test projects
- [ ] YML for signed pipeline
- [ ] Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx
Detailed Description of the Pull Request / Additional comments
- Updated the Command Palette details pane to ensure text wraps correctly at high system text scaling (e.g., 225%).
- Improved the responsiveness of the details pane for accessibility.
- Eliminated the need for horizontal scrolling; all content remains visible and readable regardless of system text size.
- Could someone please validate if the fix(which is too easy to be true)works
- Reference image of the issue:

Validation Steps Performed
Not performed yet but will perform
Set system text size to 225% and verified that the details text wraps as expected in the Command Palette.
Please review
Unless my two second review is incorrect, CommandBar.xaml doesn't contain any code for the Details pane. Pretty sure that's in ShellPage.xaml
Hey @zadjii-msft! I understand so I reverted that CommandBar.xaml change and I saw in ShellPage.xaml that it was doing Wrap whole words but links are counted as one so I added a good ol' plain wrap just for hyperlinks.
@zadjii-msft could you get this tested and approved
@niels9001 can you take a look quickly
Thanks a lot @crutkas and @niels9001 for approving my first PR
@niels9001 Why hasn't this been merged
How doesn’t it compile
@zadjii-msft it should compile
Did you build the Micrsoft.UI.CmdPal project?
When I tried to test this change locally, I got:
5>D:\dev\public\pt\src\modules\cmdpal\Microsoft.CmdPal.UI\Pages\ShellPage.xaml(94,25): XamlCompiler error WMC0011: Unknown member 'TextWrapping' on element 'HyperlinkButton'
It should work as TextWrapping definetely works in WinUI
@zadjii-msft Wait, now try compiling
@zadjii-msft I have fixed it now and it should work
@check-spelling-bot Report
:red_circle: Please review
See the :open_file_folder: files view, the :scroll:action log, or :memo: job summary for details.
Unrecognized words (1)
GC'd
These words are not needed and should be removed
DEFT iextn localappdata msvsmon OTHERUNZOOM OTHERZOOM PARENTCLOSING PARENTOPENING pswd SCROLLCHILDREN SHELLEXTENSION SHELLNEWVALUE SHGFIICON SHGFILARGEICON TGM VARENUMSome files were automatically ignored :see_no_evil:
These sample patterns would exclude them:
^\Q.pipelines/272MSSharedLibSN2048.snk\E$
^src/modules/ZoomIt/ZoomIt/ZoomIt\.idc$
You should consider adding them to:
.github/actions/spell-check/excludes.txt
File matching is via Perl regular expressions.
To check these files, more of their words need to be in the dictionary than not. You can use patterns.txt to exclude portions, add items to the dictionary (e.g. by adding them to allow.txt), or fix typos.
To accept these unrecognized words as correct, update file exclusions, and remove the previously acknowledged and now absent words, you could run the following commands
... in a clone of the [email protected]:SabhyaAggarwal/PowerToys.git repository
on the #39649 branch (:information_source: how do I use this?):
curl -s -S -L 'https://raw.githubusercontent.com/check-spelling/check-spelling/c635c2f3f714eec2fcf27b643a1919b9a811ef2e/apply.pl' |
perl - 'https://github.com/microsoft/PowerToys/actions/runs/15554527944/attempts/1' &&
git commit -m 'Update check-spelling metadata'
Warnings :warning: (4)
See the :open_file_folder: files view, the :scroll:action log, or :memo: job summary for details.
| :warning: Warnings | Count |
|---|---|
| :warning: binary-file | 1 |
| :warning: ignored-expect-variant | 2 |
| :warning: no-newline-at-eof | 2 |
| :warning: single-line-file | 1 |
See :warning: Event descriptions for more information.
If the flagged items are :exploding_head: false positives
If items relate to a ...
-
binary file (or some other file you wouldn't want to check at all).
Please add a file path to the
excludes.txtfile matching the containing file.File paths are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your files.
^refers to the file's path from the root of the repository, so^README\.md$would exclude README.md (on whichever branch you're using). -
well-formed pattern.
If you can write a pattern that would match it, try adding it to the
patterns.txtfile.Patterns are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your lines.
Note that patterns can't match multiline strings.
I just synced my fork and spell check is going off???
@check-spelling-bot Report
:red_circle: Please review
See the :open_file_folder: files view, the :scroll:action log, or :memo: job summary for details.
Unrecognized words (1)
GC'd
These words are not needed and should be removed
DEFT iextn localappdata msvsmon OTHERUNZOOM OTHERZOOM PARENTCLOSING PARENTOPENING pswd SCROLLCHILDREN SHELLEXTENSION SHELLNEWVALUE SHGFIICON SHGFILARGEICON TGM VARENUMSome files were automatically ignored :see_no_evil:
These sample patterns would exclude them:
^\Q.pipelines/272MSSharedLibSN2048.snk\E$
^src/modules/ZoomIt/ZoomIt/ZoomIt\.idc$
You should consider adding them to:
.github/actions/spell-check/excludes.txt
File matching is via Perl regular expressions.
To check these files, more of their words need to be in the dictionary than not. You can use patterns.txt to exclude portions, add items to the dictionary (e.g. by adding them to allow.txt), or fix typos.
To accept these unrecognized words as correct, update file exclusions, and remove the previously acknowledged and now absent words, you could run the following commands
... in a clone of the [email protected]:SabhyaAggarwal/PowerToys.git repository
on the #39649 branch (:information_source: how do I use this?):
curl -s -S -L 'https://raw.githubusercontent.com/check-spelling/check-spelling/c635c2f3f714eec2fcf27b643a1919b9a811ef2e/apply.pl' |
perl - 'https://github.com/microsoft/PowerToys/actions/runs/15562039028/attempts/1' &&
git commit -m 'Update check-spelling metadata'
Warnings :warning: (4)
See the :open_file_folder: files view, the :scroll:action log, or :memo: job summary for details.
| :warning: Warnings | Count |
|---|---|
| :warning: binary-file | 1 |
| :warning: ignored-expect-variant | 2 |
| :warning: no-newline-at-eof | 2 |
| :warning: single-line-file | 1 |
See :warning: Event descriptions for more information.
If the flagged items are :exploding_head: false positives
If items relate to a ...
-
binary file (or some other file you wouldn't want to check at all).
Please add a file path to the
excludes.txtfile matching the containing file.File paths are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your files.
^refers to the file's path from the root of the repository, so^README\.md$would exclude README.md (on whichever branch you're using). -
well-formed pattern.
If you can write a pattern that would match it, try adding it to the
patterns.txtfile.Patterns are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your lines.
Note that patterns can't match multiline strings.
Again!!!!!!!
@niels9001 can you approve this code
Plz approve @niels9001(sorry for pinging).
Oh I forgot about this. Now I don't have time to code or build so I'll give the job to copilot. Sorry if it isn't allowed.
@check-spelling-bot Report
:red_circle: Please review
See the :open_file_folder: files view, the :scroll:action log, or :memo: job summary for details.
Unrecognized words (39)
advancedpaste
appxpackage
Ashcraft
CDPX
commandnotfound
copyable
Corpor
cropandlock
environmentvariables
fileexploreraddons
filelocksmith
findmymouse
fucntion
fuzzingtesting
hostsfileeditor
hotfixes
IDOn
lcl
LIBFUZZER
makepri
mikeclayton
mousehighlighter
mousejump
mousepointer
mouseutils
MVPs
onebranch
PMs
Psr
quickaccent
regsvr
screenruler
sharpfuzz
sourced
stuttery
textextractor
Windowss
XLoc
zonability
These words are not needed and should be removed
cleanmgr CLSCTXINPROCALL CLSCTXLOCALSERVER FILELOCKSMITH IIDI iwr psexec smileys TEXTEXTRACTOR windowsterminal ZhiweiSome files were automatically ignored :see_no_evil:
These sample patterns would exclude them:
^src/common/CalculatorEngineCommon/exprtk\.hpp$
You should consider adding them to:
.github/actions/spell-check/excludes.txt
File matching is via Perl regular expressions.
To check these files, more of their words need to be in the dictionary than not. You can use patterns.txt to exclude portions, add items to the dictionary (e.g. by adding them to allow.txt), or fix typos.
To accept these unrecognized words as correct, update file exclusions, and remove the previously acknowledged and now absent words, you could run the following commands
... in a clone of the [email protected]:SabhyaAggarwal/PowerToys.git repository
on the #39649 branch (:information_source: how do I use this?):
curl -s -S -L 'https://raw.githubusercontent.com/check-spelling/check-spelling/c635c2f3f714eec2fcf27b643a1919b9a811ef2e/apply.pl' |
perl - 'https://github.com/microsoft/PowerToys/actions/runs/16029085850/attempts/1' &&
git commit -m 'Update check-spelling metadata'
Forbidden patterns :no_good: (2)
In order to address this, you could change the content to not match the forbidden patterns (comments before forbidden patterns may help explain why they're forbidden), add patterns for acceptable instances, or adjust the forbidden patterns themselves.
These forbidden patterns matched content:
Do not use (click) here links
For more information, see:
- https://www.w3.org/QA/Tips/noClickHere
- https://webaim.org/techniques/hypertext/link_text
- https://granicus.com/blog/why-click-here-links-are-bad/
- https://heyoka.medium.com/dont-use-click-here-f32f445d1021
(?i)(?:>|\[)(?:(?:click |)here|this(?=\]\([^\)]+:/)|link|(?:read |)more(?!</value))(?:</|\]\()
Should be greater than
\bhigher than\b
Pattern suggestions :scissors: (1)
You could add these patterns to .github/actions/spell-check/patterns.txt:
# Automatically suggested patterns
# hit-count: 1 file-count: 1
# curl arguments
\b(?:\\n|)curl(?:\.exe|)(?:\s+-[a-zA-Z]{1,2}\b)*(?:\s+-[a-zA-Z]{3,})(?:\s+-[a-zA-Z]+)*
Alternatively, if a pattern suggestion doesn't make sense for this project, add a #
to the beginning of the line in the candidates file with the pattern to stop suggesting it.
Errors, Warnings, and Notices :x: (4)
See the :open_file_folder: files view, the :scroll:action log, or :memo: job summary for details.
| :x: Errors, Warnings, and Notices | Count |
|---|---|
| :information_source: candidate-pattern | 1 |
| :x: check-file-path | 20 |
| :x: forbidden-pattern | 2 |
| :warning: large-file | 1 |
See :x: Event descriptions for more information.
If the flagged items are :exploding_head: false positives
If items relate to a ...
-
binary file (or some other file you wouldn't want to check at all).
Please add a file path to the
excludes.txtfile matching the containing file.File paths are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your files.
^refers to the file's path from the root of the repository, so^README\.md$would exclude README.md (on whichever branch you're using). -
well-formed pattern.
If you can write a pattern that would match it, try adding it to the
patterns.txtfile.Patterns are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your lines.
Note that patterns can't match multiline strings.
Closing, as the author does not intend to complete the PR.