Signatur
Beschreibung
Die Eigenschaft ariaColSpan ist die JavaScript-Spiegelung (Reflection) des Attributs aria-colspan. Mit ihr teilst du Hilfstechnologien wie Screenreadern mit, über wie viele Spalten sich eine Zelle (role="cell", role="gridcell", role="columnheader" oder role="rowheader") erstreckt. Das Lesen und Schreiben der Eigenschaft wirkt direkt auf das Attribut im DOM – el.ariaColSpan = "2" entspricht also el.setAttribute("aria-colspan", "2").
Gebraucht wird das vor allem bei selbstgebauten Tabellen und Datengrids aus <div>-Elementen, etwa in virtualisierten Grids oder Tabellenkomponenten von UI-Bibliotheken. Bei nativen HTML-Tabellen nutzt du stattdessen das colspan-Attribut von <td> bzw. <th>; dieses wird automatisch an den Accessibility-Baum weitergegeben, aria-colspan ist dort überflüssig.
Der Wert ist immer ein String (oder null, wenn das Attribut fehlt), obwohl er semantisch eine positive Ganzzahl ≥ 1 darstellt. Zum Rechnen musst du ihn also selbst mit Number() oder parseInt() umwandeln.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $wert | string | null | Beim Setzen: String mit einer positiven Ganzzahl (z. B. "2"). Das Zuweisen von null entfernt das Attribut aria-colspan. |
Rückgabewert
aria-colspan als String, oder null, wenn das Attribut nicht gesetzt ist.Beispiele
Wert auslesen und ändern
// HTML: <div role="grid"><div role="row"><div id="summe" role="gridcell" aria-colspan="2">Summe</div></div></div>
const zelle = document.getElementById("summe");
console.log(zelle.ariaColSpan); // String!
zelle.ariaColSpan = "3";
console.log(zelle.getAttribute("aria-colspan"));
Zellenbreite in einem CSS-Grid und für Screenreader synchron setzen
// Setzt die visuelle Spaltenbreite und die ARIA-Information gemeinsam
const setzeSpannweite = (zelle, spalten) => {
zelle.style.gridColumn = `span ${spalten}`;
zelle.ariaColSpan = String(spalten);
};
const kopf = document.createElement("div");
kopf.role = "columnheader";
kopf.textContent = "Quartal 1";
setzeSpannweite(kopf, 3);
console.log(kopf.outerHTML);
Spannweite numerisch auswerten und Attribut entfernen
const zellen = document.querySelectorAll('[role="gridcell"]');
// Gesamtzahl belegter Spalten einer Zeile berechnen
const belegteSpalten = [...zellen].reduce(
(summe, z) => summe + (Number(z.ariaColSpan) || 1),
0
);
console.log(`Belegte Spalten: ${belegteSpalten}`);
// Attribut wieder entfernen (Standard: 1 Spalte)
zellen[0].ariaColSpan = null;
console.log(zellen[0].hasAttribute("aria-colspan"));
// Wichtig · Fallstricke
- Nicht bei nativen Tabellen verwenden: Für
<td>/<th>giltcolspan(bzw. die EigenschaftHTMLTableCellElement.colSpan, die eine Zahl liefert).aria-colspanist nur für ARIA-Rollen wiecell,gridcell,columnheaderundrowheadergedacht. - Typ:
ariaColSpanliefert einen String, keine Zahl.zelle.ariaColSpan + 1ergibt z. B."21"statt3. - Nur Semantik: Das Attribut ändert die Darstellung nicht. Die visuelle Spannweite (z. B.
grid-column: span n) musst du selbst per CSS setzen und synchron halten. - Gültig sind nur Ganzzahlen ≥ 1. Ungültige Werte werden unverändert gespeichert, von Hilfstechnologien aber ignoriert oder uneinheitlich behandelt.
- Kompatibilität: Firefox unterstützt ARIA-Reflection erst ab Version 119. Für ältere Browser weichst du auf
setAttribute("aria-colspan", …)aus, was überall funktioniert.