Skip to content

Main window, reading structure and keyboard #5

Description

@PlanetLinux98

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.
  • Ctrl+1 to Ctrl+9 switch saved locations (Locations: find, save, switch and manage #1, 59d2a41).
  • Ctrl+Shift+A jump to Alerts; Enter on an alert line opens its details (Alerts for Canada and the US #4).
  • Ctrl+H hour by hour (0.2.0, Hour-by-hour dialog and air quality #10); F1 help (Release readiness for v0.1.0: icon, About, help, user guide, winget #8).
  • Menus complete: File (Refresh, Exit), View and Settings (Settings dialog and settings store #6) exist; Locations has Manage, Add and the saved list with Ctrl+1..9 (59d2a41); Help > Help (Release readiness for v0.1.0: icon, About, help, user guide, winget #8) still to come. Help > About exists with the Open-Meteo credit only.
  • 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 Sources line closes the text.
  • About carries the licences (Open-Meteo CC BY 4.0, MeteoAlarm CC BY 4.0, NWS and Environment Canada acknowledgements) (Release readiness for v0.1.0: icon, About, help, user guide, winget #8).
  • English only in 0.1.0.
  • 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    accessibilityBarrier affecting people with disabilitiesenhancementNew feature or request

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions