Syncfusion AI Assistant

How can I help you?

Accessibility in React Schedule component

1 Jun 20269 minutes to read

The Scheduler has been designed based on the WAI-ARIA specifications, thus applying the appropriate ARIA roles, states, and properties for the Scheduler elements. It also includes built-in keyboard navigation support, enhancing usability for individuals using assistive technologies or relying solely on keyboard input. As per accessibility standards, navigated dates, views, and other interactive actions performed within the Scheduler are announced to users utilizing assistive technologies such as screen readers.

The Scheduler utilizes essential ARIA attributes like aria-label and role to ensure accessibility. For accurate interpretation, it should be used with an ARIA-compliant browser and a running screen reader.

The accessibility compliance for the Schedule component is outlined below.

Accessibility Criteria Compatibility
WCAG 2.2 Support Yes
Section 508 Support Yes
Screen Reader Support Yes
Right-To-Left Support Yes
Color Contrast Yes
Mobile Device Support Yes
Keyboard Navigation Support Yes
Accessibility Checker Validation Yes
Axe-core Accessibility Validation Yes
Yes - All features of the component meet the requirement.
Intermediate - Some features of the component do not meet the requirement.
No - The component does not meet the requirement.

ARIA attributes

The Scheduler’s parent element is assigned with a role of main, to denote it as the main content of a component as well as a unique element of the entire document.

The following ARIA attributes are used in the Scheduler:

Attributes Description
role=”main” Attribute added to the Scheduler element describes the actual role of the element and denote it as a main and unique content.
role=”button” Attribute is assigned to the appointments of Scheduler, to denote it as a clickable element.
aria-label Attribute is set to the Scheduler parent element and its default value is Scheduler’s current date. On every time, the date is navigated, this attribute is updated with appropriate current date values. It is also assigned to other scheduler UI elements such as previous and next date navigation buttons depicting its purpose, div element displaying date range in the header bar and appointment elements.
aria-labelledby It indicates editor dialog title to the user through assistive technologies.
aria-describedby It indicates editor dialog content description to the user through assistive technologies.
aria-disabled Attribute is set to the appointment element to indicates the disabled state of the Scheduler.

The Syncfusion® React Scheduler component uses a complex table structure to render calendar views (such as day, week, and month). As a result, automated accessibility tools (such as IBM Equal Access Accessibility Checker) may report the following warnings:

  • Table has no headers identified: Some tables rendered by the Scheduler do not have headers explicitly identified, which may trigger warnings in accessibility checkers.
  • Complex table does not have headers for each cell properly defined with ‘header’ or ‘scope’: The Scheduler’s internal table structure may not define headers for every cell using the header or scope attributes, leading to additional warnings.

  • Label text is located after its associated text input or <select> element: Certain form fields and dropdowns within the built-in editor windows place the label after the input control, which may flag standard layout order validation.

  • The ‘for’ attribute is not the ‘id’ of a valid element: In the built-in scheduler editor window with multiple resources enabled, internal reference links between a label and its input component may trigger missing reference warnings in automated checkers.

  • Accessible name does not match or contain the visible label text: Certain interactive elements within the component may have mismatched programmatic names compared to their displayed labels, which can be flagged by label-matching verification tools. This behavior occurs specifically in the Month View date headers and the Agenda View appointment elements.

  • Text contrast does not meet the minimum WCAG AA requirements: Certain elements with specific text sizes and weights may fail standard color contrast ratio checks under default theme settings. This behavior occurs specifically in Adaptive Mode when utilizing Multiple Resources.

  • The combobox ‘aria-expanded’ attribute is false, but the combobox popup is visible: The aria-expanded attribute remains false even when the combobox popup is visible in the Editor Window drop-down components because the component uses a custom composite layout to render standard dropdown elements, which automated verification tools flag as a layout or state mismatch.

  • The tabbable element’s role ‘cell’ is not a widget role:
    The tabbable element’s role cell is not a widget role, which can trigger errors in automated accessibility checkers because a standard cell role is not recognized as an interactive widget by default. This behavior occurs specifically in the multiple resource Timeline views.

Keyboard interaction

All Scheduler actions can be controlled via keyboard using the allowKeyboardInteraction property, which is true by default. The following standard keys are supported within the Scheduler:

Keys Description
Alt + j Focuses the Scheduler element [provided from application end].
Tab Focuses the first or active item on the Scheduler header bar and then move the focus to the next available event elements. If no events present, then focus moves out of the component.
Shift + Tab Reverse focusing of the Tab key functionality. Inverse focusing of event elements from the last one and then move onto the first or active item on Scheduler header bar and then moves out of the component.
Enter Opens the quick info popup on the selected cells or events.
Escape Closes any of the popup that are in open state.
Arrow To move onto the next available cells in either of the needed directions. (left, right, top and right)
Shift + Arrow For multiple cell selection on either direction.
Delete Deletes one or more selected events.
Ctrl + Click on events To select multiple events.
Alt + Number (from 1 to 6) To switch between the views of Scheduler.
Ctrl + Left Arrow To navigate to the previous date period.
Ctrl + Right Arrow To navigate to the next date period.
Left or Right Arrow On pressing any of these keys, when focus is currently on the Schedule header bar, moves the focus to the previous or next items in the header bar.
Space or Enter It activates any of the focused items.
Page Up & Page Down To scroll through the work cells area.
Home To move the selection to the first cell of Scheduler.
Shift + Alt + Y To navigate to today date.
Shift + Alt + N To open editor window.

You can refer to our React Scheduler feature tour page for its groundbreaking feature representations. You can also explore our React Scheduler example to know how to present and manipulate data.

Ensuring accessibility

The Scheduler component’s accessibility levels are ensured through automated testing using tools such as an accessibility-checker and axe-core.

The accessibility compliance of the Scheduler component is demonstrated in the following sample. Open the sample in a new window to evaluate the accessibility of the Scheduler component with accessibility tools.

See also