fix(a11y): remove nested <main> landmarks under (home) layout

The (home)/layout.tsx already wraps children in <main>. Having another
<main> inside each child page produces nested landmarks, which is
invalid HTML and confuses screen readers.

Changed the outermost wrapper from <main> → <div> in:
- surfsense_web/app/(home)/page.tsx (homepage)
- surfsense_web/app/(home)/free/page.tsx (free AI chat landing)

Other (home) descendants (login/register/privacy/terms/changelog/
announcements/blog/contact/free/[model_slug]) were already using <div>.

Closes #1191
This commit is contained in:
xianren 2026-04-16 22:30:55 +08:00
parent 4e68565a72
commit 3f85f2a56b
2 changed files with 4 additions and 4 deletions

View file

@ -156,7 +156,7 @@ export default async function FreeHubPage() {
const seoModels = models.filter((m) => m.seo_slug);
return (
<main className="min-h-screen pt-20">
<div className="min-h-screen pt-20">
<JsonLd
data={{
"@context": "https://schema.org",
@ -382,6 +382,6 @@ export default async function FreeHubPage() {
</ul>
</nav>
</article>
</main>
</div>
);
}

View file

@ -16,7 +16,7 @@ const CTAHomepage = dynamic(() =>
export default function HomePage() {
return (
<main className="min-h-screen bg-gradient-to-b from-gray-50 to-gray-100 text-gray-900 dark:from-black dark:to-gray-900 dark:text-white">
<div className="min-h-screen bg-gradient-to-b from-gray-50 to-gray-100 text-gray-900 dark:from-black dark:to-gray-900 dark:text-white">
<AuthRedirect />
<HeroSection />
<WhySurfSense />
@ -24,6 +24,6 @@ export default function HomePage() {
<FeaturesBentoGrid />
<ExternalIntegrations />
<CTAHomepage />
</main>
</div>
);
}