1771 Technologies Logo

Keyboard and Accessibility

Accessibility

Accessibility is a critical aspect of web development, ensuring that all users can effectively navigate and interact with your application, regardless of their abilities. The GraphiteGridDom renderer is designed to be fully accessible and complies with industry-standard accessibility guidelines. This page provides an overview of the accessibility features and considerations for Graphite Grid.

Renderer Accessibility

GraphiteGridDom

The GraphiteGridDom renderer is fully accessible and conforms to the W3C's WCAG 2.0 standard. There are three levels of conformance: A, AA, and AAA. Meeting the AA standard ensures compliance with most other accessibility standards, such as the ADA standard set by the US Department of Justice.

To ensure accessibility, the GraphiteGridDom renderer adds various ARIA (Accessible Rich Internet Applications) properties to the grid rows, grid cells, and column header cells. Screen readers recognize these properties, enabling visually impaired users to navigate and understand the grid structure and content effectively.

Caution

The GraphiteGridCanvas renderer is not currently accessible. It is drawn as an image to the browser. Following standard industry guidelines, the team at 1771 Technologies believes that "no accessibility" is better than "bad" accessibility. We are actively researching better ways to make the Canvas Renderer accessible. Still, at present, browsers do not offer the full range of functionality required to make the canvas renderer accessible to the extent that we desire.

ARIA Roles and Properties

To remain spec-compliant and ensure accessibility, Graphite Grid adds various ARIA roles and properties to the grid elements.

Grid Roles

The primary container of Graphite Grid has role="grid", marking the grid viewport. Additionally, the following ARIA properties are added:

  • aria-rowcount: indicates the total number of rows in the grid.
  • aria-colcount: indicates the total number of columns in the grid.
  • aria-multiselectable=true (if multiple row selection is enabled): indicates that the grid supports multiple row selection.

Row Roles

Graphite Grid uses two roles for rows: role="row" and role="rowgroup". An element containing rows is marked with the "rowgroup" role.

For the "rowgroup" role, the following additional ARIA property is added:

  • aria-expanded: indicates whether the row group is expanded or collapsed.

For the "row" role, the following additional ARIA properties are added:

  • aria-rowindex: indicates the index of the row within the grid.
  • aria-selected: indicates whether the row is currently selected.

Header Cell Roles

Any column header is given the role="columnheader". Additional ARIA properties are also added for the column header:

  • aria-colindex: indicates the index of the column within the grid.
  • aria-expanded: indicates whether the column is expanded or collapsed.
  • aria-sort: indicates the current sort direction of the column (ascending, descending, or none).

Grid Cell Roles

Any grid cell is given the role="gridcell". Additional ARIA properties are also added for the cells:

  • aria-colindex: indicates the index of the column within the grid.
  • aria-selected: indicates whether the cell is currently selected.

Considerations for Visually Impaired Users

Screen Readers

Visually impaired users often rely on screen readers to understand and navigate the content displayed in the browser. Two popular screen readers are:

The GraphiteGridDom renderer is fully compatible with these screen readers and follows the W3C's accessibility standards to ensure the best possible user experience.

Color Accessibility

When designing your grid theme colors, it's crucial to consider visually impaired users. According to Color Blind Awareness, approximately 300 million people are affected by some degree of color blindness. Ensuring that the colors used in your grid theme are accessible is essential for meeting the AA accessibility standard.

Some recommended color palettes that prioritize accessibility are:

By using accessible color combinations, you can ensure your grid is visually distinguishable and readable for all users.

Conclusion

The GraphiteGridDom renderer is built with accessibility in mind, following industry-standard guidelines and best practices. By leveraging ARIA roles and properties, ensuring compatibility with screen readers, and using accessible color palettes, you can create a data grid that is inclusive and usable for all users, regardless of their visual abilities.

Remember to prioritize accessibility throughout your development process and regularly test your grid with various assistive technologies to ensure a seamless and inclusive user experience.