UI: No image fallback/loading states for hero section images #197
Labels
No Label
P0
P1
P2
P3
accessibility
backend
bug
content
data-integrity
enhancement
frontend
infra
integration
owner
owner-input
performance
phase-7
phase-8
release-blocker
security
seo
ui
ux
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: null/Queue-North-Website#197
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Severity: Minor
Description: All hero sections embed images directly without
onErrorfallback or skeleton loading. If assets fail, users see broken image placeholders.Files:
src/pages/Home.jsx,src/pages/About.jsx,src/pages/Services.jsx,src/pages/Industries.jsx,src/pages/Support.jsx,src/pages/NotFound.jsxFix direction: Add fallback images or CSS background gradients to prevent empty space.
Closing as no change required — the failure this guards against does not occur, and I checked rather than assumed.
The concern is 'if assets fail, users see broken image placeholders'. Measured against the live site (v0.9.4):
document.imagesfiltered on!(complete && naturalWidth > 0)returns 0 of 7 on Home once every lazy image has been scrolled into view.loading="eager". Nothing to improve there either.One honest correction to my own method: an intermediate measurement reported 1 broken image on Home. That was
veteran-owned-certified.webp, and it was a false positive in my check — the image isloading="lazy"and below the fold, so the browser had not requested it yet andnaturalWidthwas legitimately 0. It loads fine when scrolled to, and the URL returns 200. Recording that because the same check will mislead the next person who runs it.So: there is genuinely no
onErrorhandler anywhere in the codebase, and that remains true. But adding fallbacks to ten images to guard a failure that does not happen — on images served from the same origin as the app, where a 404 would mean the deploy itself was broken — is work with no defect behind it.If image robustness is wanted as a policy rather than a bug fix, that is a different issue and should say so.
Verify: load https://queuenorth.com/, scroll to the bottom, and evaluate
[...document.images].filter(i => !(i.complete && i.naturalWidth > 0)).length— it is 0.