Skip to content

fix(wpf): harden Timeline interaction and accessibility - #9

Merged
nicolasestrem merged 1 commit into
mainfrom
codex/wpf-timeline-accessibility
Aug 11, 2026
Merged

fix(wpf): harden Timeline interaction and accessibility#9
nicolasestrem merged 1 commit into
mainfrom
codex/wpf-timeline-accessibility

Conversation

@nicolasestrem

Copy link
Copy Markdown
Owner

Summary

  • activate Timeline restore points by double-click as well as Enter
  • read Timeline catalogs away from the UI thread with explicit loading and failure states
  • stack Compare cards at narrow widths and honor the Windows animation preference
  • add stable theme automation IDs and mark inactive alternative states offscreen
  • provide a readable fallback for missing snapshot diagnostics

This is fix set 2 of 4 and is intentionally stacked on #8.

Verification

Build succeeded.
    0 Warning(s)
    0 Error(s)
Passed!  - Failed:     0, Passed:   997, Skipped:     0, Total:   997, Duration: 6 s - WinRestoreKit.Tests.dll (net8.0)

Changed-file solution formatting and git diff --check passed. Added em dash lines: 0.

Computer Use rendered the isolated CodexVerify build and confirmed the populated Timeline and navigation. Input injection into that elevated test process is blocked by Windows integrity isolation, so full interactive verification remains scheduled on the disposable VM after all four stacked fix sets are combined.

@nicolasestrem
nicolasestrem marked this pull request as ready for review August 11, 2026 11:30
Base automatically changed from codex/wpf-lifecycle-navigation to main August 11, 2026 11:31
@nicolasestrem
nicolasestrem merged commit a5d8094 into main Aug 11, 2026
1 of 2 checks passed
@nicolasestrem
nicolasestrem deleted the codex/wpf-timeline-accessibility branch August 11, 2026 11:31

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d266a43b7e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +19 to +20
<Condition Binding="{Binding Events.Count}" Value="0" />
<Condition Binding="{Binding IsLoading}" Value="False" />

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Suppress the empty state after a refresh failure

When the initial catalog read throws, RefreshAsync leaves Events empty, records SelectionError, and then sets IsLoading to false. These two conditions therefore make the “No restore points yet” card visible at the same time as the refresh error, incorrectly telling users that no snapshots exist when storage was merely unreadable. Include the absence of HasSelectionError in this trigger so the failure state is shown instead of the empty state.

Useful? React with 👍 / 👎.

if (string.Equals(parameter as string, "Inverse", StringComparison.OrdinalIgnoreCase))
isOnscreen = !isOnscreen;

return isOnscreen ? IsOffscreenBehavior.Onscreen : IsOffscreenBehavior.Offscreen;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve computed offscreen state for visible elements

Returning IsOffscreenBehavior.Onscreen for every active element forces UI Automation to report it as onscreen even when it is clipped or below a ScrollViewer viewport. This occurs for active Confirm sections and for the detail card in the new narrow comparison layout, so assistive technology receives incorrect spatial state until the user scrolls to those controls. Return the default/clipping-aware behavior for active elements and reserve Offscreen for inactive alternatives.

Useful? React with 👍 / 👎.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant