Files
oh-my-opencode/packages/web/app/[locale]/manifesto/page.tsx
T
YeonGyu-Kim e9c44ddb1b fix(web): drop nested <main> on manifesto (WCAG 1.3.1)
LocalizedPageShell at app/_components/localized-page-shell.tsx:34
already renders <main className='flex-1'>{children}</main> as the
page landmark. The manifesto/page.tsx shell was wrapping that with
its own <main>, producing nested main landmarks (axe-core:
landmark-no-duplicate-main + landmark-main-is-top-level).

Switch outer wrapper to <div>; keep styling (bg-background,
text-foreground, min-h-screen, overflow-x-hidden) intact. The
inner <main> from the shell remains the canonical landmark.

Pre-existing on origin/dev (the pre-decomposition manifesto/page.tsx
also had a top-level <main>), surfaced by PR #4202 hands-on QA
via axe-core run on /ko/manifesto.
2026-05-20 15:00:22 +09:00

30 lines
1.3 KiB
TypeScript

import type { JSX } from "react"
import { HeroSection } from "@/components/manifesto/sections/hero"
import { PainPointsSection } from "@/components/manifesto/sections/pain-points"
import { IndistinguishableSection } from "@/components/manifesto/sections/indistinguishable"
import { TokenCostSection } from "@/components/manifesto/sections/token-cost"
import { CognitiveLoadSection } from "@/components/manifesto/sections/cognitive-load"
import { PrinciplesSection } from "@/components/manifesto/sections/principles"
import { CoreLoopSection } from "@/components/manifesto/sections/core-loop"
import { FutureSection } from "@/components/manifesto/sections/future"
import { FinalCtaSection } from "@/components/manifesto/sections/final-cta"
import { Separator } from "@/components/ui/separator"
export default async function ManifestoPage(): Promise<JSX.Element> {
return (
<div className="bg-background text-foreground min-h-screen overflow-x-hidden">
<HeroSection />
<PainPointsSection />
<Separator className="mx-auto max-w-4xl opacity-20" />
<IndistinguishableSection />
<TokenCostSection />
<CognitiveLoadSection />
<PrinciplesSection />
<Separator className="mx-auto max-w-4xl opacity-20" />
<CoreLoopSection />
<FutureSection />
<FinalCtaSection />
</div>
)
}