UNPKG

@progress/wct-a11y-spec

Version:

Contains accessibility and keyboard navigation specification of Telerik and Kendo web components.

347 lines 11.4 kB
[ { "h2": "Accessibility Support" }, { "p": "Out of the box, the Telerik and Kendo UI Chat provides extensive accessibility support and enables users with disabilities to acquire complete control over its features." }, { "p": "The Chat is compliant with the [Web Content Accessibility Guidelines (WCAG) 2.2 standards](https://www.w3.org/TR/WCAG22/) and [Section 508](http://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](#managing-the-focus) and is tested against the most popular [screen readers](#screen-readers)." }, { "h3": "WAI-ARIA" }, { "p": "This section lists the selectors, attributes, and behavior patterns supported by the component and its composite elements, if any." }, { "h4": "Chat component" }, { "p": "The Chat component is a composite one and integrates the accessibility of the ToolBar, Dialog, DropDownButton and ContextMenu components." }, { "table": { "headers": [ "Selector", "Attribute", "Usage" ], "rows": [ { "Selector": "`.k-message-list`", "Attribute": "`role=log`", "Usage": "The role of the Chat message list must imply that there is a log (list) of messages." }, { "Selector": "", "Attribute": "`aria-label`", "Usage": "Announces the purpose of the Chat message list (for ex. 'Message list')." }, { "Selector": "", "Attribute": "`aria-live=polite`", "Usage": "Announces new messages in the Chat message list." }, { "Selector": "`.k-bubble`", "Attribute": "`tabindex=0`", "Usage": "The Chat bubble must be focusable." }, { "Selector": "`.k-bubble .k-typing-indicator`", "Attribute": "`tabindex=-1`", "Usage": "The Chat bubble typing indicator should not be focusable." }, { "Selector": "`.k-suggestion-group`", "Attribute": "`role=group`", "Usage": "Indicates that the suggestion container element is a group." }, { "Selector": "`.k-suggestion`", "Attribute": "`role=button`", "Usage": "The suggestion elements must be exposed as buttons." }, { "Selector": "", "Attribute": "`tabindex=0`", "Usage": "The suggestion elements must be part of the page tabsequence." }, { "Selector": "`.k-input-suffix>.k-button`", "Attribute": "`role=button` or `nodeName=button`", "Usage": "The buttons must have appropriate role." }, { "Selector": "", "Attribute": "`aria-label` or `title`", "Usage": "The buttons must be properly labelled." }, { "Selector": "`.k-input-suffix>.k-chat-send.k-disabled`", "Attribute": "`aria-disabled=true`", "Usage": "Announces send action as disabled if necessary." }, { "Selector": "`.k-message-group-content>.k-chat-download-button`", "Attribute": "`aria-label` or `title`", "Usage": "The download button must be properly labelled." }, { "Selector": "", "Attribute": "`role=button` or `nodeName=button`", "Usage": "The download button must have an appropriate role." }, { "Selector": "`.k-message-reference>.k-button`", "Attribute": "`aria-label` or `title`", "Usage": "The reference close button must be properly labelled." }, { "Selector": "", "Attribute": "`role=button` or `nodeName=button`", "Usage": "The reference close button must have an appropriate role." }, { "Selector": "`.k-bubble-expandable-indicator`", "Attribute": "`role=button`", "Usage": "The expandable indicator must have an appropriate role." }, { "Selector": "", "Attribute": "`aria-label` or `title`", "Usage": "The expandable indicator must be properly labelled." }, { "Selector": "", "Attribute": "`tabindex=0`", "Usage": "The expandable indicator must be part of the page tabsequence." } ] } }, { "h4": "ToolBar Component" }, { "p": "Chat Message ToolBar follows the specification for the the ToolBar component." }, { "link": { "title": "ToolBar accessibility specification", "source": "{{toolbar_a11y_link}}" } }, { "h4": "Textarea Component" }, { "link": { "title": "Textarea accessibility specification", "source": "{{textarea_a11y_link}}" } }, { "h4": "DropDownButton Component" }, { "link": { "title": "DropDownButton accessibility specification", "source": "{{dropdownbutton_a11y_link}}" } }, { "h4": "SpeechToTextButton Component" }, { "link": { "title": "SpeechToTextButton accessibility specification", "source": "{{speechtotextbutton_a11y_link}}" } }, { "h4": "ContextMenu Component" }, { "link": { "title": "ContextMenu accessibility specification", "source": "{{contextmenu_a11y_link}}" } }, { "h3": "Managing the Focus" }, { "p": "Focusable elements in the Chat are part of the page tabsequence. Those are:" }, { "ul": [ "`.k-suggestion` (if any);", "`.k-message-box textarea`;", "all `.k-input-suffix button` elements;", "all `.k-chat-file .k-menu-button` elements (if any);", "all `.k-chat-download-button` elements (if any);", "all `.k-message-reference .k-button` elements (if any);" ] }, { "h3": "Keyboard Shortcuts" }, { "p": "This section lists the keyboard shortcuts supported by the Chat composite component." }, { "h4": "Toolbar Component" }, { "link": { "title": "ToolBar specification", "source": "{{toolbar_kb_link}}" } }, { "h4": "DropDownButton Component" }, { "link": { "title": "DropDownButton specification", "source": "{{dropdownbutton_a11y_link}}" } }, { "h4": "SpeechToTextButton Component" }, { "link": { "title": "SpeechToTextButton specification", "source": "{{speechtotextbutton_a11y_link}}" } }, { "h4": "ContextMenu Component" }, { "p": "The ContextMenu component provides a context menu for the chat bubble upon `Right Click` / `Shift + F10 key press`." }, { "link": { "title": "ContextMenu specification", "source": "{{contextmenu_a11y_link}}" } }, { "h3": "Keyboard Shortcuts applicable to the `k-bubble` element" }, { "table": { "headers": [ "Shortcut", "Behavior" ], "rows": [ { "Shortcut": "`Up Arrow`", "Behavior": "Selects and focuses the previous Chat bubble" }, { "Shortcut": "`Down Arrow`", "Behavior": "Selects and focuses the next Chat bubble" }, { "Shortcut": "`Home`", "Behavior": "Selects and focuses the first Chat bubble" }, { "Shortcut": "`End`", "Behavior": "Selects and focuses the last Chat bubble" } ] } }, { "h3": "Keyboard Shortcuts applicable to the `k-suggestion`, `k-bubble-expandable-indicator`, and `k-input-suffix button` elements" }, { "table": { "headers": [ "Shortcut", "Behavior" ], "rows": [ { "Shortcut": "`Enter/Space`", "Behavior": "Triggers a click action on the element." } ] } }, { "h3": "Keyboard Shortcuts applicable to the `k-input-inner` element" }, { "table": { "headers": [ "Shortcut", "Behavior" ], "rows": [ { "Shortcut": "`Enter`", "Behavior": "Sends the message." }, { "Shortcut": "`Shift + Enter`", "Behavior": "Start a new line in the textarea message box." } ] } }, { "h3": "Testing" }, { "p": "The Chat has been extensively tested automatically with [axe-core](https://github.com/dequelabs/axe-core) and manually with the most popular screen readers." }, { "h3": "Screen Readers" }, { "p": "The Chat has been tested with the following screen readers and browsers combinations:" }, { "table": { "headers": [ "Environment", "Tool" ], "rows": [ [ "Firefox", "NVDA" ], [ "Chrome", "JAWS" ], [ "Microsoft Edge", "JAWS" ] ] } }, { "h3": "Resources" }, { "ul": [ { "link": { "source": "https://www.w3.org/TR/wai-aria-1.2/#log", "title": "WAI-ARIA specification for log" } } ] } ]