You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: blazor/ribbon/accessibility.md
+62-65Lines changed: 62 additions & 65 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ documentation: ug
9
9
10
10
# Accessibility in Blazor Ribbon component
11
11
12
-
The Ribbon component followed the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles)that are commonly used to evaluate accessibility.
12
+
The Ribbon component is designed to follow accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/), and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles)roles.
13
13
14
14
The accessibility compliance for the Ribbon component is outlined below.
15
15
@@ -39,80 +39,77 @@ The accessibility compliance for the Ribbon component is outlined below.
39
39
40
40
## WAI-ARIA attributes
41
41
42
-
The Ribbon component followed the [WAI-ARIA](https://www.w3.org/WAI/ARIA/apg/patterns/tabs/) patterns to meet the accessibility. The following ARIA attributes are used in the Ribbon component:
42
+
The Ribbon component uses [WAI-ARIA](https://www.w3.org/WAI/ARIA/apg/patterns/tabs/) patterns to enhance accessibility. The following ARIA attributes are used in the component:
43
43
44
-
|Attributes| Purpose |
44
+
|Attribute| Purpose |
45
45
| --- | --- |
46
-
|`role=tablist`|Used to identify the element that serves as the container for a set of tabs. |
47
-
|`role=tab`|Indicates an interactive element within a tablist that, when activated, displays its associated tab panel.|
48
-
|`role=tabpanel`|Specifies the role for the content associated with an active tab, describing its role in presenting the active content.|
49
-
|`role=button`|Represents a clickable element that trigger a response when activated by the user.|
50
-
|`role=menu`|Represents an item that have sub menu.|
51
-
|`role=menuitem`|Indicates an option in a set of choices within a menu. |
52
-
|`role=combobox`| Identifies an element as an input that controls another element, commonly used for dropdowns. |
53
-
|`role=option`|Used for selectable items in a combobox. |
54
-
|`role=gridcell`|Specified as gridcell for the tiles in the color palette. |
55
-
|`aria-orientation`| Indicates the element's orientation as horizontal, vertical, or unknown/ambiguous. |
56
-
|`aria-selected`| Indicates the current `selected` state of various widgets. |
57
-
|`aria-labelledby`|Sets to the Tab content element to indicates the associated Tab header for the content. |
58
-
|`aria-controls`|Indicates the associated tabpanel for the header by setting the attribute on Tab items. |
59
-
|`aria-haspopup`| Indicates availability and type of interactive popup triggered by the element it's set on. |
60
-
|`aria-disabled`| Indicates that the element is perceivable but disabled, making it not editable or operable. |
61
-
|`aria-expanded`| Indicates whether a component is expanded or collapsed, set on the respective element. |
62
-
|`aria-label`|Defines a string value that labels an interactive element for accessibility. |
63
-
|`aria-checked`|Indicates the current `checked`state of checkboxes, radio buttons, and other widgets. |
64
-
|`aria-owns`|Identifies an element or elements, establishing a relationship when DOM hierarchy can't represent it. |
65
-
|`aria-readonly`|Indicates that the element is not editable but is otherwise operable. |
66
-
|`aria-activedescendent`| Identifies the currently active element when focus is on a combobox, textbox, group, or application. |
67
-
|`aria-autocomplete`|Indicates whether inputting text could trigger display of predictions and specifies how predictions will be presented for a combobox, searchbox, or textbox. |
46
+
|`role=tablist`|Identifies the container element for a set of tabs. |
47
+
|`role=tab`|Identifies an interactive element inside a `tablist` that controls the visibility of an associated `tabpanel`. |
48
+
|`role=tabpanel`|Identifies the container for the content associated with a `tab`. |
49
+
|`role=button`|Identifies a clickable element that triggers a response when activated. |
50
+
|`role=menu`|Identifies a container for a set of `menuitem` elements. |
51
+
|`role=menuitem`|Identifies a selectable option within a `menu`. |
52
+
|`role=combobox`| Identifies an input element that controls a separate popup element, such as a listbox or grid. |
53
+
|`role=option`|Identifies a selectable item within a listbox or combobox. |
54
+
|`role=gridcell`|Identifies a cell within a `grid` or `treegrid`. |
55
+
|`aria-orientation`| Indicates the orientation of an element, such as a `tablist` or `toolbar`. |
56
+
|`aria-selected`| Indicates the current selection state of an element within a set, such as a `tab` or `option`. |
57
+
|`aria-labelledby`|Associates an element with the element that provides its label. |
58
+
|`aria-controls`|Identifies the element whose content is controlled by the current element. |
59
+
|`aria-haspopup`| Indicates that the element can trigger a popup and specifies the type of popup. |
60
+
|`aria-disabled`| Indicates that the element is visible but not interactive. |
61
+
|`aria-expanded`| Indicates whether a collapsible element is currently expanded or collapsed. |
62
+
|`aria-label`|Provides an accessible name for an interactive element. |
63
+
|`aria-checked`| Indicates the state of a checkable element like a checkbox or menuitemcheckbox. |
64
+
|`aria-owns`|Establishes a relationship between elementswhen the DOM hierarchy cannot represent it. |
65
+
|`aria-readonly`| Indicates that an element is not editable but is otherwise interactive. |
66
+
|`aria-activedescendant`| Identifies the currently focused descendant of a composite widget. |
67
+
|`aria-autocomplete`| Indicates how predictions are presented for a combobox, searchbox, or textbox. |
68
68
69
69
## Keyboard interaction
70
70
71
-
The Ribbon component followed the [keyboard interaction](https://www.w3.org/WAI/ARIA/apg/patterns/tabs/#keyboardinteraction)guideline, making it easy for people who use assistive technologies (AT) and those who completely rely on keyboard navigation. The following keyboard shortcuts are supported by the Ribbon component.
71
+
The Ribbon component follows the [keyboard interaction](https://www.w3.org/WAI/ARIA/apg/patterns/tabs/#keyboardinteraction)to support users who rely on assistive technologies (AT) or keyboard navigation. The following keyboard shortcuts are available:
72
72
73
-
| Windows | Mac |Actions|
73
+
| Windows | Mac |Action|
74
74
| --- | --- | --- |
75
-
| <b>Ribbon Tab</b> |||
76
-
| <kbd>Tab</kbd> | <kbd>Tab</kbd> | To focus the ribbon tabs. |
77
-
| <kbd>→</kbd> | <kbd>→</kbd> | Moves focus to the next Tab. |
78
-
| <kbd>←</kbd> | <kbd>←</kbd> | Moves focus to the previous Tab. |
79
-
| <kbd>Enter</kbd> or <kbd>Space</kbd> | <kbd>Enter</kbd> or <kbd>Space</kbd> | To select the currently focused ribbon tab. |
80
-
| <b>Ribbon Items</b>|||
81
-
| <kbd>Tab</kbd> | <kbd>Tab</kbd> | To focus the ribbon Items. |
82
-
| <kbd>→</kbd> | <kbd>→</kbd> | Focuses the next item. |
83
-
| <kbd>←</kbd> | <kbd>←</kbd> | Focuses the previous item. |
84
-
| <kbd>Enter</kbd> or <kbd>Space</kbd> | <kbd>Enter</kbd> or <kbd>Space</kbd> | To select the currently focused ribbon item. |
| <kbd>Esc</kbd> | <kbd>Esc</kbd> | Closes the popup. |
87
-
| <kbd>Enter</kbd> or <kbd>Space</kbd> | <kbd>Enter</kbd> or <kbd>Space</kbd> | Opens the popup, or activates the highlighted item and closes the popup. |
88
-
| <kbd>↑</kbd> | <kbd>↑</kbd> | Focuses the next item. |
89
-
| <kbd>↓</kbd> | <kbd>↓</kbd> | Focuses the previous item. |
| <kbd>↓</kbd> | <kbd>↓</kbd> | Selects the first item in the ComboBox when no item selected. Otherwise, selects the item next to the currently selected item. |
101
-
| <kbd>↑</kbd> | <kbd>↑</kbd> | Selects the item previous to the currently selected one. |
102
-
| <kbd>Page Down</kbd> | <kbd>Page Down</kbd> | Scrolls down to the next page and selects the first item when popup list opens. |
103
-
| <kbd>Page Up</kbd> | <kbd>Page Up</kbd> | Scrolls up to the previous page and selects the first item when popup list opens. |
104
-
| <kbd>Enter</kbd> | <kbd>Enter</kbd> | Selects the focused item and popup list closes when it is in open state. |
105
-
| <kbd>Tab</kbd> | <kbd>Tab</kbd> | Focuses on the next TabIndex element on the page when the popup is closed. Otherwise, closes the popup list and remains the focus of the component. |
106
-
| <kbd>Shift</kbd> + <kbd>Tab</kbd> | <kbd>⇧</kbd> + <kbd>Tab</kbd> | Focuses on the previous TabIndex element on the page when the popup is closed. Otherwise, closes the popup list and remains the focus of the component. |
107
-
| <kbd>Alt</kbd> + <kbd>↓</kbd> | <kbd>⌥</kbd> + <kbd>↓</kbd> | Open the popup list |
108
-
| <kbd>Alt</kbd> + <kbd>↑</kbd> | <kbd>⌥</kbd> + <kbd>↑</kbd> | Close the popup list |
109
-
| <kbd>Esc(Escape)</kbd> | <kbd>Esc</kbd> | Closes the popup list when it is in an open state and the currently selected item remains the same. |
110
-
| <kbd>Home</kbd> | <kbd>Home</kbd> | Cursor moves to before of first character in input |
111
-
| <kbd>End</kbd> | <kbd>End</kbd> | Cursor moves to next of last character in input |
75
+
|**Ribbon Tab**|||
76
+
| <kbd>Tab</kbd> | <kbd>Tab</kbd> | Focuses the first Ribbon tab. If a tab is already focused, it moves focus out of the tab list. |
77
+
| <kbd>→</kbd> | <kbd>→</kbd> | Moves focus to the next tab. |
78
+
| <kbd>←</kbd> | <kbd>←</kbd> | Moves focus to the previous tab. |
79
+
| <kbd>Enter</kbd> or <kbd>Space</kbd> | <kbd>Enter</kbd> or <kbd>Space</kbd> | Selects the currently focused tab. |
80
+
|**Ribbon Items**|||
81
+
| <kbd>Tab</kbd> | <kbd>Tab</kbd> | Navigates between items within a Ribbon group. |
82
+
| <kbd>→</kbd> | <kbd>→</kbd> | Moves focus to the next item. |
83
+
| <kbd>←</kbd> | <kbd>←</kbd> | Moves focus to the previous item. |
84
+
| <kbd>Enter</kbd> or <kbd>Space</kbd> | <kbd>Enter</kbd> or <kbd>Space</kbd> | Activates the focused item. |
85
+
|**Ribbon Dropdown/Split Button**|||
86
+
| <kbd>Enter</kbd> or <kbd>Space</kbd> | <kbd>Enter</kbd> or <kbd>Space</kbd> | Opens the dropdown or activates the selected item. |
87
+
| <kbd>↓</kbd> / <kbd>↑</kbd> | <kbd>↓</kbd> / <kbd>↑</kbd> | Moves focus between items in the dropdown list. |
| <kbd>Esc</kbd> | <kbd>Esc</kbd> | Closes the file menu. |
96
+
|**Ribbon ComboBox**|||
97
+
| <kbd>↓</kbd> | <kbd>↓</kbd> | Selects the first item if none is selected, otherwise selects the next item. |
98
+
| <kbd>↑</kbd> | <kbd>↑</kbd> | Selects the previous item. |
99
+
| <kbd>Page Down</kbd> | <kbd>Page Down</kbd> | Scrolls to the next page of items. |
100
+
| <kbd>Page Up</kbd> | <kbd>Page Up</kbd> | Scrolls to the previous page of items. |
101
+
| <kbd>Enter</kbd> | <kbd>Enter</kbd> | Selects the focused item and closes the suggestion list. |
102
+
| <kbd>Tab</kbd> | <kbd>Tab</kbd> | Focuses the next element on the page. If the suggestion list is open, it closes it first. |
103
+
| <kbd>Shift</kbd> + <kbd>Tab</kbd> | <kbd>⇧</kbd> + <kbd>Tab</kbd> | Focuses the previous element on the page. If the suggestion list is open, it closes it first. |
| <kbd>Esc</kbd> | <kbd>Esc</kbd> | Closes the suggestion list, retaining the current selection. |
107
+
| <kbd>Home</kbd> | <kbd>Home</kbd> | Moves the cursor to the beginning of the input text. |
108
+
| <kbd>End</kbd> | <kbd>End</kbd> | Moves the cursor to the end of the input text. |
112
109
113
110
## Ensuring accessibility
114
111
115
-
The Ribbon component's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing.
112
+
The Ribbon component's accessibility is ensured through automated testing using [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools. These tools help maintain a high level of compliance by automatically detecting potential issues.
0 commit comments