Signatur
Beschreibung
Die Eigenschaft ch des Interfaces HTMLTableSectionElement spiegelt das veraltete HTML-Attribut char der Tabellenabschnitte <thead>, <tbody> und <tfoot> wider. In HTML 4.01 sollte damit ein Ausrichtungszeichen (z. B. das Dezimalkomma) festgelegt werden, an dem Zellinhalte bei align="char" vertikal ausgerichtet werden.
Kein aktueller Browser hat diese Ausrichtung jemals zuverlässig umgesetzt. Die Eigenschaft existiert heute nur noch aus Kompatibilitätsgründen: Lesen liefert den Attributwert als String (oder einen leeren String, wenn das Attribut fehlt), Schreiben setzt bzw. ändert das Attribut char im DOM – eine sichtbare Wirkung hat beides nicht.
Relevant ist ch praktisch nur beim Migrieren oder Analysieren von Alt-Markup, etwa um veraltete Attribute aufzuspüren und zu entfernen. Für neue Projekte sollte die Ausrichtung ausschließlich mit CSS erfolgen, z. B. über text-align und tabellarische Ziffern (font-variant-numeric: tabular-nums).
Rückgabewert
char als String; ein leerer String "", wenn das Attribut nicht gesetzt ist. Beim Zuweisen wird das Attribut char entsprechend geschrieben.Beispiele
Attributwert auslesen
// HTML: <table><tbody id="preise" char=","><tr><td>12,50</td></tr></tbody></table>
const tbody = document.getElementById('preise');
console.log(tbody.ch); // Spiegelung von char
console.log(tbody.getAttribute('char')); // identischer Wert
Wert setzen – ändert nur das Attribut, nicht die Darstellung
const table = document.createElement('table');
const tbody = table.createTBody();
console.log(JSON.stringify(tbody.ch)); // noch nicht gesetzt
tbody.ch = '.';
console.log(tbody.outerHTML);
// Die Zellen werden trotzdem NICHT am Punkt ausgerichtet
Alt-Markup bereinigen und durch CSS ersetzen
// Veraltete char-Attribute entfernen und moderne Ausrichtung per CSS setzen
const sections = document.querySelectorAll('thead, tbody, tfoot');
let bereinigt = 0;
for (const section of sections) {
if (section.ch !== '') {
section.removeAttribute('char');
section.removeAttribute('charoff');
section.style.textAlign = 'right';
section.style.fontVariantNumeric = 'tabular-nums';
bereinigt++;
}
}
console.log(`${bereinigt} Tabellenabschnitt(e) bereinigt`);
// Wichtig · Fallstricke
- Keine Wirkung: Kein Browser richtet Zellinhalte anhand von
chbzw.charaus. Wer sich auf die Eigenschaft verlässt, bekommt nicht das erwartete Layout. - Veraltet: Das Attribut
charist in HTML5 als obsolet eingestuft und führt bei der Validierung zu Fehlern. Nicht in neuem Code verwenden. - Namensfalle: Die Eigenschaft heißt
ch, das gespiegelte Attribut jedochchar, weilcharfrüher ein reserviertes Wort in JavaScript war. Entsprechend spiegeltchOffdas Attributcharoff. - Kompatibilität: Die Eigenschaft ist in allen gängigen Browsern vorhanden (reine Attributspiegelung), kann aber künftig entfernt werden. Zum Prüfen besser
'ch' in elementverwenden. - Alternative: Zahlen mit CSS ausrichten, z. B. mit
text-align: rightundfont-variant-numeric: tabular-nums.