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.
Selector | Attribute | Usage |
---|---|---|
.k-otp | role=group | Sets the proper role for the OTP. |
.k-otp>input | type=hidden | The hidden input holding the OTP inputs value. |
aria-hidden=true | Hides the hidden input from assistive technologies. | |
.k-otp-input .k-input-inner | label for or aria-label or aria-labelledby | The input needs an accessible name to be assigned to it. |
aria-required=true | The 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 id | Points 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=off | Sets the default autocomplete for the input. | |
.k-invalid .k-input-inner,.ng-invalid .k-input-inner | aria-invalid=true | The attribute is rendered only when the OTP is in a form and announces the valid state of the component. |
.k-disabled .k-input-inner | disabled=disabled or aria-disabled=true | The 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:
Shortcut | Behavior |
---|---|
Typing in the input | Sets the value in the input and moves the focus to the next focusable input in the OTP. (if any) |
Tab | Focuses the next input in the OTP. If the focus is on the last input, focuses the next focusable element on the page. |
Shift + Tab | Focuses the previous input in the OTP. If the focus is on the first input, focuses the previous focusable element before the OTP. |
Right Arrow | Moves the focus to the next focusable input in the OTP. (if any) |
Left Arrow | Moves the focus to the previous focusable input in the OTP. (if any) |
Backspace | Deletes the value of the focused input and moves the focus on the previous input. (if any). |
Delete | Deletes 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:
Environment | Tool |
---|---|
Firefox | NVDA |
Chrome | JAWS |
Microsoft Edge | JAWS |