Instrument readouts and controls
Jog Panel <smart-jog-panel>
JogPanel is the manual motion panel of a machine pendant.
Accessibility Attributes
The JogPanel is a group of buttons. Every jog button is its own tab stop, because a jog is an action and must not be reached by accident with an arrow key. Each button is named for what it does and, when it will not act, why: "Jog X plus", "Jog X plus, Z is jogging" or "Jog X plus, X at plus limit". The step and speed rows are radio groups with one tab stop each. The start of a jog, a step, a home request and a stop are announced; a refused press is announced assertively with the reason. The position readouts are plain text and not live regions, because a readout that updates at 10 Hz would interrupt everything else.
The following ARIA attributes are used inside the JogPanel:
- role="group" - set on the container, with an aria-label of the label and "jog panel".
- aria-label - set on each jog button: "Jog <axis> plus" or "minus", followed by the reason it is refused when it is, the interlock, the axis already jogging, or the limit reached. Set on each home button: "Home <axis>".
- aria-pressed="true" - set on the jog button while its continuous jog runs.
- aria-disabled="true" - set on a jog button that would be refused, and on the home buttons while interlocked or while an axis is jogging. The buttons stay in the tab order and stay readable; pressing one raises blocked and announces the reason.
- role="radiogroup" - set on the step row and the speed row, each named by its title, with role="radio" and aria-checked on the options and a roving tabindex.
- role="status" - set on the hint under the panel, so "Jogging X plus at 25%" and the interlock reason are read as they appear.
- aria-hidden="true" - set on the arrow glyphs and the home glyph; the words carry the meaning.
Keyboard Interaction
The following keyboard shortcuts are available to interact with the JogPanel:
| Key | Action |
|---|---|
| Tab | Moves between the Stop button, each jog and home button, the step row and the speed row. |
| Space / Enter (down) on a jog button | In Continuous, begins the jog, raising jogStart. With a step selected, requests one increment, raising jogStep. Key repeat does nothing more. |
| Space / Enter (up) on a jog button | Ends the continuous jog, raising jogStop. |
| Focus leaving a jog button | Ends the continuous jog. A jog held by a key that has lost focus is not still jogging. |
| Escape | Anywhere in the panel: ends any jog and raises stop. |
| Arrow keys, Home, End in the step or speed row | Move focus and select, as in a radio group. Selecting a step ends any jog in progress. |
| Space / Enter on a home button or Stop | Requests the home, or stops. |
The pointer works the same way: pointerdown on a jog button begins or steps, and pointerup anywhere, the pointer sliding off the button, or the pointer being cancelled ends a continuous jog. Every jogStart is paired with a jogStop.
Localization
All strings the JogPanel 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 JogPanel uses the following message keys:
- panelLabel, plus, minus, jogLabel, positionLabel, home, homeAll, stop
- stepLabel, continuous, continuousLabel, stepOption, speedLabel, speedOption, notHomed, noAxes
- jogging, stepped, homing, homingAll, stopped, busy, atLimit, blocked
German, French, Spanish and Chinese packs are included in the Smart.Industrial package. Axis labels and units come from the axes property and are not localized by the panel.
Additional information on WAI-ARIA for the SMART Framework can be found here.