Signatur
Beschreibung
Die Eigenschaft hreflang der Schnittstelle MathMLAnchorElement ist ein String mit der Sprache der Ressource, auf die ein MathML-Link (<a> im MathML-Namensraum) verweist. Sie spiegelt das Inhaltsattribut hreflang wider: Wenn du die Eigenschaft liest, erhältst du den Attributwert, und wenn du sie setzt, wird das Attribut geändert.
Der Wert sollte ein gültiges Sprach-Tag nach BCP 47 sein, zum Beispiel "de", "en-US" oder "fr-CA". Der Wert dient nur als Hinweis für Suchmaschinen, Hilfstechnologien und Skripte. Der Browser prüft ihn nicht und verwendet ihn auch nicht, um Inhalte auszuhandeln.
Das ist dann sinnvoll, wenn Formeln in einem mehrsprachigen Dokument auf Erklärungen, Definitionen oder Herleitungen in einer anderen Sprache verlinken. Ein Skript kann solche Links dann zum Beispiel kennzeichnen oder filtern. Die Eigenschaft verhält sich genauso wie HTMLAnchorElement.hreflang.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $value | string | "" | Beim Setzen: ein BCP-47-Sprach-Tag, z. B. "en". Andere Werte werden ohne Prüfung in einen String umgewandelt und übernommen. |
Rückgabewert
hreflang. Fehlt das Attribut, ist es ein leerer String "".Beispiele
Sprache eines MathML-Links auslesen
// <math><a href="https://en.wikipedia.org/wiki/Pi" hreflang="en"><mi>π</mi></a></math>
const link = document.querySelector('math a');
if (link && 'hreflang' in link) {
console.log(link.hreflang);
} else {
console.log('MathMLAnchorElement.hreflang wird nicht unterstützt');
}
MathML-Link per Skript erzeugen und Sprache setzen
const MATHML_NS = 'http://www.w3.org/1998/Math/MathML';
const math = document.createElementNS(MATHML_NS, 'math');
const a = document.createElementNS(MATHML_NS, 'a');
const mi = document.createElementNS(MATHML_NS, 'mi');
mi.textContent = 'e';
a.setAttribute('href', 'https://fr.wikipedia.org/wiki/E_(nombre)');
// Eigenschaft setzen, falls vorhanden, sonst das Attribut als Rückfallebene
if ('hreflang' in a) {
a.hreflang = 'fr';
} else {
a.setAttribute('hreflang', 'fr');
}
a.append(mi);
math.append(a);
document.body.append(math);
console.log(a.getAttribute('hreflang'));
Fremdsprachige Formel-Links kennzeichnen
const pageLang = document.documentElement.lang || 'de';
const foreignLinks = [...document.querySelectorAll('math a[hreflang]')]
.filter((a) => !a.getAttribute('hreflang').startsWith(pageLang));
foreignLinks.forEach((a) => {
const lang = a.hreflang ?? a.getAttribute('hreflang');
a.setAttribute('title', `Verweist auf Inhalt in: ${lang}`);
});
console.log(`${foreignLinks.length} fremdsprachige Links markiert`);
// Wichtig · Fallstricke
- Browser-Kompatibilität:
MathMLAnchorElementist neu und experimentell. Die meisten Browser behandeln MathML-<a>bisher als allgemeinesMathMLElementohne diese Eigenschaft. Prüfe die Unterstützung vorher mit'hreflang' in elementoder weiche aufgetAttribute('hreflang')bzw.setAttribute('hreflang', …)aus. - Keine Prüfung: Ungültige Sprach-Tags werden ohne Fehlermeldung übernommen. Der Wert hat nur Hinweischarakter und hat keinen Einfluss darauf, was der Server ausliefert.
- Namensraum beachten: Ein MathML-
<a>muss mitcreateElementNS('http://www.w3.org/1998/Math/MathML', 'a')erzeugt werden.document.createElement('a')liefert dagegen einHTMLAnchorElement. - Ohne gesetztes
hrefist das Element kein funktionierender Link.hreflanghat dann keine praktische Bedeutung.