Accessibility Support
Out of the box, the Telerik and Kendo UI TimePicker provides extensive accessibility support and enables users with disabilities to acquire complete control over its features.
The TimePicker 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.
TimePicker Wrapping Element
Selector | Attribute | Usage |
---|---|---|
.k-input-inner | role=combobox | The input element should follow the combobox specification. |
label for or aria-label or aria-labelledby | The input needs an accessible name to be assigned to it. | |
aria-expanded=true/false | Announces whether the Popup is visible or not. | |
aria-haspopup=dialog | Indicates the component has a Dialog Popup. | |
aria-controls=.k-animation-container id | Points to the popup element. Signifies that the combobox element controls the dialog popup. | |
readonly or aria-readonly | Attribute is rendered only when the DatePicker is readonly. | |
.k-invalid .k-input-inner,.ng-invalid .k-input-inner | aria-invalid=true | Attribute is rendered only when the picker is in form and announces the valid state of the component. |
.k-disabled .k-input-inner | disabled=disabled or aria-disabled=true | Attribute is rendered only when the DatePicker is disabled. |
.k-input-button | role=button or nodeName=button | The element must either be a <button> element or must have role=button assigned. |
aria-label | The button needs an accessible name to be assigned to it. | |
tabindex=-1 | Button element must not be focusable. |
List Elements on the Popup
Selector | Attribute | Usage |
---|---|---|
.k-time-list | role=listbox | The timelist elements must have listbox role assigned. |
aria-label or aria-labelledby | The listbox needs an accessible name to be assigned to it. | |
.k-reset | role=none/presentation | The k-rest <ul> element semantic meaning must be removed from the accessibility tree. |
.k-item | role=option | The available options in the listbox must be marked as such. |
aria-selected=true/false | Selected option must have its aria-selected attribute set to true . |
Managing the Focus
Initial focus is on the selected time.
The time dropdown tab sequence is: hours part, minutes part, seconds part, Cancel button, Set button, Now button (activated on Enter). The tab key is trapped in the popup.
Enhanced Mouse UX - when mouse is over a timelist - it gets the focus.
Keyboard Shortcuts
Actions applied to the input:
Shortcut | Behavior |
---|---|
Esc | Closes the popup |
Alt/Opt(Mac) + Down | Opens the popup |
Alt/Opt(Mac) + Up | Closes the popup |
Up | Increases the value of the time segment that is highlighted. |
Down | Decreases the value of the time segment that is highlighted. |
Left | Moves to previous time segment in the input. |
Right | Moves to next time segment in the input. |
Backspace | Deletes value of the time segment. |
Actions applied to the popup
Shortcut | Behavior |
---|---|
Esc | Closes the popup |
Shift + Tab or Left | Focuses previous carousel. |
Tab or Right | Focuses next carousel. |
Down | Selects next value in the carousel. |
Up | Selects previous value in the carousel. |
Testing
The TimePicker has been extensively tested automatically with axe-core and manually with the most popular screen readers.
Screen Readers
The TimePicker has been tested with the following screen readers and browsers combinations:
Environment | Tool |
---|---|
Firefox | NVDA |
Chrome | JAWS |
Microsoft Edge | JAWS |