Skip to content

A11yConfig

Since v2.0.0

Accessibility configuration for controlling screen reader announcements.

// Disable all live announcements
a11y: { announcements: false }
// Override specific messages for French locale
a11y: {
messages: {
sortApplied: (col, dir) => `Trié par ${col}, ${dir}`,
sortCleared: () => 'Tri effacé',
},
}
PropertyTypeDescription
announcements?booleanEnable or disable live region announcements. When false, the aria-live region remains in the DOM but no messages are set.
messages?Partial<A11yMessages>Custom announcement text overrides for internationalization. Partial — only override the messages you need; defaults are used for the rest.
dragAlternatives?menu | inlineHow the pointer alternatives to dragging (WCAG 2.2 SC 2.5.7) are surfaced. v3.6.0+

How the pointer alternatives to dragging (WCAG 2.2 SC 2.5.7) are surfaced.

The criterion requires every drag operation to also be achievable with a single pointer that never drags — it does not require that alternative to be permanently visible.

  • 'menu' — the alternative is reached through the affordance you would have dragged anyway: tap (don’t drag) a column resize handle or a row drag handle, or open a column’s context menu with right-click, long-press, or Shift + F10. Adds no chrome and costs no header width.
  • 'inline' — the same actions additionally get a dedicated button that is revealed on hover or focus. More discoverable, at the cost of ~24px of width reserved in every affected header cell.

Pointers that cannot hover (touch, most switch devices) always get the inline controls regardless of this setting: there is nothing for them to hover in order to reveal a control, and a long-press is a poor alternative for the tremor and low-dexterity users this criterion exists for.