@progress/wct-a11y-spec
Version:
Contains accessibility and keyboard navigation specification of Telerik and Kendo web components.
93 lines (51 loc) • 4.12 kB
Markdown
Out of the box, the Kendo UI for Angular PromptBox provides extensive accessibility support and enables users with disabilities to acquire complete control over its features.
The PromptBox is compliant with the [Web Content Accessibility Guidelines (WCAG) 2.2 AA](https://www.w3.org/TR/WCAG22/) standards and [Section 508](https://www.section508.gov/) requirements, follows the [Web Accessibility Initiative - Accessible Rich Internet Applications (WAI-ARIA)](https://www.w3.org/WAI/ARIA/apg/) best practices for implementing the [keyboard navigation](#keyboard-navigation) for its `component` role, provides options for managing its focus and is tested against the most popular screen readers.
## WAI-ARIA
This section lists the selectors, attributes, and behavior patterns supported by the component and its composite elements, if any.
### PromptBox Component
The PromptBox is an input component designed for AI-assisted interactions. It supports single-line and multi-line text input modes, and integrates with the Speech-to-Text Button component.
### Input Field
#### Single-line Input
| Selector | Attribute | Usage |
| -------- | --------- | ----- |
| `.k-prompt-box-singleline .k-prompt-box-input` | `nodeName=input` | Ensures the input field has the proper textbox role. |
| | `aria-label` or `aria-labelledby` | Provides an accessible label for the input. Use `aria-label` or associate with a visible label via `aria-labelledby`. |
| | `placeholder` | Provides a short hint to the user about the expected input. Should not replace proper labeling. |
#### Multi-line Textarea
| Selector | Attribute | Usage |
| -------- | --------- | ----- |
| `.k-prompt-box-multiline .k-prompt-box-textarea` | `nodeName=textarea` | Ensures the textarea has the proper textbox role. |
| | `aria-label` or `aria-labelledby` | Provides an accessible label for the textarea. Use `aria-label` or associate with a visible label via `aria-labelledby`. |
| | `placeholder` | Provides a short hint to the user about the expected input. Should not replace proper labeling. |
| | `aria-multiline=true` | Indicates the textarea supports multiple lines of text. |
### PromptBox Affixes
The PromptBox can have prefix and suffix elements containing buttons and icons.
| Selector | Attribute | Usage |
| -------- | --------- | ----- |
| `.k-prompt-box-affix .k-button` | `role=button` or `nodeName=button` | Buttons in affixes must have appropriate role. |
| | `aria-label` | Affix buttons must be properly labelled to describe their function. |
### Send/Submit Button
The primary action button for submitting the prompt or stopping generation.
| Selector | Attribute | Usage |
| -------- | --------- | ----- |
| `.k-prompt-box-affix .k-button:has(.k-svg-i-arrow-up-outline), .k-prompt-box-affix .k-button:has(.k-svg-i-stop-sm)` | `aria-live=polite` | The send button renders the aria-live attribute to announce the change in status. |
| | `aria-label` | The send button is labelled to indicate its current action (e.g., 'Send prompt' or 'Stop generating'). |
### Speech-to-Text Button
[Speech-to-Text Button accessibility specification]({{speechtotextbutton_a11y_link}})
### File Attachments
When the PromptBox includes file attachments, it must implement the specification for the FileBox component.
[FileBox accessibility specification]({{filebox_a11y_link}})
## Resources
[ARIA Authoring Practices Guide](https://www.w3.org/WAI/ARIA/apg/patterns/)
## Section 508
The PromptBox is fully compliant with the [Section 508 requirements](http://www.section508.gov/).
## Testing
The PromptBox has been extensively tested automatically with [axe-core](https://github.com/dequelabs/axe-core) and manually with the most popular screen readers.
> To report any accessibility issues, contact the team through the [Telerik Support System](https://www.telerik.com/account/support-center).
### Screen Readers
The PromptBox has been tested with the following screen readers and browsers combinations:
| Environment | Tool |
| ----------- | ---- |
| Firefox | NVDA |
| Chrome | JAWS |
| Microsoft Edge | JAWS |