Skip to content

Follow up on homepage Lighthouse accessibility and SEO findings #1370

Description

@jderochervlk

Context

Follow-up to #1354 and the homepage performance stack ending in #1369. Track the remaining Lighthouse accessibility and SEO findings separately from performance and the deferred font-rendering investigation.

Baseline

Lighthouse 12.6.1, mobile, September 19, 2026: Accessibility 80 / SEO 58. These scores are the median of three runs; all three runs reported the same failed accessibility and SEO audits.

The findings below are captured here because CI report artifacts have limited retention. The preview SEO score is not a production SEO score.

Accessibility

  • color-contrast: improve the eight flagged elements. "Get started" and "Add Your Logo" use white on #e6484f (3.88:1); syntax tokens use #637cc1 on #14162c (4.38:1) and #954121 on #14162c (2.58:1); two installation captions use #979aad on white (2.78:1). The reported text sizes require 4.5:1. Check relevant interaction states as well.
  • heading-order: restore a logical heading hierarchy. "Language Manual" is rendered as an h5 that skips heading levels. Inspect sibling resource headings too; preserve visual styling independently of heading semantics.
  • link-name: name the four footer icon links. GitHub, X, Bluesky, and the forum links currently have no accessible name. Verify meaningful names and keyboard access.
  • meta-viewport: allow zoom and remove duplicate viewport declarations. Lighthouse reports two matching tags containing maximum-scale=1. Remove the zoom restriction and check mobile zoom/reflow.
  • target-size: fix the mobile template-card overlap. The ReScript & NextJS and ReScript & ViteJS links are reported as partially obscured, with only 8px of safe width and inadequate separation. Investigate responsive grid sizing and overlap, not just padding; verify usable targets across mobile widths and zoom levels.

SEO

  • robots-txt: investigate the HTML response for robots.txt. The preview report records 75 parsing errors because the response contains homepage HTML beginning with <!DOCTYPE html>, not robots directives. Check static-asset handling and route fallbacks. Serve a valid plain-text robots response with the intended status, content type, rules, and sitemap location; verify preview and production separately.
  • is-crawlable: verify production indexability while preserving preview protection. The failed preview audit identifies x-robots-tag: noindex. This is Cloudflare Pages' default behavior for preview deployments and should remain in place. Confirm that the production homepage is not unintentionally blocked by headers, metadata, or robots rules. Document the preview-only exception when interpreting scores; do not enable indexing of previews to improve Lighthouse.

Verification

  • Run fresh mobile and desktop Lighthouse reports against a completed Cloudflare deployment and record before/after reports and scores.
  • Resolve the actionable audit failures and document evidence for environment-specific exceptions.
  • Add focused regression coverage for accessible link names, viewport configuration, heading structure, and the deployed robots.txt response.
  • Manually check keyboard navigation, screen-reader link/heading navigation, and zoom/reflow. A Lighthouse score alone does not establish accessibility compliance.
  • Verify production crawlability without removing preview noindex.

No Lighthouse score thresholds should be introduced as part of this follow-up. Font flashing and JavaScript-based font-loading changes are outside this issue's scope.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions