Start · Sprachen · JavaScript · Referenz · HTMLMeterElement.optimum

HTMLMeterElement.optimum

Eigenschaft

Liest oder setzt den optimalen Wert eines <code>&lt;meter&gt;</code>-Elements als Fließkommazahl und spiegelt das HTML-Attribut <code>optimum</code>.

seit JavaScript Baseline: alle modernen Browser (seit ca. 2013) Kategorie: webapi

Signatur

HTMLMeterElement.optimum

Beschreibung

Die Eigenschaft optimum des HTMLMeterElement spiegelt das gleichnamige HTML-Attribut eines <meter>-Elements. Sie gibt an, welcher Wert als optimal gilt. Zusammen mit low und high legt sie fest, welcher Bereich der Skala der „gute“ ist.

Der Browser teilt die Skala über low und high in drei Bereiche: unterhalb von low, zwischen low und high und oberhalb von high. Der Bereich, in dem optimum liegt, gilt als optimal. Die angrenzenden Bereiche gelten als suboptimal, der gegenüberliegende als schlecht. Chromium- und Gecko-Browser stellen das meist farbig dar, typischerweise grün, gelb und rot.

Standardwert beim Lesen: Fehlt das Attribut oder lässt es sich nicht als Zahl lesen, liefert der Getter die Mitte zwischen min und max. Der gelieferte Wert wird außerdem immer auf den Bereich [min, max] begrenzt. Beim Setzen schreibt die Eigenschaft das Attribut optimum neu.

Typische Einsätze sind Anzeigen, bei denen die Richtung wichtig ist: Beim Akkustand oder bei einer Testabdeckung sind hohe Werte gut. Bei der Speicherauslastung oder der CPU-Temperatur sind niedrige Werte gut.

Rückgabewert

Typ
number
Beschreibung
Der optimale Wert als Fließkommazahl, begrenzt auf [min, max]. Ohne gültiges Attribut: (min + max) / 2.

Beispiele

optimum auslesen, auch ohne gesetztes Attribut

document.body.innerHTML = `
  <meter id="a" min="0" max="100" value="40"></meter>
  <meter id="b" min="0" max="100" optimum="250" value="40"></meter>
`;

const a = document.getElementById('a');
const b = document.getElementById('b');

console.log(a.optimum); // kein Attribut → Mitte zwischen min und max
console.log(b.optimum); // 250 wird auf max begrenzt
console.log(b.getAttribute('optimum')); // das Attribut selbst bleibt unverändert
50 100 "250"

Akkustand: hohe Werte sind gut

const akku = document.createElement('meter');
Object.assign(akku, { min: 0, max: 100, low: 20, high: 80, optimum: 100 });
akku.value = 15; // liegt unter low → schlechter Bereich (meist rot)
document.body.append(akku);

console.log(akku.optimum);
console.log(akku.outerHTML);
100 <meter min="0" max="100" low="20" high="80" optimum="100" value="15"></meter>

Richtung zur Laufzeit umschalten (Auslastung vs. Füllstand)

const meter = document.createElement('meter');
Object.assign(meter, { min: 0, max: 1, low: 0.3, high: 0.7, value: 0.9 });
document.body.append(meter);

const setzeModus = (modus) => {
  // Auslastung: niedrig ist gut; Füllstand: hoch ist gut
  meter.optimum = modus === 'auslastung' ? 0 : 1;
  meter.title = `Modus: ${modus}, optimum = ${meter.optimum}`;
};

setzeModus('auslastung'); // 0.9 wird jetzt als schlecht dargestellt
console.log(meter.title);
setzeModus('fuellstand'); // 0.9 wird jetzt als optimal dargestellt
console.log(meter.title);
Modus: auslastung, optimum = 0 Modus: fuellstand, optimum = 1

Fehler beim Setzen ungültiger Werte abfangen

const m = document.createElement('meter');
try {
  m.optimum = NaN;
} catch (err) {
  console.log(err.name);
}
m.optimum = '0.25'; // Strings werden in Zahlen umgewandelt
console.log(m.optimum, typeof m.optimum);
TypeError 0.25 "number"

// Wichtig · Fallstricke

  • Begrenzung nur beim Lesen: Der Getter begrenzt den Wert auf [min, max]. Das Attribut behält aber den ursprünglich gesetzten Wert. getAttribute('optimum') und meter.optimum können deshalb verschieden sein.
  • Nicht-endliche Werte: Wer NaN oder Infinity zuweist, löst einen TypeError aus, denn die IDL-Eigenschaft hat den Typ double. Andere Werte, etwa Strings, werden in Zahlen umgewandelt.
  • Stiller Standardwert: Ohne Attribut wird die Mitte zwischen min und max geliefert. Liegt sie zwischen low und high, gilt der mittlere Bereich als optimal. Das ist oft nicht gewollt, deshalb optimum immer ausdrücklich setzen.
  • Nur Darstellung: optimum wirkt sich lediglich auf die Darstellung aus. Die Farben hängen vom Browser ab und lassen sich nur über nicht standardisierte Pseudo-Elemente wie ::-webkit-meter-optimum-value oder :-moz-meter-optimum gestalten.
  • Barrierefreiheit: Screenreader geben den optimalen Bereich in der Regel nicht wieder. Wichtige Zustände wie „Akku fast leer“ sollten zusätzlich als Text mitgeteilt werden, etwa über ein Label oder aria-describedby.
  • Browser-Unterstützung: Die Eigenschaft funktioniert in allen modernen Browsern. Internet Explorer kennt weder <meter> noch diese Eigenschaft.