OTP Input

The OTP Input allows users to enter one-time passwords in segmented fields for multi-factor authentication.

Accessibility Support

Out of the box, the Telerik and Kendo UI OTP provides extensive accessibility support and enables users with disabilities to acquire complete control over its features.

The OTP is compliant with the Web Content Accessibility Guidelines (WCAG) 2.2 standards and Section 508 requirements, follows the Web Accessibility Initiative - Accessible Rich Internet Applications (WAI-ARIA) best practices for implementing the keyboard navigation for its component role, provides options for managing its focus and is tested against the most popular screen readers.

WAI-ARIA

This section lists the selectors, attributes, and behavior patterns supported by the component and its composite elements, if any.

No role attribute is implemented as the html input type="text" element is sufficient for defining the purpose of the component.

SelectorAttributeUsage
.k-otprole=groupSets the proper role for the OTP.
.k-otp>inputtype=hiddenThe hidden input holding the OTP inputs value.
aria-hidden=trueHides the hidden input from assistive technologies.
.k-otp-input .k-input-innerlabel for or aria-label or aria-labelledbyThe input needs an accessible name to be assigned to it.
aria-required=trueThe attribute is rendered only when the OTP is in a form HTML element and announces the required state of the component.
aria-describedby=.k-form-hint id/.k-form-error idPoints to the hint for the input, or if the input is invalid, to the error message. This attribute should only be present when a hint is set or when the input is invalid.
autocomplete=offSets the default autocomplete for the input.
.k-invalid .k-input-inner,.ng-invalid .k-input-inneraria-invalid=trueThe attribute is rendered only when the OTP is in a form and announces the valid state of the component.
.k-disabled .k-input-innerdisabled=disabled or aria-disabled=trueThe attribute is rendered only when the OTP is disabled.

Managing the Focus

All of the inputs in the OTP are focusable by default, and follow the regular tab order of the page. When an input is focused (on focus), its character is selected.

Keyboard Navigation

The OTP supports the following keyboard shortcuts:

ShortcutBehavior
Typing in the inputSets the value in the input and moves the focus to the next focusable input in the OTP. (if any)
TabFocuses the next input in the OTP. If the focus is on the last input, focuses the next focusable element on the page.
Shift + TabFocuses the previous input in the OTP. If the focus is on the first input, focuses the previous focusable element before the OTP.
Right ArrowMoves the focus to the next focusable input in the OTP. (if any)
Left ArrowMoves the focus to the previous focusable input in the OTP. (if any)
BackspaceDeletes the value of the focused input and moves the focus on the previous input. (if any).
DeleteDeletes the value of the focused input.

Testing

The OTP has been extensively tested automatically with axe-core and manually with the most popular screen readers.

Screen Readers

The OTP has been tested with the following screen readers and browsers combinations:

EnvironmentTool
FirefoxNVDA
ChromeJAWS
Microsoft EdgeJAWS

Resources

Feedback