New to Kendo UI for Angular? Start a free 30-day trial

Accessibility

The Kendo UI for Angular Scheduler component is WCAG 2.1 AAA and Section 508 compliant. The component also follows the WAI-ARIA best practices for implementing the keyboard navigation for its component role, and is tested against the popular screen readers.

The following example demonstrates the accessibility compliance of the Scheduler component. Open the example in a new window to evaluate it with Axe Core or other accessibility tools.

Example
View Source
Change Theme:

WAI-ARIA Support

The component is a single tab stop, so the arrows must be used for internal navigation.

Scheduler Wrapper

ElementAttributeUsage
.k-schedulerrole=applicationSpecifies the role of the component.
aria-activedescendant=[.k-event id]Points to the currently active appointment in the Scheduler.

Scheduler Toolbar

The Scheduler toolbar must implement the specification for a ToolBar component. Components that are part of the ToolBar follow these requirements:

ElementAttributeUsage
.k-nav-prev,.k-nav-nextaria-labelRequired as those buttons contain only icon (no text).
.k-nav-currentaria-live=politeThe new date of the Scheduler view will be announced upon navigation to new time span / view type.
.k-views-dropdownaria-labelSpecifies the purpose of the element. The <select> element visible on the toolbar on small screens must have its aria-label set.

Depending on the current view, The Scheduler content implements different roles. Below are described the three possible approaches.

Agenda View

In case of an Agenda view, the role assigned to the Scheduler layout table (k-scheduler-layout element) must be grid.

Table element:

ElementAttributeUsage
.k-scheduler-agendaviewrole=gridThe main table of the Agenda view must indicate it is a Data Grid.
.k-scheduler-agendaview>tbodyrole=presentationThe <tbody> element must have its semantics removed.
.k-scheduler-agendaview .k-scheduler-tablerole=presentationThose <table> elements within the Scheduler must have their semantic role removed.
.k-scheduler-agendaview .k-scheduler-table>tbodyrole=rowgroupThose elements must have their role explicitly set as it has been removed by the <table> role set (none/presentation).
.k-scheduler-agendaview .k-scheduler-table>tbody>trrole=rowThose elements must have their role explicitly set as it has been removed by the <table> role set (presentation).
.k-scheduler-agendaview .k-scheduler-table>tbody>tr>throle=columnheaderThose elements must have their role explicitly set as it has been removed by the <table> role set (presentation).
.k-scheduler-agendaview .k-scheduler-content>.k-scheduler-table>tbody>traria-selectedThe aria-selected attribute must be used to signify the currently selected row. As in Agenda view the selection follows focus, that would be the current active descendant row.

Content table td.k-scheduler-groupcolumn and td.k-scheduler-datecolumn elements

ElementAttributeUsage
.k-scheduler-content>.k-scheduler-table>tbody>tr>.k-scheduler-groupcolumn,.k-scheduler-content>.k-scheduler-table>tbody>tr>.k-scheduler-datecolumnrole=rowheaderThose elements must have their role explicitly set as it has been removed by the <table> role set (presentation).
.k-scheduler-content>.k-scheduler-table>tbody>tr>.k-scheduler-timecolumn,.k-scheduler-content>.k-scheduler-table>tbody>tr>.k-scheduler-timecolumn+tdrole=gridcellThose elements must have their role explicitly set as it has been removed by the <table> role set (none/presentation).

Year View

Scheduler in Year view implements the ARIA specification of the MultiViewCalendar.

All Other Views

For the rest of the views the role="presentation" attribute must be applied to all inner <table> elements in the component. This enables us to manage the focus inside the component using the arrow keys.

ElementAttributeUsage
.k-scheduler-dayview,.k-scheduler-monthview,.k-scheduler-timelineviewrole=presentationAll <table> elements within the Scheduler must have their semantic role removed.
.k-eventrole=buttonIndicating that the events element is interactive.
aria-labelLabel containing the title, start, and end date of the appointment, so that all of them are announced upon navigation to an appointment.

Section 508

The Scheduler is compliant with the Section 508 requirements.

Static analyzers

The tool used for Automated Testing is Axe Core.

Screen Readers

EnvironmentTool
FirefoxNVDA
ChromeJAWS
Microsoft EdgeJAWS

Any Accessibility Issues could be reported in the Telerik Support System.