OVERSCANUI KIT
no button at all a worn bezel with weight channels do not converge zero depth instrumented, full of smoke a field of real characters a camera looking out additive, so no shadow hairlines, no new shader no raster, so no scanlines

A vote is not a reading. Three angle-of-attack sources of one quantity, each with its value and its membership of the set, the rule the vote runs by, and the output labelled with that rule and the channels it came from. A rejected channel stays on screen, marked, with its distance from the vote and the count of its miscompares, because a rejection that is silent is a source that simply vanishes. Two left that disagree have no majority and no average. On XL888T two blocked sensors outvoted the one still moving, and BEA records that "this vote is not apparent for the pilots".

demo/quorum.html, from this page
import 'overscan'
import 'overscan/overscan.css'

<ov-quorum
  class="liveel"
  label="AOA"
  unit="°"
  channels="ADR 1, ADR 2, ADR 3"
  tolerance="1.5"
  fail-after="3"
></ov-quorum>
LIVEstarting
variation: src="models/quorum-agree.json"
import 'overscan'
import 'overscan/overscan.css'

<ov-quorum
  src="models/quorum-agree.json"
  label="AOA"
  unit="°"
  channels="ADR 1, ADR 2, ADR 3"
  tolerance="1.5"
  fail-after="3"
></ov-quorum>
three that agree
one deviating, announced and counted
two left, and they disagree

The same element, the same scene, twice. An instrument shows its visual content and nothing else, by default - the face, the reading, its unit, and anything it is refusing or qualifying. The name and the declared rules are gone, because a wall writes those once above twenty tiles. On the right, data-ov-chrome="full" opts back in; it is set on the BOX, not on the element, so one attribute covers everything inside it. What is never hidden either way is the reading, the unit that reading is in, the refusal or the qualifier - and a screen reader is given the identical sentence, because a hidden name is still a spoken name.

variation: src="models/quorum-outvoted.json"
import 'overscan'
import 'overscan/overscan.css'

<ov-quorum
  src="models/quorum-outvoted.json"
  label="AOA"
  unit="°"
  channels="ADR 1, ADR 2, ADR 3"
  tolerance="1.5"
  fail-after="3"
></ov-quorum>
default — two left, and they disagree
data-ov-chrome="full", on the box around it
variation: src="models/quorum-nomajority.json"
import 'overscan'
import 'overscan/overscan.css'

<ov-quorum
  src="models/quorum-nomajority.json"
  label="AOA"
  unit="°"
  channels="ADR 1, ADR 2, ADR 3"
  tolerance="1.5"
  fail-after="3"
></ov-quorum>
terminal
industrial
cyber
antiseptic
esper
neo
machina
holo
aegis
vector