Feat/retry action#188
Merged
Merged
Conversation
- Test navigation landmark and semantic list structure - Test all four recovery links (Home, Services, Stats, Docs) - Test keyboard accessibility with focus-visible outlines - Test dark mode styling - Achieve 100% code coverage
Add section explaining the semantic navigation landmark with quick-return links to primary surfaces (Home, Services, Stats, Docs) for improved user recovery and keyboard accessibility
- Replace inline button with Button component for consistency - Wrap error message in role=alert for screen reader announcement - Wire Try again button to reset() callback for transient error recovery - Log error.digest to console when present for debugging - Maintain production safety: no stack traces in DOM - Keep existing main landmark, heading, and dark-mode support
- Test rendering: heading, message, fallback copy, Try again button - Test Button component integration with proper styling - Test reset callback invocation on each click - Test production safety: no stack traces leak to DOM - Test console logging: error and optional digest - Test dark mode styling - Test accessibility: role=alert, keyboard operability - Test edge cases: undefined/empty messages, HTML escaping - Achieve 100% code coverage (28 tests)
- Explain accessible error presentation with role=alert - Document Try again button wired to reset() for retry - Note production safety: no stack traces in DOM - Describe debug support with console-logged digest - Highlight keyboard accessibility and dark mode support - Reference comprehensive test coverage
Contributor
|
lgtm — thanks for picking it up 🙌 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
I successfully wired the
reset()callback into the app error boundary with accessible recovery features. Here's what was accomplished:Changes Made:
Enhanced
src/app/error.tsx:Buttoncomponentrole="alert"for screen reader announcementreset()callback for transient error recoveryerror.digestwhen present (debugging without exposing to users)Created comprehensive tests (
src/app/error.test.tsx):Updated documentation (
README.md):Test Results:
Git Commits Created:
Three focused, separate commits:
5f8c04d- Wire reset() callback into error boundary with accessible recovery4e1e58d- Add comprehensive tests for error boundary recovery (28 tests, 100% coverage)ae58f2f- Document error boundary recovery features in READMEFiles Modified:
src/app/error.tsx(enhanced)src/app/error.test.tsx(created)README.md(documented)All acceptance criteria met! The error boundary now provides users with an accessible, keyboard-operable way to recover from transient failures without requiring a full page reload.
Closes #167