Phase 6: QA fixes for Lighthouse and navigation

- Map is a titled iframe (accessibility); drop @next/third-parties
- "Services" nav toggle is a real button with aria-expanded (SEO
  crawlable-anchors, accessibility)
- Hero images use default quality; page-header image is preloaded (LCP)
- Mobile services submenu no longer clips its last item

Mobile Lighthouse: / 94/100/100/100, /services/computer-repair
96/100/100/100, /areas/henderson 97/100/100/100, /contact 95/100/100/100
(performance/accessibility/best practices/SEO).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
asownerytandClaude Opus 5.5 committed 2026-09-30 20:52:53 +13:00
1 parent 4d901b351e
commit 275bce3b87
7 files changed
+23 -33

No files matched your search

+5 -3
View File
@@ -87,13 +87,15 @@ export default function Navbar() {
data-state={isDropdownActive ? "open" : "close"}
className="flex items-center justify-center gap-1 [&[data-state=open]>svg]:rotate-180"
>
<a
<button
type="button"
aria-expanded={isDropdownActive}
className={`${styles.dropdownTitle}
${pathname === "/services" ? styles.active : ""}`}
${pathname.startsWith("/services") ? styles.active : ""}`}
onClick={handleDropdownToggle}
>
Services
</a>
</button>
<ChevronDownIcon className="text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" />
</div>
<ul className={styles.dropdownMenu}>