ComboBox Accessibility
Out of the box, the Kendo React ComboBox provides extensive accessibility support and enables users with disabilities to acquire complete control over its features.
The ComboBox 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.
WAI-ARIA
The following table lists the selectors, attributes, and behavior patterns supported by the ComboBox component:
ComboBox wrapper
Selector | Attribute | Usage |
---|---|---|
.k-input-inner | role=combobox | Announces the presence of a combobox as inner element of the combobox used for filtering. |
label for or aria-label or aria-labelledby | The input needs an accessible name to be assigned to it. | |
aria-haspopup=listbox | Indicates the component has a listbox Popup. | |
aria-expanded=true/false | Announces the state of the visibility of the popup. | |
aria-controls=.k-list-ul id | Points to the listbox element. Signifies that the combobox element controls the listbox . | |
aria-activedescendant=.k-list-item.k-focus id | Points to the focused item in the popup. The focused item is changed via keyboard navigation. If the popup is not visible, the attribute should not point to any element or should be removed. | |
aria-autocomplete=list | Attribute is rendered and value is set to list when filtering feature is enabled. | |
aria-autocomplete=both | Attribute is rendered and value is set to both when both filtering and suggest features are enabled. | |
aria-autocomplete=inline | Attribute is rendered and value is set to only suggest feature is enabled. | |
readonly=readonly or aria-readonly=true | Attribute is rendered only when the combobox is readonly. | |
aria-busy=true | Attribute is rendered only when the combobox is loading data. | |
tabindex=0 | The element must be focusable. | |
.k-invalid .k-input-inner,.ng-invalid .k-input-inner | aria-invalid=true | Attribute is rendered only when the combobox is in form and announces the valid state of the component. |
.k-disabled .k-input-inner | disabled=disabled or aria-disabled=true | Attribute is rendered only when the combobox is disabled. |
.k-input-button | role=button or nodeName=button | The element should either be a <button> element or should have role="button" assigned. |
aria-label | Button element must have discernible text. | |
tabindex=-1 | Button element should not be focusable. |
ListBox Popup
The Popup element of the component should implement the specification for a Popup List component.
Selector | Attribute | Usage |
---|---|---|
.k-animation-container | role=region | When the component container is appended to the <body> element of the document, it needs a landmark role to be assigned to it. Otherwise, it should be appended to an element with an appropriate landmark role. |
aria-label or aria-labelledby | Provides a label when the container has a region role assigned. | |
.k-list-ul | role=listbox | Identifies the ul element as a listbox. |
aria-label or aria-labelledby | Provides a label for the listbox of the combobox. | |
.k-list-item | role=option | Identifies the li element as a listbox option. |
.k-list-item.k-selected | aria-selected=true | Indicates the selected state of the item. |
Resources
ARIA practices: Editable Combobox With Both List and Inline Autocomplete Example
ARIA Practices: Editable Combobox With List Autocomplete Example
Section 508
The ComboBox is fully compliant with the Section 508 requirements.
Testing
The ComboBox 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.
Screen Readers
The following table lists the screen readers supported by the ComboBox:
Environment | Tool |
---|---|
Firefox | NVDA |
Chrome | JAWS |
Microsoft Edge | JAWS |