Lorenz: Sprachangabe im HTML-Header <html lang="de"> vs. <meta name="lan

Hallo,

ich habe eine deutsche Website erstellt und weiß nun nicht genau, wie ich die Dokumentensprache im Header definiere.

Ich würde es wie folgt angehen:

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8" />
<title>Startseite</title>
<meta name="language" content="de" />
</head>

Nur: Was genau ist der Unterschied zwischen <html lang="de"> und <meta name="language" content="de" /> ?
Müsste ich - obwohl sich auf den Seiten deutscher Fließtext befindet - <html lang="en"> verwenden, da es sich bei der Angabe um die Sprache des HTML-Quelltextes handelt, welcher immer englisch ist?

Im Netz habe ich veraltete und teils widersprüchliche Informationen zu dem Thema gefunden, mit der Sufu hier im Forum finde ich auf Grund der Häufigkeit der Wörter auch nichts.

Grüße
Lorenz

  1. Hallo,

    ich habe eine deutsche Website erstellt und weiß nun nicht genau, wie ich die Dokumentensprache im Header definiere.

    Ich würde es wie folgt angehen:

    <!DOCTYPE html>

    Nicht so?
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    <html lang="de">
    <head>
    <meta charset="utf-8" />
    <title>Startseite</title>
    <meta name="language" content="de" />
    </head>

    Nur: Was genau ist der Unterschied zwischen <html lang="de"> und <meta name="language" content="de" /> ?
    Müsste ich - obwohl sich auf den Seiten deutscher Fließtext befindet - <html lang="en"> verwenden, da es sich bei der Angabe um die Sprache des HTML-Quelltextes handelt, welcher immer englisch ist?

    Sicher nicht. Schon mal deutschen HTML-Quelltext gesehen?

    Im Netz habe ich veraltete und teils widersprüchliche Informationen zu dem Thema gefunden, mit der Sufu hier im Forum finde ich auf Grund der Häufigkeit der Wörter auch nichts.

    Grüße
    Lorenz

    Grundsätzlich machst du ja diese Angaben wegen google und wegen der Barrierefreiheit. Zu letzterem kann ich nicht viel sagen, zu google habe ich allerdings folgendes gefunden:
    Auszug aus google-webmaster-zentrale (Forum)

    "meta Tag language angeben oder nicht ?
    Ist es für das Ranking positiv wenn man deutschen Text mit teils englischen Wörtern hat eines oder mehrere meta Tags bezüglich language anzugeben oder nicht ?
    Ich habe hier keine hilfreiche Antwort von Google gefunden.

    Hallo GM!

    Was das Ranking bei Google angeht - Google ignoriert alle Sprachauszeichnungen im Code und verlässt sich ausschließlich auf die eigene Spracherkennungs-Logik. Darum brauchst Du Dir also keine Sorgen zu machen.

    Ich empfehle Dir dennoch folgende Auszeichnungen, da die Welt nicht nur aus Google besteht:

    Falls Du eine XHTML-Datei hast:
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">

    Ferner <meta name="language" content="de" /> und <body lang="de"> (oder <body xml:lang="de" lang="de">).

    Im Hinblick auf Vorleseprogramme zeichne zumindest ich nicht-deutsche Begriffe und Abschnitte auch aus:
    <span lang="en-US">E-Mail</span>
    <span lang="fr">Emaille</span>

    Wenn Du Dir 'mal eine Seite ohne diese Auszeichnungen anhörst, wo solche Begriffe vorkommen, ärgerst Du Dich spätestens beim ersten Vorkommen von "Downloads" (spricht das 'mal deutsch aus ;-) ).

    Freundliche Grüße, Thomas"

    Ich hoffe dir damit geholfen zu haben.

    gruss
    pat

    1. <span lang="en-US">E-Mail</span>

      "e-mail" oder "email", E-Mail gibt es in der englischen Sprachen nicht.

      Ein passendes Beispiel wäre folgendes:

      <p lang="en"><span lang="en-US">sidewalk</span>, <span lang="en-UK">pavement</span> or <span lang="en-AU">footpath</span></p>

    2. @@__pat__:

      nuqneH

      <!DOCTYPE html>
      Nicht so?
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

      Hängt davon ab, ob man XHTML 1.0 oder (X)HTML5 schreiben möchte.

      Grundsätzlich machst du ja diese Angaben wegen google und wegen der Barrierefreiheit.

      Nein. [LANG-WHY]

      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">

      Ferner <meta name="language" content="de" /> und <body lang="de"> (oder <body xml:lang="de" lang="de">).

      @lang (@xml:lang) für 'body' ist völlig überflüssig, wenn für sein Elternelement 'html' schon dasselbe angegeben ist.

      Im Hinblick auf Vorleseprogramme zeichne zumindest ich nicht-deutsche Begriffe und Abschnitte auch aus:
      <span lang="en-US">E-Mail</span>

      Nein.

      (1) Nicht "en-US", sondern "en". “Always bear in mind that the golden rule is to keep your language tag as short as possible. Only add further subtags to your language tag if they are needed to distinguish the language from something else in the context where your content is used.” [CHOOSING-LANGUAGE-TAGS]

      (2) Hier gar nicht. Screenreeder sollten in der Lage sein, auch im Deutschen häufig verwendete Lehnwörter richtig auszusprechen. „E-Mail“ sollte da überhaupt keine Probleme bereiten. Wird dafür eine andere Sprache angegeben, verwendet der Screenreader eine andere Stimme; und das will man ganz sicher nicht.

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
  2. @@Lorenz:

    nuqneH

    Nur: Was genau ist der Unterschied zwischen <html lang="de"> und <meta name="language" content="de" /> ?

    Das eine ist die Angabe der Sprache des Textes (des Bereiches des Dokuments), das andere ist Meta-Information über das Dokument. Siehe Two types of language declaration. [LANGUAGE-DECL]

    Müsste ich - obwohl sich auf den Seiten deutscher Fließtext befindet - <html lang="en"> verwenden, da es sich bei der Angabe um die Sprache des HTML-Quelltextes handelt, welcher immer englisch ist?

    Nein. Die Sprache der zur Auszeichnung verwendeten Element- und Attributbezeichner ist das "EN" in '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'. Das entfällt bei HTML5.

    Das @lang-Attribut dient zur Angabe der Sprache des Textes.

    Im Netz habe ich veraltete und teils widersprüchliche Informationen zu dem Thema gefunden, mit der Sufu hier im Forum finde ich auf Grund der Häufigkeit der Wörter auch nichts.

    W3C/Internationalization:
    Ressourcen: L wie language
    Techniken: Language

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. Vielen Dank für deine Antwort!

      Das heißt praktisch, wenn ich <html lang="de"> verwende, kann ich mir <meta name="language" content="de" /> sparen?!

      1. @@Lorenz:

        nuqneH

        Das heißt praktisch, wenn ich <html lang="de"> verwende, kann ich mir <meta name="language" content="de" /> sparen?!

        Ja, <meta http-equiv="Content-Language" content="de"> wäre wohl die sinnvollere Angabe. Das wäre die Angabe der Sprache des Zielpublikums.

        Die Angabe der Textsprache per @lang-Attribut beim 'html'-Element.

        Qapla'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
        1. »»» Das heißt praktisch, wenn ich <html lang="de"> verwende, kann ich mir <meta name="language" content="de" /> sparen?!

          Ja, <meta http-equiv="Content-Language" content="de"> wäre wohl die sinnvollere Angabe.

          Das ist jetzt anders herum, deshalb fasse ich nochmal zusammen: Wenn ich <meta name="language" content="de" /> im Header verwende, dann kann ich mir <html lang="de"> sparen.

          Mein Standard-HTML5-Header sieht also ab sofort so aus:

          <!DOCTYPE html>
          <html>
          <head>
          <meta charset="utf-8" />
          <title>Startseite</title>
          <meta name="language" content="de" />
          </head>

          1. @@Lorenz:

            nuqneH

            Das ist jetzt anders herum, deshalb fasse ich nochmal zusammen: Wenn ich <meta name="language" content="de" /> im Header verwende, dann kann ich mir <html lang="de"> sparen.

            Nein. Das zwei völlig verschiedene Angaben. Die eine betrifft das Zielpublikum (mehrere Sprachen möglich*), die andere den Dokumentinhalt (eine Sprache).

            Es gibt auch Fälle, wo in beiden Angaben unterschiedliche Sprachen angegeben sind.

            * Darüber wird gerade auf den Mailinglisten public-html und www-international diskutiert. Hixie macht auf mich einen ziemlich beratungsresistenten Eindruck. :-(

            <head>

            Hier sollte die Sprache des Dokuments angeben werden: <html lang="de">

            <meta name="language" content="de" />

            Wofür soll das gut sein?

            Wie ich schon sagte: <meta http-equiv="Content-Language" content="de">

            Wobei man die Angabe des "Content-Language"-Feldes dem Server überlassen kann: im HTTP-Header.

            Qapla'

            --
            Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
            (Mark Twain)
            1. Hixie macht auf mich einen ziemlich beratungsresistenten Eindruck. :-(

              Sag blos, das fällt dir erst jetzt auf? Der Mann will seinen Job bei Google vermutlich nicht verlieren, drum macht er brav, was ihm gesagt wird und wie Google meint, dass Dokumente aussehen können müssten, damit man sie vernünftig durchsuchen kann ;)

        2. Hi,

          Ja, <meta http-equiv="Content-Language" content="de"> wäre wohl die sinnvollere Angabe. Das wäre die Angabe der Sprache des Zielpublikums.

          Irgendwie leuchtet mir nicht so ganz ein, wozu diese Angabe gut sein soll.

          MfG ChrisB

          --
          “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]