Safety and interlocks

Cause and Effect Matrix <smart-cause-effect-matrix>

CauseEffectMatrix displays the cause and effect chart of a safety instrumented system as a live matrix.

Accessibility Attributes

The CauseEffectMatrix is exposed as a WAI-ARIA grid: the causes are row headers, the effects are column headers, and every intersection is a cell, whether or not it carries a mark. Each cell has a full accessible name, for example "PSHH-2101 to PSV-2101: Timed trip, 30 s delay, after the block valve", or "no link", so a mark that is a single letter on the chart is read as a word. A cause header includes "active" and "bypassed" after its name, and an effect header includes "tripped" and, when the plant state differs from the chart, "expected to trip but not tripped" or "tripped with no active cause". A new discrepancy is announced once, assertively, through the shared live region. The row and column colours carry the same states for sighted users and are never the only indicator.

The following ARIA attributes are used inside the CauseEffectMatrix:

  • role="grid" - set on the chart, with an aria-label naming it and counting its causes, effects, active causes and tripped effects, and aria-rowcount / aria-colcount.
  • role="row" - set on the header row and on each cause's row. Each cause's row carries aria-rowindex, counting the header row as row 1; the header row carries none.
  • role="columnheader" - set on the corner and on each effect. The corner is named by its text, "Cause → Effect", and carries no aria-colindex. Each effect carries aria-colindex and an aria-label of tag, label and state.
  • role="rowheader" - set on each cause, with an aria-label of tag, label and state.
  • role="gridcell" - set on each intersection, with aria-colindex, an aria-label of cause, effect, mark, delay and note, a title of the same, and a roving tabindex: one cell is the tab stop, the one that last had focus or the first.
  • role="none" - set on the empty-state line.
  • aria-label - set on the legend list, naming it.

Keyboard Interaction

The following keyboard shortcuts are available to interact with the CauseEffectMatrix:

Key Action
Tab Moves into the chart, landing on the cell that last had focus or the first cell, and out again. The chart is one stop. Focus selects the cell and raises selectionChange.
Arrow keys Move between cells: left and right along a cause, up and down between causes under the same effect. Right Arrow on the last cell of a row moves to the first cell of the next row, and Left Arrow on the first cell moves to the last cell of the row above.
Home / End Move to the first / last cell of the row; with Ctrl, to the first / last cell of the chart.
Page Up / Page Down Move ten cells back or forward.
Enter or Space Raises cellClick for the cell, the same event a click raises.

Clicking a cause's header raises causeClick with its links; clicking an effect's header raises effectClick with the causes that trip it and whether the chart expects it tripped now.

Localization

All strings the CauseEffectMatrix 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 CauseEffectMatrix uses the following message keys:

  • matrixLabel, causeHeader, effectHeader, cellLabel, noLink, delaySuffix, noteSuffix, causeLabel, effectLabel, activeSuffix, bypassedSuffix, trippedSuffix, expectedNotTripped, trippedNotExpected, markX, markT, markP, markA, legendLabel, legendActive, legendTripped, legendDiscrepancy, bypassed, noData

German, French, Spanish and Chinese packs are included in the Smart.Industrial package. Tags, labels, notes and the plant's own marks in the marks property come from the application and are not localized by the component; the four standard marks are.

Additional information on WAI-ARIA for the SMART Framework can be found here.