Festlegen der Dokumentsprache

Deklaration der Seitensprache für Barrierefreiheit und SEO

Problem

Eine Webseite wird auf Französisch angezeigt, aber das HTML-Dokument selbst ist nicht als solches gekennzeichnet (z. B. <html lang="en">). Diese fehlende Sprachdeklaration führt dazu, dass Screenreader versuchen, den französischen Inhalt mit englischer Phonetik auszusprechen. Sie verhindert auch, dass Browser automatische Übersetzungen anbieten, und beeinträchtigt die Indexierung durch Suchmaschinen.

Lösung

Lesen Sie den lang-Parameter aus der URL in der Root-Layout-Komponente. Übergeben Sie diesen lang-Parameter an das lang-Attribut des <html>-Elements. Dies deklariert explizit die Sprache des gesamten Dokuments gegenüber Browsern und assistiven Technologien.

Schritte

1. Zugriff auf den lang-Parameter im Root-Layout

Im Next.js App Router erhält die layout.tsx-Datei innerhalb eines dynamischen Segments (wie [lang]) automatisch den Wert dieses Segments als params-Prop.

2. Setzen des lang-Attributs am <html>-Element

Ändern Sie Ihre app/[lang]/layout.tsx-Datei so, dass sie die params-Prop akzeptiert und deren lang-Eigenschaft auf das lang-Attribut des <html>-Tags anwendet.

// app/[lang]/layout.tsx

export default function RootLayout({
  children,
  params,
}: {
  children: React.ReactNode;
  params: { lang: string };
}) {
  return (
    <html lang={params.lang}>
      <body>{children}</body>
    </html>
  );
}

Dies stellt sicher, dass eine Anfrage an /fr/about zu einer gerenderten Seite führt, die mit <html lang="fr"> beginnt. Diese einfache Änderung informiert Screenreader, Suchmaschinen und Browser korrekt darüber, in welcher Sprache der Inhalt verfasst ist.