OGE logoOGE

Slider

The WAI-ARIA APG slider — and its multi-thumb sibling — as bare form editors on the suite's one control base: arrows move by step (RTL-aware), PageUp/PageDown by largeStep, Home/End to the ends, dragging commits live ([debounce] throttles it) and Escape cancels the gesture, restoring the start value — no reference slider offers that.

Works standalone via [(value)], with Signal Forms via [formField], and with reactive/template forms via formControl/ngModel — the same three modes as every other editor in the family, with no extra wiring.

APG slider multi-thumb Signal Forms Escape cancels

Getting started

One thumb, the full APG key set, live commits while dragging. valueCommitted reports every change; slideEnded fires once per gesture at release — the DevExtreme onHandleRelease timing without a mode switch.

value step keyboard

Value: 40

Range slider

Two thumbs selecting a [start, end] pair. Each thumb's aria-valuemin/aria-valuemax is dynamically constrained by the other — the APG multi-thumb rule — and minRange keeps a minimum gap. Clicking the track moves the nearest thumb.

[start, end] minRange aria constraint

Range: 200 – 600

Ticks and labels

Ticks sit on the tickStep grid (falling back to largeStep, then step). showTickLabels renders a formatted label under each tick — Kendo's tick title callback, fed by formatValue; showLabels renders just the min/max ends instead.

showTicks tickStep showLabels

Value indicator

valueIndicator: 'active' shows the bubble while focused or dragging; 'always' keeps it up. formatValue feeds the bubble, the end labels and aria-valuetext — display and screen-reader announcement can never diverge.

valueIndicator formatValue aria-valuetext

Buttons and vertical

showButtons adds Kendo-style increment/decrement buttons with press-and-hold repeat (the number box's spin timing). A vertical slider keeps the same role with aria-orientation — Up still increases, per the APG.

showButtons orientation

Inside a form

A bare editor: <oge-form> renders the label/hint/error chrome around it. dataType: 'number' still defaults to the number box — the slider is an explicit editorType choice, with min/max/step from editorOptions.

editorType: slider bare editor

Model: 70