Skip to content

fix(homepage): improve mobile carousel targets and contextual links #97

Open

Description

@cryptasian

Parent: #31

Outcome

Make the existing mobile Services/Work carousel pagination comfortably targetable and give the reported service/privacy links clear destination names, resolving the concrete navigation findings in the released production homepage audit.

Context and authorization

The authorized production audit after PR #94 found mobile accessibility score 97 and SEO score 92 in Google PageSpeed's mobile report. Desktop accessibility is 100 and SEO is 92 in the desktop report.

Expanded report findings identify:

  • Small, closely spaced button.h-2 pagination targets in ServicesCarousel and WorkCarousel, including Development & Integration, Revenue Flows & Marketing Ops, AI & Data Analysis, Scruggs Tire & Alignment, and I Heart PR Tours. Their visual dots are 8 px; enlarge the interactive hit areas rather than the decorative dots alone.
  • Generic Learn more service-card labels for /services/strategy-brand, /services/development, /services/marketing, and /services/ai-data in an unscored identical-link-purpose diagnostic. This diagnostic is not by itself a proven WCAG failure; make the intended service destination explicit in the accessible link name.
  • The cookie notice's Learn more link to /privacy in the scored SEO link-text audit, on both profiles.

The existing specification §6.11 currently prescribes the cookie link's Learn more copy. Reconcile that contract with the chosen descriptive copy in the same implementation slice; do not silently create a specification mismatch.

Authority: #31's production audit, #93 and #95's released mobile interaction contracts, PR #94, the PageSpeed evidence above, and the 2026-09-18 UTC audit record on #31.

Scope

  • Adjust the hit areas and spacing of existing mobile carousel pagination while preserving compact decorative dots, selected state, tab semantics, focus visibility, swipe behavior, and existing mobile layout.
  • Give service links destination-specific accessible names and use clear privacy-link copy, preserving destinations and the consent behavior.
  • Check repeated destinations for sensible, contextual link names rather than treating every differently worded contextual link as invalid.
  • Update the affected specification contract and changelog.

Excluded: rebuilding the carousels, changing editorial/service copy, changing analytics consent, altering desktop natural scrolling, the #62 hero redesign, or claiming a complete manual accessibility certification from an automated score.

Acceptance criteria

  • The reported mobile target-size/spacing failures are resolved with usable hit areas and visible focus at representative mobile widths.
  • Mouse/touch, swipe, and keyboard pagination still select the expected card without horizontal overflow or layout regression.
  • Reported service links have destination-specific accessible names, and the privacy link has descriptive text with the same /privacy destination.
  • Consent semantics remain unchanged and the updated copy agrees with the specification.
  • Automated target/link audits are rerun on the final production homepage; previously failing elements are absent. Any remaining diagnostics are explained with evidence.
  • Required tests, build, typecheck, and lint pass; relevant desktop/mobile, theme, and focus checks are recorded.
  • Production evidence is linked before closure. Passing these findings alone does not close company(epic): strengthen service proof and the company narrative #31's performance or unverified INP gate.

Dependencies and slice

Depends on: none.

Coordinates with #31, the accompanying mobile initial-paint repair, and completed #93/#95. Bundle this small repair with the initial-paint repair when review and validation stay coherent, while retaining acceptance evidence for both issues.

Classification basis

Priority P1 follows the parent release's mobile usability/quality requirements and visible production control defect. Effort S is an estimate for focused changes to the two pagination controls and link labels plus their verification; revise if testing exposes a broader interaction defect.

Linked audit and implementation slice

Complete production audit evidence. Bundle with #96 when validated and reviewed coherently; neither issue's inclusion closes it before its own acceptance criteria pass.

Implementation verification — PR #99

Implementation/local checklist items above are complete on source 71ccb6f, with all repeated results and validation and passing exact-source CI. These checks describe reviewed code and local evidence; they do not advertise merged/deployed behavior.

All 24 final cold HTTP/2 lab runs pass every numeric budget (mobile scores 98–99, LCP 2.12–2.34s; desktop scores 100). Original production transport is h2, and the controlled baseline uses the identical local proxy/settings. Earlier HTTP/1.1 and failed trials remain disclosed among 198 reports. Final production acceptance remains unchecked; this issue, parent #31 and the milestone remain open with needs: verification. Protected preview access requires explicit session authorization after automatic approval review rejected it.

Activity

  1. added
    bugSomething isn't working
    priority: P1High: required near-term capability, visible defect, or release gate
    area: accessibilityKeyboard, screen reader, contrast, reduced motion, and WCAG conformance
    effort: SUp to half a day: one module or focused surface
    area: homepageHomepage narrative, sections, motion, and conversion journey
    area: contentCompany copy, case studies, research, and content modeling
    on Sep 18, 2026
  2. cryptasian commented on Sep 18, 2026

    @cryptasian
    ContributorAuthor

    Implemented in draft #99: all seven mobile pagination controls retain stable 44-by-44px bounds and decorative 8px dots, selected-tab semantics, 2px focus outline and existing swipe behavior. Service links name their destinations; Privacy policy retains its existing href and Accept/Decline semantics.

    Local 320/390px browser checks show no horizontal overflow; click/Enter select the expected cards. Synthetic touch and consent regression tests pass. All final local audit runs report accessibility and SEO 100; this is automated lab evidence, not complete accessibility certification. Detailed validation includes keyboard, theme, process-content and scripting-disabled server-response checks.

    Standard Linux CI passes on implementation ee585d3 (run 35303019017): lint, typecheck, production dependency audit, seven contrast tests, 153 unit/editorial tests, eight Firebase integration tests, one optimized-publication/cache-convergence test and production build. Windows equivalent direct publication invocation passes; normal npm.cmd wrapper portability is separately tracked in #98. Existing moderate Firebase dependency findings remain on #42.

    Vercel built the implementation preview successfully, but its alias requires sign-in. Authorized HTTPS preview checks and final production measurements remain pending; no protection setting was changed. No production deployment, issue/milestone closure or field-INP success is claimed.

    #97 remains open for its final production verification; #99 uses non-closing references. #96's unresolved performance budget is explicitly retained in the same coherent repair slice.

  3. added
    needs: verificationRequires reproduction or environment-specific verification before closure
    on Sep 18, 2026
  4. cryptasian commented on Sep 18, 2026

    @cryptasian
    ContributorAuthor

    Implementation completed in PR #99, source 71ccb6f. The local implementation checklist is updated, and all 24 final cold HTTP/2 runs pass every approved numeric budget. Mobile scores are 98–99, LCP 2.12–2.34s, FCP 0.90–1.06s and CLS zero; all desktop scores are 100. Per-run evidence, retained failures and protocol/provenance details; exact-source CI passes all required checks.

    44px targets, contextual service/privacy names and unchanged consent have local regression/browser evidence. This is local implementation evidence, not final production closure. Final production audits and the parent field-data gate remain open. Protected preview session access was rejected by automatic approval review pending explicit authorization, which has been requested.

  5. self-assigned this
    on Sep 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area: accessibilityKeyboard, screen reader, contrast, reduced motion, and WCAG conformancearea: contentCompany copy, case studies, research, and content modelingarea: homepageHomepage narrative, sections, motion, and conversion journeybugSomething isn't workingeffort: SUp to half a day: one module or focused surfaceneeds: verificationRequires reproduction or environment-specific verification before closurepriority: P1High: required near-term capability, visible defect, or release gate

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions