Machine state, sequences and sessions

Sequence Editor <smart-sequence-editor>

SequenceEditor is a step sequence editor and runner for test sequences, batch procedures and recipes.

Accessibility Attributes

The SequenceEditor is built on Table and inherits its accessibility support: a table element with row and column semantics, a labelled toolbar and full keyboard navigation of the rows. In addition, the limit, the measurement and the verdict of every step are text in their own columns, so the result of a test is readable and not only conveyed by the colour of a row.

The following ARIA attributes are used inside the SequenceEditor:

  • role="table" (implicit) - the sequence renders a real table element, so rows, columns and headers carry their native semantics and a screen reader can navigate them as a table.
  • aria-label - names the table, so a reader landing in it knows it is the test sequence rather than one of the other tables on the screen.
  • aria-rowindex - set on each row, so a reader can report position within the sequence even while it is virtualized.
  • aria-selected - indicates whether a step is selected.
  • Result as text - the verdict is a column - "Pass", "Fail", "Aborted", "Skipped" - not only a row colour. The stylesheet colours from the same value, so colour is reinforcement rather than the only channel, which is what ISA-101 asks for and what a colour-blind or screen-reader user needs.
  • Limits as text - each step’s limit is written the way it appears on a spec sheet - "5 ± 0.25 V", "≤ 50 mV" - so a reader is told what the measurement was judged against, not merely whether it passed.
  • aria-disabled - indicates that the sequence is disabled.

Keyboard Interaction

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

Key Action
Tab Moves into the sequence and between its toolbar controls and the table body.
Arrow Up/Down Moves between steps.
Arrow Left/Right Moves between cells within a step.
Home / End Moves to the first / last step.
Page Up / Page Down Scrolls by a page.
Enter or Space Selects the focused step.

Run control (run, pause, abort) is provided as methods rather than as built-in buttons, so the application owns these controls and their keyboard behaviour. Identify a step by its id and not by its row index, because the table can be sorted and the index changes when a column header is clicked.

Localization

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

  • columnStep
  • columnAction
  • columnLimit
  • columnValue
  • columnResult
  • pending
  • running
  • passed
  • failed
  • skipped
  • aborted
  • range
  • nominal
  • gridLabel

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