You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The main window: how the text is structured and navigated, the menus, shortcuts, status bar, and what the window remembers.
Decisions and progress
Everything is one read-only multiline text box so a screen reader user can arrow, select and copy. Each section starts with a heading line (Alerts; Right now; Rest of today; Saturday; Sun and UV; Details; Sources).
Where Sun and UV and Details belong. Decided 2026-09-25: everything that is current conditions goes into Right now (Details folds in, humidity said once); the sun and UV go wherever reads best, likely the end of Rest of today, with the UV left out where Environment Canada's text already gives it. Next after Locations: find, save, switch and manage #1's Coordinates button.
Section jumps: Ctrl+PageDown / Ctrl+PageUp move the caret to the next / previous heading. Ctrl+Up/Down are deliberately not used: NVDA (2024.1+) and JAWS use them for paragraph navigation.
F5 refresh; Ctrl+L Manage Locations, Ctrl+Shift+L Add Location (59d2a41). All shortcuts visible in the menus.
Refresh automatically while open (forecast every 30 minutes, alerts every 10; both adjustable in Settings). An automatic refresh never moves focus or the caret: the text is replaced and the caret restored to the same heading and distance into it (SectionLayout.MapCaret); F5 and the alerts rewrite use the same mapping. A rewrite is skipped while the user has a selection.
Freshness: an age line only when the data is stale, as the first line under Right now, and the exact time in the status bar. Built 2026-09-14: nothing while fresh; "Showing the forecast from 45 minutes ago." from 30 minutes; "Showing the forecast from 5 minutes ago; couldn't reach the weather service." when a refresh failed and left older text on screen (a failure the user asked for is also spoken). The heading stays plain "Right now". The station observation keeps its own time in the sentence ("As of 3:20 am, Albany International Airport reports ..."). The cached-at-launch case is Cache and offline behaviour #7's.
The window remembers size, position and maximized state, restoring only if the saved position is on a current screen.
The window scales with the display scale and the Windows Text size setting, in the system font; the status bar keeps its text at the minimum width; dialogs keep their buttons on screen when clamped to a small screen.
Accessibility
Accessible names equal visible text throughout; explicit tab order; the AccessibilityLint test, tools/Dump-A11y.ps1 and tools/Show-Scaled.ps1 are run before hand-off; NVDA has the final say.
The main window: how the text is structured and navigated, the menus, shortcuts, status bar, and what the window remembers.
Decisions and progress
SectionLayout.MapCaret); F5 and the alerts rewrite use the same mapping. A rewrite is skipped while the user has a selection.Accessibility
AccessibilityLinttest,tools/Dump-A11y.ps1andtools/Show-Scaled.ps1are run before hand-off; NVDA has the final say.