Repository navigation
[Bug]: Cross-app — faded and mis-coloured labels fall below 4.5:1, disabled fields look editable, and mode pills and theme swatches show no hover #2882
Copy link
Copy link
Open
Labels
bugSomething isn't workingSomething isn't workinguxVisual or interaction improvementVisual or interaction improvement
Description
Problem
- Opacity on muted text takes it back under the contrast floor.
ThemeTextContrastTestskeepTextMutedandTextSecondaryat 4.5:1 or better on every surface, and these lines then add an elementOpacityof 0.6, 0.65 or 0.7, which blends the text into its background. On the default Midnight Indigo, blending the way WPF composites: Privacy & Telemetry's category label 2.98:1, Notification Blocker's app ID line and Preinstalled Apps' package name about 3:1, App Blocker's "N blocked" footer and Shortcut Cleaner's scanning line 3.75:1, the sidebar's "by laurentiu021" about 3.7:1, and the collapsed sidebar groups' subtitles, on every page, about 4.15:1 (3.43:1 on Clean Indigo). All of it is information, not decoration, and no test looks atOpacity. - Quick Tune-Up's label ignores the colour for text on the accent. The Dashboard's Quick Tune-Up button puts its glyph and label in TextBlocks of the view, so the app's keyless TextBlock style paints them
TextPrimaryover the accent fill instead ofTextOnAccent, which the button template passes down. That is 1.93:1 on Warm Ember and 4.02:1 on Midnight Indigo, below 4.5:1 on 11 of the 12 presets. Every other primary button uses string content and keepsTextOnAccent;DiskAnalyzerView's map tiles document this trap. - Disabled text boxes and drop-downs look editable. The
TextBoxandComboBoxtemplates inApp.xamlhave noIsEnabledtrigger, while buttons, switches, sliders and checkboxes all dim. On Dark Mode Scheduler, where the schedule is off by default, the two time boxes sit in a disabled grid and look ready to type in; clicking gives no caret. Gaming Profile's game picker looks live while game mode is on. - No hover on several controls.
ModePillhas only anIsCheckedtrigger, so the Appearance panel's Dark/Light/Auto/Custom switch, Browser Cleaner's "Browsing data / Extensions" and Privacy & Telemetry's "By topic / By reach" change nothing under the pointer but the cursor. The theme preset cards and the four custom colour swatches have no hover either, and the toast's close button is a bareBorderwith no triggers.
Steps to reproduce
- On Midnight Indigo, open Privacy & Telemetry and read a row's category label, then hover the "By topic / By reach" switch.
- Switch to Warm Ember and look at the Dashboard's Quick Tune-Up button.
- Open Dark Mode Scheduler with the schedule off and click a time box.
Expected behavior
Every text line meets 4.5:1, a disabled field looks disabled, and every control the pointer can reach reacts to it.
Proposed fix
- Drop the element
Opacityand useTextMutedorTextSecondaryas they are; if a fainter step is wanted, add a derived brush and put it inThemeTextContrastTests. A guard that rejectsOpacitybelow 1 on aTextBlock, or on a panel holding one, unless listed with a reason. - Give Quick Tune-Up's TextBlocks
Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType=Button}}", or move them into aContentTemplate, and extend the themed-fill guard to TextBlocks inside a filled button. - An
IsEnabledtrigger at 0.5 opacity (the checkbox value) in theTextBoxandComboBoxtemplates. - An
IsMouseOvertrigger toAccentSoftinModePill, before theIsCheckedone, a hover for the preset cards, the swatches and the toast's close button, and a guard that every button-like template has anIsMouseOvertrigger.
Affected tab
Privacy & Telemetry, Notification Blocker, Preinstalled Apps, App Blocker, Shortcut Cleaner, the sidebar, Dashboard, Dark Mode Scheduler, Gaming Profile, Browser Cleaner, the Appearance panel and toasts.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workinguxVisual or interaction improvementVisual or interaction improvement
Activity