Skip to main content

Scheduler

The Scheduler component manages events and tasks across multiple views, providing customizable features for enhanced planning.

Accessibility Support

Out of the box, the Telerik and Kendo UI 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.2 standards and Section 508 requirements, follows the Web Accessibility Initiative - Accessible Rich Internet Applications (WAI-ARIA) best practices for implementing the keyboard navigation and provides options for managing its focus and is tested against the most popular screen readers.

Scheduler

ARIA Attributes

AttributeDescription
role="application"Specifies the role of the component.
aria-labelRequired as the previous navigation button contains only an icon (no text).
aria-labelRequired as the next navigation button contains only an icon (no text).
aria-labelRequired for the "New Event" button. When collapsed to icon-only at narrow widths, this is the only accessible name.
aria-labelRequired as the Open calendar button contains only an icon (no text).
aria-labelRequired as the Create event button contains only an icon (no text).
aria-live="polite"The new date of the Scheduler view will be announced upon navigation to a new time span or view type.
role="group"Follows SegmentedControl spec: sets the proper role for the group of view buttons.
aria-pressedFollows SegmentedControl spec: specifies the current state of the view SegmentedControl. Only the selected button within the group will have this attribute set to true.
role="grid"The main table of the Agenda view must indicate it is a Data Grid.
role="none"|"presentation"The <tbody> element must have its semantics removed.
role="none"|"presentation"All <table> elements within the Scheduler must have their semantic role removed.
role="button"Indicating that the event element is interactive.
aria-labelLabel containing the title, start, and end date of the appointment.
aria-disabled="true"Read-only events cannot be edited or dragged; aria-disabled signals this to assistive technologies.
aria-labelWhen the date cell shows a short day abbreviation and a date number separately, aria-label should combine both so the link has a descriptive accessible name.
aria-labelThe "N more" button text is ambiguous; aria-label should read "N more events" to clarify what the button reveals.
role="list"The tooltip events container acts as a list of event summaries.
role="listitem"Each tooltip event is a non-interactive list item.
role="group"Groups the day-of-week toggle buttons into a logical set.
aria-labelLabels the weekday picker group (e.g. "Repeat on days").
aria-labelFull day name for each abbreviated day button in the weekday picker (e.g. "Monday").
aria-pressedIndicates whether the day is currently selected in the weekday picker.
tabindexRoving tabindex: only one weekday picker button has tabindex="0", the rest have tabindex="-1".
tabindex="0"Scrollable non-agenda content must be focusable to ensure keyboard scrolling is available.

Keyboard Navigation

TriggerBehavior
tnavigates to today's time period
copens the popup for creation of new appointment
btoggles view between business hours and full day (where available)
Shift + ArrowLeftnavigates to the previous time period
Shift + ArrowRightnavigates to the next time period
Alt/Opt(Mac) + 1,2,3,...navigates to the view with the respective number
F10Focuses the ToolBar.
Arrow Keysmove focus through appointments and the more events button, then continue to the next appointment in sequence
Enteropens the Edit Popup to modify the appointment
Delete or Backspaceopens the Delete confirmation popup to modify the appointment
EnterIf date is focused, opens its Tooltip.
EnterIf Tooltip is focused, navigates to Day view displaying the Tooltip date.
Delete or BackspaceIf a Tooltip is focused, closes that and returns focus to its target date.
ArrowLeft or ArrowRightmove focus through tools
ArrowDownmoves focus to the selected (if present), or the first event (if any) in the view

UX Behavior

FeatureDescription
Multiple viewsSwitches between day, week, month, agenda, and timeline views.
View switcherViews are accessible via a ButtonGroup or a DropDown in the toolbar.
NavigationPrevious and next buttons move to the adjacent time period.
Today buttonA button jumps the view back to the current date instantly.
Calendar navigationA calendar button opens a date picker for jumping to any date.
Business hoursA toggle switches the view between business hours and full day.
Resource groupingEvents can be grouped by resource (e.g., room or person) across applicable views.
Event creationClicking an empty time slot opens a dialog to create a new event.
Event editingClicking an existing event opens an edit form.
Drag and dropEvents can be dragged to a different time slot.
ResizeDragging an event's edge adjusts its duration.

SchedulerBody

ARIA Attributes

AttributeDescription
aria-live="polite"The new date of the Scheduler view will be announced upon navigation to a new time span or view type.
aria-labelThe <select> element visible on the toolbar on small screens must have its aria-label set.

SchedulerContent

ARIA Attributes

AttributeDescription
aria-selectedUsed to signify the currently selected row in Agenda view.
role="rowheader"Must have role explicitly set as it has been removed by the <table> role set (none/presentation).
role="gridcell"Must have role explicitly set as it has been removed by the <table> role set (none/presentation).
tabindex="0"Scrollable elements need to be focusable to ensure scrolling with arrow keys is available (does not apply to agenda view).

SchedulerEvent

ARIA Attributes

AttributeDescription
role="button"Indicating that the event element is interactive.
aria-labelLabel containing the title, start, and end date of the appointment.

UX Behavior

FeatureDescription
Drag and dropThe event can be dragged to a different time slot or resource.
ResizeDragging the event's edge changes its start or end time.
Edit on clickClicking the event opens an edit form.
Overflow indicatorA count badge shows when multiple events overlap in the same slot.

SchedulerTable

ARIA Attributes

AttributeDescription
role="none"|\"presentation"Inner <table> elements within the Agenda Scheduler must have their semantic role removed.
role="rowgroup"Must have role explicitly set as it has been removed by the <table> role set (none/presentation).
role="row"Must have role explicitly set as it has been removed by the <table> role set (none/presentation).
role="columnheader"Must have role explicitly set as it has been removed by the <table> role set (none/presentation).

SchedulerTimes

ARIA Attributes

AttributeDescription
role="none"|\"presentation"Times sidebar tables must have their semantics removed. The role propagates to child th/tr elements, resolving empty-table-header violations.

SchedulerToolbar

ARIA Attributes

AttributeDescription
role="toolbar"Follows Toolbar spec: sets the component role.
aria-label|titleFollows Toolbar spec: each toolbar must have a label specifying its purpose.

Testing

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

Screen Readers

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

EnvironmentTool
FirefoxNVDA
ChromeJAWS
Microsoft EdgeJAWS

Resources

Feedback