@progress/wct-a11y-spec
Version:
Contains accessibility and keyboard navigation specification of Telerik and Kendo web components.
86 lines (56 loc) • 4.66 kB
Markdown
The Kendo React PivotGrid component is [WCAG 2.1 AA](https://www.w3.org/TR/WCAG21/) and [Section 508](http://www.section508.gov/) compliant. The component also follows the [WAI-ARIA best practices](https://www.w3.org/WAI/ARIA/apg/) for implementing the keyboard navigation for its component role, and is tested against the popular screen readers.
## Wai-Aria
The PivotGrid is a composite component that consists of two logically separated structural elements:
- Data Grid (`role="grid"`);
- Configurator (`role="application"`); // TBD
### Data Grid
The element with `role="grid"` - includes the row headers, column headers, and data tables.
#### Grid element
| Selector | Attribute | Usage |
| -------- | --------- | ----- |
| .k-pivotgrid | `role=grid` | The role specifies the element is a Data Grid. |
#### Column Headers
| Selector | Attribute | Usage |
| -------- | --------- | ----- |
| .k-pivotgrid-column-headers>.k-pivotgrid-table | `role=presentation/none` | Negates the default semantic role of the `<table>` element. |
| .k-pivotgrid-column-headers>.k-pivotgrid-table>thead | `role=rowgroup` | Required as the owner `<table>` element has its semantic role removed. |
| .k-pivotgrid-column-headers>.k-pivotgrid-table>thead>.k-pivotgrid-row | `role=row` | Required as the owner `<table>` element has its semantic role removed. |
| .k-pivotgrid-column-headers>.k-pivotgrid-table>thead>.k-pivotgrid-row>th | `role=columnheader` | Required as the owner `<table>` element has its semantic role removed. |
| | `aria-expanded=true/false` | Indicates the current expanded state of the header. |
| | `id` | Unique and deterministic identifier, used to associate the header cell with respective data cells. |
| .k-i-arrow-chevron-up | `aria-hidden=true` | Excludes the collapse icon from the screen reader output. |
| .k-i-arrow-chevron-down | `aria-hidden=true` | Excludes the expand icon from the screen reader output. |
#### Row Headers
| Selector | Attribute | Usage |
| -------- | --------- | ----- |
| .k-pivotgrid-row-headers>.k-pivotgrid-table | `role=none/presentation` | Negates the default semantic role of the `<table>` element. |
| .k-pivotgrid-row-headers>.k-pivotgrid-table>thead | `role=rowgroup` | Required as the owner `<table>` element has its semantic role removed. |
| .k-pivotgrid-row-headers>.k-pivotgrid-table>thead>.k-pivotgrid-row | `role=row` | Required as the owner `<table>` element has its semantic role removed. |
| | `aria-owns=[IDs of corresponding data cells]` | Used to associate row header cells with the corresponding data cells. |
| .k-pivotgrid-row-headers>.k-pivotgrid-table>thead>.k-pivotgrid-row>th | `role=rowheader` | Required as the owner `<table>` element has its semantic role removed. |
| | `aria-expanded=true/false` | Indicates the current expanded state of the header. |
| .k-i-arrow-chevron-up | `aria-hidden=true` | Excludes the collapse icon from the screen reader output. |
| .k-i-arrow-chevron-down | `aria-hidden=true` | Excludes the expand icon from the screen reader output. |
#### Grid Data Table
| Selector | Attribute | Usage |
| -------- | --------- | ----- |
| .k-pivotgrid-values>.k-pivotgrid-table | `role=none/presentation` | Negates the default semantic role of the `<table>` element. |
| .k-pivotgrid-values>.k-pivotgrid-table>tbody | `role=none/presentation` | The contained rows are associated with their headers through alternative mechanics. |
| .k-pivotgrid-values>.k-pivotgrid-table>tbody>.k-pivotgrid-row | `role=none/presentation` | The rows are associated with their headers through alternative mechanics. |
| .k-pivotgrid-values>.k-pivotgrid-table>tbody>.k-pivotgrid-row>td | `role=gridcell` | Required as the owner `<table>` element has its semantic role removed. |
| | `id` | Unique and deterministic identifier, used to associate the data cell with respective row header cells. |
| | `aria-describedby=[IDs of corresponding column header cells]` | Used to associate the data cells with the respective column header cells. |
### Configurator - TBD
## Resources
[WAI-ARIA specification for grid](https://www.w3.org/TR/wai-aria-1.2/#grid)
## Section 508
The PivotGrid is compliant with the [Section 508](http://www.section508.gov/) requirements
## Testing
The component has been extensively tested automatically with static code analyzers and manually with the most popular screen readers.
> Any Accessibility Issues could be reported in [Telerik Support System](https://www.telerik.com/account/support-center).
### Screen Readers
| Environment | Tool |
| ----------- | ---- |
| Firefox | NVDA |
| Chrome | JAWS |
| Microsoft Edge | JAWS |