Alarms and status
Annunciator <smart-annunciator>
Annunciator displays a wall of tiles, one per monitored condition, following the ISA-18.1 alarm sequence: normal, alarm (unacknowledged, blinking fast), acknowledged (steady) and ringback (cleared but not reset, blinking slowly).
Accessibility Attributes
The Annunciator is an ISA-18.1 alarm tile wall. Each tile is a button, and the wall is a composite widget: a panel of forty tiles is one tab stop with two-dimensional arrow key navigation, not forty separate tab stops.
The following ARIA attributes are used inside the Annunciator:
- role="group" - set on the panel's container, with an aria-label, so the tiles are announced as one named group rather than a loose run of buttons.
- aria-label (on each tile) - carries the tag and its ISA-18.1 state together - "Header press high, Alarm, unacknowledged". The tag alone reads as nothing; the state is the part an operator needs, and it is conveyed visually by colour and blink, neither of which a reader can see.
- aria-hidden="true" - set on each tile's visible label and detail text, because the tile's aria-label already contains them. Without it a reader announces the tag twice.
- aria-pressed - indicates whether a tile has been acknowledged.
- tabindex - managed as a roving tab stop: the active tile is 0, every other tile is -1.
- aria-disabled - indicates that the panel is disabled.
Keyboard Interaction
The following keyboard shortcuts are available to interact with the Annunciator:
| Key | Action |
|---|---|
| Tab | Moves into the wall, landing on the tile that holds the tab stop, and out again. The wall is one stop however many tiles it has. |
| Arrow Left/Right | Moves one tile along the row. Reversed when rightToLeft is set. |
| Arrow Up/Down | Moves one tile up or down the column, a whole row at a time, following the columns property, which is re-read on each keypress so a responsive wall stays navigable. |
| Home / End | Moves to the first / last tile on the wall. |
| Page Up / Page Down | Moves ten tiles back / forward, stopping at the ends. |
| Enter or Space | Presses the focused tile. A tile in alarm raises acknowledge; a tile in ringback raises reset; every tile raises tileClick. The panel does not change the tile state itself, the application does that once its control system has confirmed the action. |
Localization
All strings the Annunciator exposes to assistive technology come from its messages property, so they can be provided in the user's language. Set locale to select a language and add a language through messages. Assigning messages replaces the whole object, so include the existing languages when adding one: el.messages = Object.assign({}, el.messages, { de: pack }); If the built-in en pack is dropped, switching back to English shows raw message keys.
The Annunciator uses the following message keys:
- normal
- alarm
- ack
- ringback
- panelLabel
- tileLabel
German, French, Spanish and Chinese packs are included in the Smart.Industrial package. Strings that are also exposed as properties default to empty and fall back to the pack, so the default text stays translatable while an explicit property value takes precedence.
Additional information on WAI-ARIA for the SMART Framework can be found here.