Conversation
Presentational-only quality pass. No business logic, auth, payments, realtime, RLS, or CSP changes. - a11y: skip link + main landmarks; shared accessible Dialog (focus-trap, Esc, scroll-lock) applied to all 5 modals; KDS aria-live new-ticket announcements; labelled controls/buttons; visible focus rings; aria-current. - perf: next/font (self-hosted Inter), lazy-loaded admin tab panels via next/dynamic, React.memo on KDS TicketCard + MenuBrowse, loading skeletons. - PWA: enriched manifest (id/lang/categories/screenshots), Serwist offline fallback page, install prompt, theme-color meta. - SEO: root + per-route metadata, OG/Twitter for home + storefront, favicons, robots.ts + sitemap.ts (storefront indexable, app surfaces noindex). - UX: consistent empty states, error boundaries (per-surface + root + global), action toasts; modernized home copy. Build + 160 Vitest tests stay green with zero env vars. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Add the #main-content landmark to the sign-in form, forbidden, platform console, signup wizard, and order-tracking surfaces so the skip link is focusable everywhere (fixes Lighthouse "skip links are not focusable" on the login page). Presentational only. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Quality polish pass — presentational/quality only. No business logic, auth, payments, realtime, RLS, security headers, or data-model changes. Build + 160 Vitest tests stay green with zero env vars.
Highlights
Accessibility (WCAG AA)
id="main-content"landmark on every surface (incl. login/forbidden/track).Dialog(focus-trap, Esc, scroll-lock, focus restore) applied to all 5 modals (pizza builder, terminal cart, customer cart, staff switch, payment).aria-liveannouncements for new tickets; per-orderaria-labels on Bump/Recall/Print and ticket cards.:focus-visiblerings (Button + global native elements); labelled inputs/buttons;aria-current/aria-pressed/aria-invalid; decorative iconsaria-hidden.Performance
next/font(self-hosted Inter via--font-sans) — CSP-safe, builds offline.next/dynamic+ skeleton fallback (9 managers code-split out of the initial bundle).React.memoon KDSTicketCardandMenuBrowse; loading skeletons across terminal/shop/KDS/admin.PWA
id,lang,categories,screenshots); maskable icons + theme/background colors retained./offline); dismissible install prompt;theme-colormeta.SEO / metadata
robots.ts+sitemap.ts: storefront + home indexable, app surfacesnoindex.UX states
error.tsx, rooterror.tsx,not-found.tsx,global-error.tsx); action toasts (aria-live); modernized home copy.Lighthouse (desktop preset)
Before = production (
main); After = this preview.//shop/[slug]/terminal(→ /login)* The −3 Best-Practices delta is Vercel Live's preview-only feedback script being blocked by the app's strict CSP (a console error Lighthouse counts). It does not appear in production and actually confirms the CSP is working — the app itself ships no inline/3rd-party scripts.
** SEO is capped on previews by Vercel's automatic
X-Robots-Tag: noindexheader on all preview deployments (Lighthouse penalizes "blocked from indexing"). In production the new metadata/OG/robots/sitemap apply and this header is absent. Verified on the preview via curl: title templates, OG/Twitter tags, favicons, and a correctrobots.txt+sitemap.xmlare all present.Verification
npm run build(zero env),typecheck,lint— all clean.npm run test:run— 160/160./,/shop/[slug],/robots.txt,/sitemap.xml,/manifest.webmanifest,/offline,/og.png,/favicon.svgall 200; CSP header intact.See
plans/quality-polish.mdfor the full change list.🤖 Generated with Claude Code