Accessibility in EJ2 TypeScript Schedule control

31 Jan 20268 minutes to read

The Scheduler component is designed following WAI-ARIA specifications, applying appropriate ARIA roles, states, and properties to all interactive elements. This ensures compatibility with assistive technologies such as screen readers. The component includes built-in keyboard navigation support, enabling users who rely on assistive technologies or keyboard-only navigation to interact with all Scheduler features effectively. Assistive technologies announce navigated dates, view changes, and interactive actions performed within the Scheduler, providing clear feedback to users.

The Scheduler implements essential ARIA attributes including aria-label and role to ensure comprehensive accessibility support. For optimal accessibility, use the Scheduler with ARIA-compliant browsers in conjunction with screen readers.

The accessibility compliance for the Schedule control 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 control meet the requirement.
Intermediate - Some features of the control do not meet the requirement.
No - The control does not meet the requirement.

ARIA attributes

The Scheduler’s parent element is assigned with the role of main, identifying it as the primary content area of the control and a unique element within the document structure. These ARIA attributes provide essential context for assistive technologies to interpret the Scheduler’s structure and functionality.

The following ARIA attributes are implemented in the Scheduler to ensure comprehensive accessibility:

Attributes Description
role=”main” Applied to the Scheduler’s parent element to identify it as the main content area and primary interactive region of the control.
role=”button” Assigned to appointment elements within the Scheduler, indicating they are interactive and clickable elements that users can select to view or edit appointment details.
aria-label Applied to the Scheduler’s parent element with a default value reflecting the current date. This attribute updates dynamically as users navigate to different dates. Also assigned to navigation buttons (previous/next), the date range display in the header bar, and appointment elements to provide descriptive labels for assistive technologies.
aria-labelledby References the editor dialog’s title element, enabling assistive technologies to announce the dialog’s purpose when opened.
aria-describedby References the editor dialog’s content description, providing detailed context about the dialog to assistive technology users.
aria-disabled Applied to appointment elements when they are in a disabled state, informing assistive technology users that the appointment cannot be interacted with.

Keyboard interaction

The Scheduler provides comprehensive keyboard navigation support through the allowKeyboardInteraction property, which is enabled by default. This feature allows users to perform all Scheduler operations using keyboard shortcuts, ensuring full accessibility for keyboard-only users. The following keyboard shortcuts enable efficient navigation and interaction with the Scheduler:

Keys Description
Alt + j Focuses the Scheduler element. This shortcut must be implemented at the application level to direct focus to the Scheduler.
Tab Moves focus to the first or currently active item in the Scheduler header bar, then progressively to each appointment element in the visible view. When no appointments are present, focus moves beyond the control.
Shift + Tab Reverses the Tab key’s focus order, moving backward through appointment elements, then to the active or first item in the header bar, and finally out of the control.
Enter Opens the quick info popup for the currently selected cell or appointment, providing details and action options.
Escape Closes any of the popup that are in open state.
Arrow Navigates to adjacent cells in the current view. Use Left/Right arrows for horizontal navigation and Up/Down arrows for vertical navigation across time slots or dates.
Shift + Arrow Extends the selection to multiple cells in the direction of the arrow key, enabling multi-cell selection for creating appointments spanning multiple time slots or days.
Delete Deletes the currently selected appointment or multiple selected appointments.
Ctrl + Click on events Enables selection of multiple appointments simultaneously.
Alt + Number (from 1 to 6) Switches between available Scheduler views. The number corresponds to the view order defined in the views configuration.
Ctrl + Left Arrow Navigates to the previous date period based on the current view (previous day, week, or month).
Ctrl + Right Arrow Navigates to the next date period based on the current view (next day, week, or month).
Left or Right Arrow When focus is on the Scheduler header bar, moves focus to the previous or next interactive element in the header (such as view switcher buttons or date navigation controls).
Space or Enter Activates the currently focused element.
Page Up & Page Down To scroll through the work cells area.
Home Moves the selection to the first cell in the Scheduler.
Shift + Alt + Y Navigates to today’s date.
Shift + Alt + N Opens the appointment editor window to create a new appointment.

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

Ensuring accessibility

The accessibility compliance of the Scheduler control is validated using accessibility-checker and axe-core tools during automated testing to ensure adherence to accessibility standards.

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

See also