v1.12.0

Accessibility

JSXGraph supports accessibility through integration with ARIA (Accessible Rich Internet Applications) standards. Authors can apply all relevant ARIA roles, labels, and properties to JSXGraph containers and interactive elements, enabling screen readers to interpret mathematical content more effectively. With attributes like aria-label, aria-describedby, and aria-live, all individual JSXGraph elements can be enriched with semantic information to improve the accessibility of dynamic visualizations.

Keyboard Control

Individual elements can receive keyboard focus via tabIndex, and once focused, users can interact with them using custom keyboard controls. This allows for inclusive navigation without requiring a mouse, making interactive mathematics more accessible to all users.

1
2
3
4
5
6
7
8
9
var A = board.create('point', [2, 3], {
   name: 'A',
   tabIndex: 0,
   aria: {
       enabled: true,
       label: (self) => `${self.name} is at ${self.X().toFixed(1)} ${self.Y().toFixed(1)}`,
       live: 'polite'
   }
});

Descriptive Text

In addition, JSXGraph visualizations can be enriched with descriptive text and dynamic announcements to assist users with visual impairments.

Mouse and Touch Sensitivity

Another important aspect of accessibility is the ability to adjust mouse and touch sensitivity. This allows points, lines, and other elements to be manipulated without requiring overly precise movements, thereby reducing barriers for users with limited motor abilities.

1
2
3
4
5
precision: {
   touch: 30,
   mouse: 4,
   pen: 4
}

These features help ensure that interactive mathematics is accessible and inclusive across a wider range of users.

ARIA Example

Enable screen reader support for the following example. Point A can be activated using the Tab key and moved with the arrow keys.