Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Element: ariaControlsElements-Eigenschaft

Baseline 2025
Newly available

Since ⁨April 2025⁩, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Die ariaControlsElements-Eigenschaft der Element-Schnittstelle ist ein Array, das die Elemente enthält, die durch das Element gesteuert werden, auf das sie angewendet wird. Zum Beispiel könnte dies auf einem combobox gesetzt werden, um das Element anzugeben, das es aufpoppt, oder auf einer scrollbar, um die ID des gesteuerten Elements anzugeben.

Das Thema aria-controls enthält zusätzliche Informationen darüber, wie das Attribut und die Eigenschaft verwendet werden sollten.

Wert

Ein Array von Unterklassen von HTMLElement, das die Elemente repräsentiert, die von diesem Element gesteuert werden.

Beim Lesen ist das zurückgegebene Array statisch und schreibgeschützt. Beim Schreiben wird das zugewiesene Array kopiert: Nachfolgende Änderungen am Array beeinflussen den Wert der Eigenschaft nicht.

Beschreibung

Die Eigenschaft ist eine flexible Alternative zur Verwendung des aria-controls-Attributs, um die gesteuerten Elemente festzulegen. Im Gegensatz zu aria-controls müssen die Elemente, die dieser Eigenschaft zugewiesen sind, kein id-Attribut haben.

Die Eigenschaft spiegelt das aria-controls-Attribut wider, wenn es definiert ist, jedoch nur für aufgelistete Referenz-id-Werte, die gültigen, im Geltungsbereich befindlichen Elementen entsprechen. Wenn die Eigenschaft gesetzt ist, wird das entsprechende Attribut gelöscht. Für weitere Informationen über reflektierte Elementreferenzen und den Geltungsbereich siehe Reflected element references im Reflected attributes-Leitfaden.

Beispiele

Die gesteuerten Elemente abrufen

Dieses Beispiel zeigt, wie ariaControlsElements verwendet werden kann, um die gesteuerten Elemente abzurufen, die mit aria-controls gesetzt wurden.

HTML

Das HTML definiert zunächst ein <button>-Element und zwei <div>-Elemente, panel1 und panel2, die es steuert. Die Referenzen zu den gesteuerten Panels sind im aria-controls-Attribut des Buttons aufgelistet.

html
<button id="toggleButton" aria-controls="panel1 panel2" aria-expanded="false">
  Show Details
</button>

<div class="panel" id="panel1" aria-hidden="true">
  <p>Panel1 opened/closed by button.</p>
</div>

<div class="panel" id="panel2" aria-hidden="true">
  <p>Panel2 opened/closed by button.</p>
</div>
css
.panel {
  display: none; /* Initially hidden */
  border: 1px solid #cccccc;
  padding: 5px;
  margin-top: 5px;
}

JavaScript

Der Code richtet zunächst die Panels so ein, dass sie basierend auf dem aria-expanded-Attribut des Buttons geöffnet oder verborgen werden.

js
const toggleButton = document.querySelector("#toggleButton");
const panel1 = document.querySelector("#panel1");
const panel2 = document.querySelector("#panel2");

toggleButton.addEventListener("click", () => {
  const isExpanded = toggleButton.getAttribute("aria-expanded") === "true";

  toggleButton.setAttribute("aria-expanded", !isExpanded);
  panel1.style.display = isExpanded ? "none" : "block";
  panel1.setAttribute("aria-hidden", isExpanded); // true when hidden, false when shown.

  panel2.style.display = isExpanded ? "none" : "block";
  panel2.setAttribute("aria-hidden", isExpanded); // true when hidden, false when shown.
});

Als nächstes erhält das Beispiel den Wert des aria-controls-Attributs mit Element.getAttribute() (ein String, der die id-Werte der referenzierten Elemente auflistet). Es wird dann überprüft, ob die ariaControlsElements-Eigenschaft unterstützt wird und ggf. ihr Wert protokolliert. Schließlich wird der innere Text für jedes der gesteuerten Elemente zurückgegeben und protokolliert.

js
log(`aria-controls: ${toggleButton.getAttribute("aria-controls")}`);
// Feature test for ariaControlsElements
if ("ariaControlsElements" in Element.prototype) {
  // Get ariaControlsElements
  const controlledElements = toggleButton.ariaControlsElements;
  log(`ariaControlsElements: ${controlledElements}`);

  // List innerText for each of the ariaControlsElements
  controlledElements.forEach((controlled) => {
    log(` Controlled element text: ${controlled.textContent.trim()}`);
  });
} else {
  log("element.ariaControlsElements: not supported by browser");
}

Ergebnis

Klicken Sie auf den Button unten, um die Panels zu zeigen und zu verbergen. Das Protokoll zeigt die ursprünglichen Elementreferenzen, die verknüpften/zurückgegebenen Elemente und den inneren Text jedes Elements.

Spezifikationen

Specification
Accessible Rich Internet Applications (WAI-ARIA)
# dom-ariamixin-ariacontrolselements

Browser-Kompatibilität

Siehe auch