A number field with minus and plus buttons for small, exact adjustments, such as a quantity, on the native input so typing, arrows and validation still work.
Tier 2 · behaviourNative number input (spinbutton)beta
stepper.js (in kit.js) makes the buttons call the input's own stepUp() and stepDown(), so min, max and step are respected, fires input and change, and disables a button at its limit. Holding a button repeats.
Accessibility
The input is a native spinbutton: screen readers announce its value and range, and Up and Down arrows change it.
The buttons are for pointers and touch, so they're out of the tab order (keyboard users have the arrows); they still have names.
Each button is 38px high and wide, the size of the control.