Start · Sprachen · JavaScript · Referenz · HTMLTableCellElement.abbr

HTMLTableCellElement.abbr

Eigenschaft

Liest oder setzt eine kurze, alternative Bezeichnung für eine Tabellenzelle und spiegelt das HTML-Attribut <code>abbr</code> wider.

seit JavaScript Baseline: alle Browser Kategorie: webapi

Signatur

HTMLTableCellElement.abbr

Beschreibung

Die Eigenschaft abbr des Interfaces HTMLTableCellElement spiegelt das HTML-Attribut abbr einer Tabellenzelle wider. Sie enthält eine kurze Alternativbezeichnung für den Zellinhalt. Das ist vor allem bei Kopfzellen (<th>) mit langem Text nützlich.

Hauptsächlich nutzen assistive Technologien wie Screenreader diesen Wert. Liest ein Screenreader eine Datenzelle vor, kündigt er meist die zugehörige Kopfzelle mit an. Mit abbr kann er statt „Durchschnittliche monatliche Ausgaben in Euro“ einfach „Ausgaben“ sagen. Das macht große Tabellen deutlich angenehmer zu bedienen.

Laut aktueller HTML-Spezifikation ist das Attribut abbr nur bei <th> gültig. Bei <td> gilt es als veraltet. Die DOM-Eigenschaft gibt es aber auf allen HTMLTableCellElement-Instanzen. Sie ist ein String: Wenn das Attribut fehlt, liefert sie "". Wenn du einen Wert zuweist, wird das Attribut im Markup gesetzt.

Rückgabewert

Typ
string
Beschreibung
Der Wert des Attributs abbr oder ein leerer String "", wenn das Attribut nicht gesetzt ist. Die Eigenschaft ist les- und schreibbar.

Beispiele

Kurzbezeichnung einer Kopfzelle auslesen

// HTML: <th id="kopf" abbr="Ausgaben">Durchschnittliche monatliche Ausgaben in Euro</th>
const th = document.getElementById('kopf');
console.log(th.abbr);
console.log(th.textContent);
Ausgaben Durchschnittliche monatliche Ausgaben in Euro

Abkürzungen für alle langen Kopfzellen automatisch setzen

const kuerzel = {
  'Umsatz im ersten Quartal': 'Q1',
  'Umsatz im zweiten Quartal': 'Q2',
  'Umsatz im dritten Quartal': 'Q3'
};

document.querySelectorAll('table.bericht th').forEach((th) => {
  const text = th.textContent.trim();
  if (!th.abbr && kuerzel[text]) {
    th.abbr = kuerzel[text]; // setzt das HTML-Attribut abbr
  }
});

console.log(document.querySelector('table.bericht th').outerHTML);
<th abbr="Q1">Umsatz im ersten Quartal</th>

Tabelle dynamisch erzeugen und fehlendes Attribut prüfen

const table = document.createElement('table');
const row = table.createTHead().insertRow();

const th = document.createElement('th');
th.textContent = 'Anzahl der registrierten Nutzerinnen und Nutzer';
console.log(JSON.stringify(th.abbr)); // Attribut fehlt noch

th.abbr = 'Nutzer';
row.append(th);

console.log(th.getAttribute('abbr'));
document.body.append(table);
"" Nutzer

// Wichtig · Fallstricke

  • Nur bei <th> sinnvoll: Nach HTML Living Standard ist abbr bei <td> veraltet. Die DOM-Eigenschaft funktioniert dort zwar, Validatoren melden das Attribut aber als Fehler.
  • Keine sichtbare Wirkung: Browser zeigen den Wert nicht an. Er ist also kein Ersatz für einen Tooltip (title) oder das Element <abbr>. Ob und wie Screenreader den Wert nutzen, ist unterschiedlich. Teste das deshalb mit echten Hilfstechnologien.
  • Kein null: Fehlt das Attribut, liefert die Eigenschaft "". Weist du null zu, wird daraus der String "null". Zum Entfernen nutze removeAttribute('abbr').
  • Kompatibilität: Die Eigenschaft wird in allen modernen Browsern unterstützt (Chrome, Firefox, Safari, Edge) und war schon im alten Internet Explorer vorhanden.