Skip to content

404 Not Found page lacks document title metadata, falling back to generic site title #61

Open

Description

@0x5t4l1n

Website baseline: ac81655f4ac3aa1250023a3a9a5e3a93c00ac059 (website branch), checked locally on 2026-10-28.

Observed behavior

The 404 Not Found page component (src/app/not-found.tsx) does not export a Next.js metadata object or render a <title> tag.

When a user visits a non-existent URL (e.g. /404/ or any broken route), the document title remains the generic root layout fallback:
OWASP Hunting — Security Testing Documentation

This violates WCAG 2.4.2 Page Titled (Level A) and creates disorientation for screen reader users and users navigating browser history or open tabs, as there is no document title indication that a 404 error occurred.

Reproduction

  1. Navigate to /404/ or any non-existent page like /docs/nonexistent-route/.
  2. Inspect document.title or observe the browser tab title text.
  3. Observe that the title does not mention "404" or "Page Not Found", remaining identical to the site homepage.

Expected behavior

Export metadata in src/app/not-found.tsx:

export const metadata = {
  title: "404 - Page Not Found",
  description: "The requested page could not be found.",
};

This ensures the page title renders as 404 - Page Not Found — OWASP Hunting according to the title template in src/app/layout.tsx.

Note: This is distinct from #43, which addressed static export validator link checking; this report concerns the document title accessibility metadata of the 404 error page.

Marked screenshot

Marked evidence: 404 Not Found page lacks document title metadata, falling back to generic site title

Red boxes, numbered callouts and AUDIT ANNOTATION panels were added temporarily in the browser to identify the observation/request. They are not implemented website features. Capture notes.

Source

Scope and disclosure

Issue report only; no PR or website code changes. AI assistance: Google Antigravity (Gemini); browser investigation via Playwright, evidence annotations and report drafting. Checks were executed locally; payload examples remained inert text; no target testing was performed.

Activity

  1. Rishini-Dharan commented on Nov 5, 2026

    @Rishini-Dharan
    Contributor

    /take-pr

  2. Rishini-Dharan commented on Nov 5, 2026

    @Rishini-Dharan
    Contributor

    /take-pr

  3. github-actions commented on Nov 5, 2026

    @github-actions
    Contributor

    @Rishini-Dharan is now assigned to this issue.

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

Metadata

Metadata

Labels

WebsitebugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions