Safety and interlocks
Permissive <smart-permissive>
Permissive displays a list of conditions that a start requires or that a running device depends on, with whether each condition is met.
Accessibility Attributes
The Permissive is a list of conditions and a verdict, all as text. The verdict is shown as a word as well as a colour, each condition carries its state in its accessible name, and a change of the verdict is announced through the live region: politely when a start becomes possible and assertively when a device trips. The bypass controls are a composite widget with one tab stop and arrow key navigation.
The following ARIA attributes are used inside the Permissive:
- role="group" - set on the container, with an aria-label naming the list and what it is for - "P-2101A start permissives, Permissives".
- role="list" - set on the condition list, with an aria-label carrying the verdict and the count - "Not permitted ยท 2 not met. 6 of 8 met, 1 bypassed" - so a reader entering the list hears the answer before the items.
- aria-label - set on each condition, as its label and its state: "Feed tank level above 20 %, not met", "Suction valve open, met", "Discharge valve open, bypassed by J. Moreau". The state glyph beside it is aria-hidden; the words carry the state.
- tabindex - managed as a roving tab stop across the bypass controls: one is 0, the rest -1.
- aria-live - a change of verdict is announced through the shared live region, assertive for an interlock trip and polite otherwise.
- aria-disabled - indicates that the list is disabled.
Keyboard Interaction
The following keyboard shortcuts are available to interact with the Permissive:
| Key | Action |
|---|---|
| Tab | Moves into the bypass controls, landing on the one that holds the tab stop, and out again. The controls are one stop however many there are; without allowBypass the list has no stop at all. |
| Arrow Up/Down | Moves between the bypass controls. |
| Home / End | Moves to the first / last control. |
| Enter or Space | Raises bypassRequest for the focused condition. The list is not changed; the application applies the bypass and hands back the updated conditions. |
The condition rows take no keyboard focus. There is nothing on them to operate, a condition is a fact reported by the plant, and the only action the list offers is the bypass, which is on its control.
Localization
All strings the Permissive 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 Permissive uses the following message keys:
- listLabel, interlockListLabel
- ready, notReady, healthy, tripped, noConditions
- satisfied, unsatisfied, bypassed, bypassedBy, advisory, firstOut
- bypass, removeBypass
- conditionLabel, summary, summaryBypassed
- ago, justNow, seconds, minutes, hours, days
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.