feat: preserve focus and catalog context during public navigation
Quality / test (push) Canceled after 0s
Quality / test (push) Canceled after 0s
This commit is contained in:
@@ -70,3 +70,22 @@ Remaining manual coverage: native browser zoom, screen-reader speech and route
|
||||
announcements (VoiceOver/Safari or NVDA/Firefox), and the full live-data navigation
|
||||
journey. Automated checks and accessibility-tree inspection do not certify WCAG
|
||||
conformance or replace those reviews.
|
||||
|
||||
## Public route navigation — 2026-09-10
|
||||
|
||||
- Catalog cards use router links with ordinary URL/open-in-new-tab behavior.
|
||||
- Catalog and public detail pages set descriptive browser titles. Detail titles
|
||||
update to the product name or error message after loading.
|
||||
- Entry focuses the named main landmark with a visible keyboard outline. It is
|
||||
programmatically focusable (`tabindex=-1`) without adding an extra Tab stop.
|
||||
Query updates and asynchronous results do not move focus again.
|
||||
- Filtered catalog links carry their origin in `from`; “Back to catalog” restores
|
||||
that URL. Only `/` and catalog query URLs are accepted; external or non-catalog
|
||||
destinations fall back to `/`. Browser Back retains its normal history behavior.
|
||||
- Three public Playwright tests exercise keyboard navigation, query preservation,
|
||||
browser Back, direct product links, not-found titles, safe return URLs, and a
|
||||
delayed response while focus remains on the return link. They intercept public
|
||||
API responses and do not require credentials or mutate production data.
|
||||
|
||||
These checks verify browser focus, titles, and navigation behavior. Screen-reader
|
||||
speech and native browser zoom remain manual follow-ups from the earlier review.
|
||||
|
||||
@@ -131,14 +131,22 @@ Verified locally: `npm test` passes 166 tests with no failures (23 domain, 79 ap
|
||||
- Coverage includes validation/partial-update/clearing tests, public HTTP contracts, PostgreSQL repository reads, settings edit/clear interactions, both public page integrations, and absent/plain-text/dark-theme component stories.
|
||||
- Validation: 166 API tests, 23 isolated PostgreSQL/Redis integration tests, 10 web tests, production web build, Storybook build, and Storybook interaction/accessibility runner (32 suites / 84 tests).
|
||||
|
||||
### Latest Vertical Slice: Public Browsing Accessibility
|
||||
### Public Browsing Accessibility
|
||||
|
||||
- Public gallery labels use API image descriptions, controls wrap at narrow widths, and failed API image URLs have an accurate accessible fallback.
|
||||
- Long detail text and seller contacts reflow, read-only condition badges no longer add inactive buttons to keyboard navigation, and detail loading/errors expose announcement roles.
|
||||
- Added keyboard, 320px reflow, 200% text enlargement, and detail-state regression stories. Browser review and its native-zoom/screen-reader limitations are recorded in `docs/ACCESSIBILITY.md`.
|
||||
- Validation: 166 API tests, 10 web tests, production web build, Storybook build, and 32 Storybook suites / 93 tests. This frontend-only slice changes no persistence or API contracts.
|
||||
|
||||
Next bounded slice: public route navigation accessibility. Review catalog → listing/product → back navigation with a screen reader, add appropriate page titles and route-focus handling where missing, and cover navigation in browser tests. Include native 200% zoom review.
|
||||
### Latest Vertical Slice: Public Navigation Accessibility
|
||||
|
||||
- Catalog cards use router links; catalog and detail pages have descriptive titles and named, focused main landmarks on entry.
|
||||
- Async responses and query updates preserve user focus. Filtered catalog URLs survive the explicit return link and browser Back; return destinations are restricted to the catalog.
|
||||
- Added three public browser navigation tests and return-path validation coverage; updated page/card Storybook interactions.
|
||||
- Validation: 166 API tests, 11 web tests, 3 public Playwright tests, production web build, Storybook build, and 32 Storybook suites / 93 tests. No API or persistence changes.
|
||||
- Screen-reader speech and native browser zoom remain manual review items; this slice verifies browser focus and title behavior.
|
||||
|
||||
Next bounded slice: clearing configured seller contact methods. The Settings form currently converts blank email/phone values to omitted fields, so the server's partial-update merge retains old contacts. Support explicit removal through validation, settings UI/API, and public detail output, with edit/clear regression coverage.
|
||||
|
||||
## Next Milestone
|
||||
|
||||
|
||||
Reference in New Issue
Block a user