Repository navigation
[Bug]: Cross-app — controls announced with other words than they show, final actions with no spoken warning, a DNS row that tabs backwards #2883
Copy link
Copy link
Open
Labels
bugSomething isn't workingSomething isn't workinguxVisual or interaction improvementVisual or interaction improvement
Description
Problem
- Names that do not contain the visible words.
EveryLabelledControl_IsAnnouncedWithTheWordsPrintedOnItchecks only buttons and toggles whose label is a literalContentand whose name is literal, so bound names, labels made of child TextBlocks, hyperlinks and switches labelled by a neighbouring TextBlock are never checked. Eight fail the rule: for example, System Health's chkdsk row shows "Scan" and is announced "Run chkdsk on drive C:", and Duplicate Finder shows "Keep this one" and is announced "Keep {file} instead". Someone using Voice Access or Dragon who says the words on screen matches nothing, and Narrator reads other words than the ones shown. - Final actions with no warning for a screen reader.
EveryImmediatelyDestructiveButton_ExplainsWhatItWillDorequiresAutomationProperties.HelpTexton controls that do something the user cannot take back, because Narrator users never see the red fill and the confirmation only comes after activation. It reads a hand-kept list of five commands. Seven more do something just as final and have no HelpText, among them File Lock Detector's "End process" (the same kill as Process Manager's, which is on the list) and Deep Cleanup's "Clean selected". - The DNS row tabs backwards. On DNS & Hosts, Reset to DHCP, Apply and Undo are docked right and declared before the preset picker, so Tab goes Reset to DHCP, Apply, Undo, then the picker, the reverse of what is on screen. A keyboard user entering the card lands first on a button that changes the PC's DNS. Bulk Installer's search row has the same shape: Tab reaches Search before the box.
- A countdown read out every second. After Apply on Display Profiles, a one-second timer rewrites
StatusMessage("Keep these settings? Reverting in 14s…"), and the status line is a live region, so Narrator queues about fifteen near-identical sentences while the user tries to reach Keep, and keeps speaking after the display has reverted. Nothing moves focus to Keep.NoProgressCallback_WritesAnAnnouncedLinecovers progress callbacks, not timer ticks.
Steps to reproduce
- With Narrator on, open System Health and move to a chkdsk row's Scan button: it is read as "Run chkdsk on drive C:".
- On DNS & Hosts, press Tab into the DNS card: focus lands on Reset to DHCP first.
Expected behavior
Each control's name starts with the words it shows, every final action says what it does before it is pressed, focus follows the order on screen, and a countdown is announced once.
Proposed fix
- Start each name with the visible words and add context after them ("Scan drive {0}", "Keep this one: {0}"), or use
AutomationProperties.LabeledByfor switches labelled by a neighbour, and extend the guard to bound names and child-TextBlock labels. - Add the seven commands to
DestructiveControlsand give each a HelpText sentence. - Lay the DNS row and Bulk Installer's search row out in visual order (a Grid, or the box first and the buttons after it).
- Set the Display Profiles status once when the countdown starts and once when it ends, keep the seconds in the warning bar, which is not a live region, and move focus to Keep; extend the announced-line guard to
DispatcherTimer.Tickhandlers.
Affected tab
System Health, Duplicate Finder, File Lock Detector, Deep Cleanup, DNS & Hosts, Bulk Installer, Display Profiles.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workinguxVisual or interaction improvementVisual or interaction improvement
Activity