Signatur
Beschreibung
Die Eigenschaft ariaRowSpan gehört zur ARIA-Reflection der Schnittstelle Element. Sie liest und setzt den Wert des Attributs aria-rowspan direkt als String. el.ariaRowSpan = "2" bewirkt also dasselbe wie el.setAttribute("aria-rowspan", "2").
Mit aria-rowspan teilen Sie assistiven Technologien wie Screenreadern mit, über wie viele Zeilen sich eine Zelle erstreckt. Das Attribut gehört auf Elemente mit den Rollen cell, gridcell, columnheader oder rowheader. Sinnvoll ist es vor allem bei eigenen Tabellen- und Grid-Komponenten, die aus <div>-Elementen bestehen und per CSS Grid dargestellt werden. Dort gibt es kein natives rowspan.
Bei nativen <td>- und <th>-Elementen verwenden Sie stattdessen das HTML-Attribut rowspan (Eigenschaft HTMLTableCellElement.rowSpan). Setzen Sie dort zusätzlich aria-rowspan, muss der Wert mit rowspan übereinstimmen.
Der Wert ist eine ganze Zahl ab 0 als String. Die Voreinstellung ist 1. Der Wert 0 bedeutet, dass sich die Zelle bis zum Ende des aktuellen Zeilenbereichs erstreckt.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $value | string | null | Nur beim Setzen: eine nicht-negative ganze Zahl als String, z. B. "3". Mit null wird das Attribut aria-rowspan entfernt. |
Rückgabewert
aria-rowspan als String. null, wenn das Attribut nicht gesetzt ist.Beispiele
Wert lesen und ändern
// <div role="gridcell" id="termin" aria-rowspan="2">Meeting</div>
const zelle = document.getElementById("termin");
console.log(zelle.ariaRowSpan);
zelle.ariaRowSpan = "3";
console.log(zelle.getAttribute("aria-rowspan"));
Kalender-Grid: Termin über mehrere Zeitslots
// Ein Termin belegt mehrere Stunden-Zeilen in einem CSS-Grid-Kalender
const erstelleTermin = (titel, startZeile, dauerStunden) => {
const zelle = document.createElement("div");
zelle.role = "gridcell";
zelle.textContent = titel;
// Optische Darstellung per CSS Grid
zelle.style.gridRow = `${startZeile} / span ${dauerStunden}`;
// Semantik für Screenreader
zelle.ariaRowSpan = String(dauerStunden);
return zelle;
};
const termin = erstelleTermin("Workshop", 2, 3);
document.querySelector("[role=grid]")?.append(termin);
console.log(termin.outerHTML);
Attribut entfernen und Rückfall prüfen
const zelle = document.querySelector("[role=cell]");
zelle.ariaRowSpan = "2";
// Zurücksetzen: Attribut wird entfernt
zelle.ariaRowSpan = null;
console.log(zelle.hasAttribute("aria-rowspan"));
console.log(zelle.ariaRowSpan);
// Numerischer Wert mit Rückfall auf den Standardwert 1
const spanne = Number.parseInt(zelle.ariaRowSpan ?? "1", 10);
console.log(spanne);
// Wichtig · Fallstricke
- Immer ein String: Die Eigenschaft liefert keinen
number-Wert. Zum Rechnen wandeln Sie ihn mitNumber.parseInt()um. Weisen Sie eine Zahl zu, wird sie automatisch in einen String umgewandelt. - Keine Prüfung des Werts: Der Browser nimmt auch ungültige Werte wie
"abc"oder"-1"an. Assistive Technologien ignorieren solche Werte dann oder deuten sie falsch. - Keine Wirkung auf das Layout:
aria-rowspanverändert nur die Semantik im Barrierefreiheitsbaum. Die optische Darstellung übernehmen Sie selbst, z. B. mitgrid-row: span n. - Native Tabellen: Bei
<td>und<th>verwenden Sierowspan. Widersprüchliche Werte inrowspanundaria-rowspansind nicht zulässig. - Kompatibilität: Firefox unterstützt die ARIA-Reflection erst ab Version 119. Für ältere Browser verwenden Sie
setAttribute("aria-rowspan", …). Das funktioniert überall.