Out of the box, the Kendo React Scheduler provides extensive accessibility support and enables users with disabilities to acquire complete control over its features.
The Scheduler is compliant with the Web Content Accessibility Guidelines (WCAG) 2.1 AA standards](https://www.w3.org/TR/WCAG21/) 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.
The following table lists the selectors, attributes, and behavior patterns supported by the Scheduler component:
The component is a single tab stop, so the arrows must be used for internal navigation. Notable exception is that scrollable containers in non-agenda views should be focusable too.
|.k-scheduler||Specifies the role of the component.|
|Points to the currently active appointment in the Scheduler.|
The Scheduler toolbar must implement the specification for a ToolBar component.
ToolBar accessibility specification
Below are listed the requirements for those components part of the ToolBar.
|.k-nav-prev,.k-nav-next||Required as those buttons contain only icon (no text).|
|.k-nav-current||The new date of the Scheduler view will be announced upon navigation to new time span / view type.|
|.k-views-dropdown||Specifies the purpose of the element. The |
Depending on the current view, The Scheduler component implements different roles. Below are described the three possible approaches:
Scheduler in Agenda view
In case of an Agenda view, the role assigned to the Scheduler layout table (
k-scheduler-layout element) must be
|.k-scheduler-agendaview||The main table of the Agenda view must indicate it is a Data Grid.|
|.k-scheduler-agendaview .k-scheduler-table||Those |
|.k-scheduler-agendaview .k-scheduler-table>tbody||Those elements must have their role explicitly set as it has been removed by the |
|.k-scheduler-agendaview .k-scheduler-table>tbody>tr||Those elements must have their role explicitly set as it has been removed by the |
|.k-scheduler-agendaview .k-scheduler-table>tbody>tr>th||Those elements must have their role explicitly set as it has been removed by the |
|.k-scheduler-agendaview .k-scheduler-content tr.k-state-selected|
Content table td.k-scheduler-groupcolumn and td.k-scheduler-datecolumn elements
|.k-scheduler-content>.k-scheduler-table>tbody>tr>.k-scheduler-groupcolumn,.k-scheduler-content>.k-scheduler-table>tbody>tr>.k-scheduler-datecolumn||Those elements must have their role explicitly set as it has been removed by the |
|.k-scheduler-content>.k-scheduler-table>tbody>tr>.k-scheduler-timecolumn,.k-scheduler-content>.k-scheduler-table>tbody>tr>.k-scheduler-timecolumn+td||Those elements must have their role explicitly set as it has been removed by the |
Scheduler in Year view
Scheduler in Year view implements the ARIA specification of the MultiViewCalendar.
Scheduler in all other views
For the rest of the views the
role="none/presentation" must be used on all inner
<table> elements in the widget. This way we could freely implement managed focused inside the component based on the arrow keys.
|.k-event||Indicating that the events element is interactive.|
|Label containing the title, start, and end date of the appointment, so that all of them are announced upon navigation to an appointment.|
|.k-scheduler-layout:not(.k-scheduler-agendaview) .k-scheduler-content||Scrollable elements need to be focusable (does not apply to agenda view) to ensure scrolling with the arrow keys is available.|
WAI-ARIA specification for grid
WAI-ARIA specification for application
The Scheduler is fully compliant with the Section 508 requirements.
The Scheduler has been extensively tested automatically with static code analyzers and manually with the most popular screen readers.
To report any accessibility issues, contact the team through the Telerik Support System.
The following table lists the screen readers supported by the Scheduler: